Hi everyone,
Wanted to put this idea out here and get input from people who work on wallets, backends, or related infrastructure in Zcash.
The idea is a small tool called Zcash CompactTxStreamer Compatibility Gate.
The job of the tool would be to run a set of black-box checks against CompactTxStreamer-compatible backends like lightwalletd and Zaino and flag behavior drift on a small set of important wallet-facing gRPC methods before those changes reach downstream wallets and tools.
This is not meant to be a broad testing toolkit. It is not a devnet, not a JSON-RPC test suite, and not a performance benchmark. The scope is much narrower than that. The point is to have a small public release-check tool for a part of the stack that already has multiple implementations.
At a high level, the tool would include:
- a small CLI runner
- a versioned case set
- backend profiles for lightwalletd and Zaino
- JSON and Markdown diff reports
- a GitHub Action for fast CI checks
For a first version, the method scope we are thinking about is:
GetLatestBlockGetBlockRangeGetTreeStateGetLatestTreeStateGetSubtreeRootsGetMempoolTxGetTaddressTransactions- deprecated method handling for
GetTaddressTxids - a few error-path checks like invalid ranges and invalid height or hash requests
The gap this is trying to fill is that there is a shared wallet-facing protocol surface with more than one implementation, but there is no small public compatibility gate for checking whether a defined set of important methods still behaves as expected across implementations after releases or protocol changes.
Would especially appreciate input on three things:
- Does this solve a real problem from your perspective?
- Is the v1 scope about right, or does it need to be tighter?
- Does this feel genuinely useful as a standalone tool, or too close to testing workflows that already exist?
Thanks in advance for any thoughts.