feat(zinder): add chain backend [WIP]#591
Draft
gustavovalverde wants to merge 3 commits into
Draft
Conversation
Align the three existing wallet resolution graphs with librustzcash main so they share the dependency APIs required by the Zinder backend work. Co-Authored-By: OpenAI Codex <noreply@openai.com>
Let Zallet consume Zinder native wallet data without routing through Zaino. The backend vendors the wire contract, validates deployment capabilities at startup, pins reads to chain epochs, follows chain and mempool events, detects transparent spends, and broadcasts transactions. Co-Authored-By: OpenAI Codex <noreply@openai.com>
Integrate zallet-zinder into CI, dependency audits, lockstep tooling, Docker and Nix builds, release artifacts, Debian packaging, launcher assets, and operator documentation so the backend ships alongside the existing implementations. Co-Authored-By: OpenAI Codex <noreply@openai.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Zallet currently requires either Zebra state access or Zaino for chain data. This adds a native Zinder backend behind the existing
ChainandChainViewboundaries, so Zallet can sync and operate directly againstzinder-querywithout changing the wallet core.The backend vendors Zinder's
WalletQuerycontract and uses epoch-pinned full-block reads, subtree roots, per-outpoint transparent spend detection, chain and mempool event streams, and transaction broadcasting. Startup checks the configured network, contract revision, required capabilities, and ingest-control availability before opening the wallet database.zallet-zinderis included in CI, dependency audits, lockstep tooling, Docker and Nix builds, release artifacts, Debian packaging, launcher assets, and operator documentation. Deployments must retain full block and transaction bytes withraw_blob_policy = "all"and connectzinder-queryto the writer's ingest-control endpoint.The shared librustzcash pin moves to
d4f4095de03e1aab3bd72b4c3f83459072ed584e, which is sufficient for this backend and does not require zcash/librustzcash#2609. The Zinder backend's 25 unit tests pass, as do the strict clippy and 4-lockfile consistency gates. The existing Zebra acceptance assertion for info-level startup logs also fails unchanged on upstreammain, so it is outside this PR's scope.