thx a ton, @hanh — that tonic::transport::Channel::balance_channel link is super helpfull.
quick heads-up so I don’t give the wrong impression: we’re not building a centralized failover service. it’s a client-side sdk; every wallet/app keeps its own endpoint list + policy. no coordinator, no shared service, so no new single point of failure. the “node add-on” in the budget is just for staging/chaos tests, not for routing anyone’s traffic.
how this fits w/ what already exists in rust
• we’ll lean on tonic/tower for pooling/balancing and wrap it in an idiomatic layer.
• on top we add zcash-aware health: cross-checking block height, catching stale/reset servers, circuit-breaker + backoff, a bit of geo-latency pickin’.
• we add send-flow safety (idempotency tokens / de-dupe) so a failover during sendTransaction doesn’t accidentally double-send.
• same semantics beyond rust — JS/TS (WebZjs), PHP, Python — where there isn’t a real equivalent rn, so wallets, plugins, and serverless apps get the same reliability.
this isn’t only for wallets; it’s also for merchant plugins, bots, backends, and serverless funcs that talk to lightwalletd.
happy to tweak the shape if you’ve got a cleaner tower layer pattern you prefer — open to any pointers