Applicant background
I, Michael Harms, am a full stack web developer. I first built ZECpages.com a year ago. I made zecmailer.com before that, as a way to streamline anonymous publishing. They are and will always be open source.
ZECpages is an example of what Balaji Srinivasan has called “Blockchain MVC”, a full stack app built on a global data store. For ZECpages, this means a set of encrypted memos associated with one view key. This makes the data that powers ZECpages durable, auditable, and open.
Motivation and overview
I’ve seen quite a few threads of people asking for TAZ because https://faucet.testnet.z.cash/ doesn’t support taddrs. I often end up sending these people TAZ manually.
I ran this testnet faucet for about a month, but I took down the full node because of costs.
Onboarding developers to Zcash is super important. A working, accessible testnet faucet removes a great deal of friction in that onboarding.
In addition, the codebase is a very simple example implementation of a React/Node app that uses Zcash RPC. I’ve been told that ‘[my] repositories are an inspiration.’ It’s an honor to hear that, and while I’d maybe not go that far, having simple, readable examples of Zcash apps seems important in onboarding devs, possibly even more than quick access to TAZ. To this end, the codebase/readme could use a refactor for more thorough deployment details and code readability.
I’m not worried about autonomy over my testnet faucet - I’d gladly acknowledge on the faucet’s single page that this developer resource was made possible and funded in full by a grant from ZOMG (if that’s desirable).
Technical approach
The faucet is live. See it here: https://faucet.zecpages.com
It works with zaddrs and taddrs, and uses push notifications to return users a txid when the send operation succeeds. Its code is already open-source. See it here: GitHub - michaelharms6010/zcash-faucet: React app => Nodejs => zcashd rpc zcash faucet
It also runs a public instance of ZecWallet’s lightwalletd on testnet - I straight up don’t know how useful or valuable this is but it was easy enough to patch on, thought I’d mention it as well - tlightwalletd.zecpages.com:443
If a testnet fullnode / lightwalletd isn’t useful, it would be pretty trivial to refactor this to use a light wallet and save on servers.
Execution risks
Use could outscale the box. I’m happy to roll with this challenge with the possibility of a future grant if needed.
Downsides
Not sure - open to suggestions
Evaluation plan
Uptime - The faucet and node should have 99.9% uptime
Tasks and schedule
Day 0 - Faucet is already deployed, code already open sourced
Week 1 - Readability/documentation refactor (~1/2 day of work)
Week 52 - Faucet is still up has been for 99.9% or more of the last year
Occasionally: NU/deprecation updates to zcashd
Budget and justification
Development:
One developer - 16 hrs (2 full days) to build/test faucet app + 4 hour refactor = 20 hrs * $150/hr - $3000
Total Dev - $3000
Infra/maintenance:
1 yr Large instance + extra storage - $115/month - $1380/yr 2 hr/month maintenance * 50/hr = $100/month - $1200/yr
This request covers 1 year of servers/maintenance as well as the development of the app.
Total Infra - $2580
Total - $5580