Applicant background
Zecwallet’s family of products have seen regular maintenance, bug-fix and security releases for over two years, thanks to previously funded grants from the Zcash Foundation. This is a continuation grant intended to cover ongoing maintenance (bugfixes, security releases and cloud computing costs) for Zecwallet’s family of products for 6 months, from Jan 2021 to Jun 2021.
Funding requested is the same as last year - USD 7500/month
Motivation and overview
This grant supports the maintenance and continued releases of Zecwallet’s family of products, which consist of:
- Zecwallet FullNode
- Zecwallet Lightclient and Zecwallet Lightclient Library/CLI
- Zecwallet Android Companion App
- Zecwallet Lite iOS
- Zecwallet Lite Android
- ZecPaperWallet
- Wormhole Service for Zecwallet Companion Apps
- LightwalletD service for Zecwallet lightclients
It covers all updates and maintenance, including:
- Bugfixes and other minor feature requests
- Security fixes and patches
- App store fees
- Keeping up with upstream Zcash protocol changes and
zcashd
releases - AWS server hosting costs for Wormhole service for companion apps
- AWS server hosting costs for LightwalletD service for Companion Apps.
Technical approach
Monthly Maintenance tasks are:
Zecwallet Fullnode
Maintenance and new releases of Zecwallet Fullnode with embedded zcashd. The main tasks here are operational, compiling/testing new releases of zcashd
with Zecwallet Fullnode
- 8 hrs/month
- Release/Compile
zcashd
to windows, macOS and linux.zcashd
is officially only supported on Linux, so Zecwallet needs to build and test its own binaries for Windows and MacOS - Full test suite (RPC, gtests and bitcoin-tests) * 3 platforms
- Full sync from scratch * 3 platforms
- Upgrade from previous version’s
.zcash
directory * 3 platforms
Zecwallet Liteclient SDKs
This is the lightclient SDK that is used by all Zecwallet Lite UIs (MacOS, Windows, Linux, iOS and Android).
- 8 hrs/month
- Keep up with
librustzcash
changes, network upgrades, checkpoints - Desktop app releases
- Bug fixes and security updates
Mobile (iOS / Android) clients
Google Play store is usually straightforward, but Apple Store updates are always painful. New MacOS/XCode, new iOS versions and app store policies almost always cause new app versions to be painful.
- 8 hrs/month
- Updates to SDKs, bugfixes, security updates
LightwalletD infra and devops
This is the main devops task, keeping the Zecwallet LightwalletD servers up and running for the lightclients.
- 8 hrs / month
- 6 servers, updates, patches,
zcashd
version updates - LightwalletD code fixes and updates
- Uptime, load and server monitoring
AWS Server costs
This section describes funds that are spent directly on AWS, which hosts the Lightwallet infrastructure. Note that Zecwallet’s implementation of LightwalletD is more resource heavy than the stock LightwalletD, and so needs bigger machines to deploy.
- USD 1,500 / month
- 4x AWS large instances (across 2 regions) for
zcashd
andLightwalletD
(primary + backup) - 1x AWS t2.small instance for load balancing, website and other static hosting
- AWS bandwidth costs (approx 35GB / month), including zcashd serving blocks
- Devops machines used for testing (zcashd syncing, upgrades), Build machines (3 instances - Mac, Win, Linux)
- SSL certs, App store developer fees and other miscellaneous one-time costs
Execution risks
Zecwallet has maintained this infra for over a year now, so there are few unknowns. The main risks are around downtime of LightwalletD. We had a couple of incidents last year, but we’ve invested in upgrading our server monitoring and backup/failover policies, that are already incorporated in the infra.
Downsides
Zecwallet Lightclient continues to have a dependency on the (centralized) Zecwallet LightwalletD server. Specifically, this LightwalletD is incompatible with ECC’s LightwalletD implementation for various reasons (See other grant proposal), and needs to be addressed. This proposal only requests funding for 6 months, as by then we hope to transition to a more decentralized model for Lightwallet infrastructure.
Evaluation plan
Success of this project is mainly measured around:
- Lightclient infrastructure uptime >99.5%
- Up-to-date releases and version of Zecwallet Fullnode and Lite apps, keeping up with Zcash Network upgrades and upstream bugfixes.
Tasks and schedule
Please see the Technical Approach section.
Budget and justification
Code and Devops :
- USD 6,000 / month (4 tasks * 8 hrs/month * USD 187.5/hr)
- USD 1,500 Cloud infrastructure.