Proposal Summary: Auto-Failover Toolkit v2 for Zcash
Reference: Zcash Community Grants Issue #132
Author: Emilio983 (The Social Mask Development Team)
Status: Open Proposal
Total Budget: $39,500 USD
Estimated Duration: 25 weeks
Executive Summary
This proposal introduces the “Auto-Failover Toolkit v2,” an infrastructure solution designed to eliminate single points of failure in Zcash wallet and application connections. The primary goal is to ensure that if a lightwalletd server fails, the application automatically switches to another operating server in less than 3 seconds (p95), without the end user perceiving any interruption.
Unlike a previous proposal that was rejected for being too rigid, this v2 version focuses on flexibility, offering three distinct integration paths to accommodate both novice developers and established wallet teams.
The Problem
Currently, many Zcash wallets and services rely on a single lightwalletd server. If this server goes down or falls out of sync, the application stops working, preventing users from viewing balances or sending transactions.
This forces every development team to build their own custom reconnection scripts, which is costly and creates a significant barrier to entry for new developers coming from web environments (JS/TS/Python) who lack Rust experience.
The Proposed Solution
The project offers a modular toolkit under the MIT license that requires no key custody and avoids vendor lock-in. It is divided into three main components:
- Ready-to-Use SDK (JS/TS)
A library designed for developers looking for a quick solution (“npm install”). The SDK automatically manages latency measurement between servers and handles connection switching transparently in the event of failure.
- Directory API (HTTP/JSON)
A lightweight web service that allows querying the best available server at any given moment based on criteria like latency or geographic location. Ideal for applications in Python, Go, or environments where installing the full SDK is not desired.
- DIY Templates (Do It Yourself)
Detailed guides and example code for teams that need total control and prefer to implement their own switching logic based on the best practices documented by this project.
Key Differentiators
• No Central Dependency: If the project API goes down, the system can continue functioning via a decentralized signed JSON registry.
• Flexibility: Does not impose a “one-size-fits-all” solution; developers can choose to use the full SDK, just the API, or simply copy the design patterns.
• Open Source: All software will be MIT licensed and self-hostable.
• Security: It never touches private keys at any point.
Commitments and Deliverables
The team commits to delivering:
• Client libraries (SDK).
• Public API infrastructure and server registry.
• Technical and educational documentation.
• Primary server (VPS) maintenance for 12 additional months after delivery.
• Security audits and stress testing.
The proposal aims to facilitate the entry of new developers into the Zcash ecosystem by reducing the complexity of network infrastructure management.
[https://github.com/ZcashCommunityGrants/zcashcommunitygrants/issues/132\]
I attach this link where there was another post on the forum about the tool where we developed a discussion about the project What if Zcash never broke again because of a single lightwalletd server? - General - Zcash Community Forum