Zcash Block Explorer

Applicant background

Nighthawk Wallet Team has 20+ years of combined experience in software development, devops and cloud infra.

With this grant, we want to build a block explorer that supports Zcash specific features requested by the community. Additionally, we plan to host the block explorer for both testnet and mainnet with support for tor v3 access.

Motivation and overview

The goal of this grant is to make available reliable explorers without ads and built with modern frameworks. All open sourced for the community to participate in. The block explorer will serve the needs of Zcash users who need a reliable source of their Zcash transactions data and the status of the network while not depending on third party non-Zcash focussed explorers who often fail to keep the explorers updated per the changes happening in the Zcash ecosystem. This grant falls under Zcash Foundation's Mission of Innovation, Privacy(via tor hosted instance) & Inclusivity(enabling third parties to link to tx data).

Technical approach

Architect a Block Injector that works with zcashd and create a front UI to navigate the Zcash transactions, blocks. The Block Injector is a small program whose responsibility is to communicate with zcashd through RPCs and store the blocks in a block cache faithfully. This component will be implemented in Go lang in order to re-use components from lightwalletd. The block cache will be powered by a traditional db like Postgres, older blocks will be stored to power the features of the block explorer.

The explorer will be built with:

  1. Elixir - a dynamic, functional language designed for building scalable and maintainable applications.
  2. Phoenix - a web framework for the Elixir lang to build the explorer.
  3. Tailwind - CSS with Modern UI components.

The explorer will directly query zcashd RPCs for as much functionality as possible, but for certain features, it will query the block cache(mainly when creating index index of blocks and speeding up lookups).

Core features: Broadcast raw transaction, Payment Disclosure option for Sapling Shielded transactions, No logging/analytics.

Functionality: No cookies.

Add-on features: Get transactions by Viewing Key & JSON output of transactions(TBD after R&D), Network Statistics, Shielded Pool Balances, Hashrate, Tx Volume.

Hosting features: https + v3 onion No Google, no Cloudflare, no Amazon, no Github, no hCaptcha

Execution risks

Keeping up with upcoming changes in zcashd APIs with NU5 and ZIP 224. Possible change of plan to use zebrad instead of zcashd for querying block data.

Downsides

Hosting stability with excess traffic and possible scaling woes. Decentralization is possible with open source code and ability for community members to host their own versions of Zcash block explorer.

Tasks and schedule

July/August Delivery Timeline: 5 weeks over 3 months to develop, fine-tune and host the block explorer. Follow up grant will be scheduled to accomodate changes coming from the NU5 and Halo support.

Budget and justification

$37,200: Team Development, QA, Testing & Deployment Costs, Documentation, Github Page setup (5 weeks ~ 150 hrs @ $250/hr) Total: $37,200

$12,000: Hosting on Large Instances for 1 year + tor v3 setup, use lightwalletd.com infra for testnet blocks. $1,800: Devops costs to upkeep and monitor service, certs, warrant canary

Total: $36,000 + $13,800 = $51,000

Tipping

Tips Received
???  
ZEC

Campaign

Started
6 months ago
Funding
$51,000 
Funded through  Zomg logo
1
Grant Payout

Grant Payout

Reward: $51,000
The team was awarded $51,000 in ZEC as an initial payout on Mar 30th, 2021, 11:53 pm.
Start development, buy necessary software licenses for the UI components, setup 1 year term hosting, documentation, deliver open source performant block explorer