Nighthawk Team plans to develop an optimized, open source version of block explorer for Zcash.
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 for Zcash that supports features requested by the community. Additionally, we plan to host the block explorer for both testnet and mainnet with tor support.
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. 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:
Elixir - a dynamic, functional language designed for building scalable and maintainable applications.
Phoenix - a web framework for the Elixir lang to build the explorer.
Tailwind - CSS for 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, Network Statistics, Shielded Pool Balances, Hashrate, Tx Volume, Price
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: $37,200 + $13,800 = $51,000