Zecwallet Code, Maintenance and Infra

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 and lightwalletD (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.

Tipping

Tips Received
???  
ZEC

Campaign

Requested Funding
$45,000
Open for Public Review