You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"Zebra replaces zcashd" has no published boundary: nothing states, for each zcashd RPC method, notification transport, and integration surface, whether it is owned by Zebra, a named external component (Zaino, Zallet, librustzcash), a supported bridge, or an explicit non-goal. This issue publishes and maintains that ownership contract.
User Story
As an operator migrating from zcashd, when I look up any zcashd RPC method, notification, or integration surface, then I find a published record of whether Zebra, a named external component, a supported bridge, or nobody owns it.
Acceptance Criteria
A published ownership table (in book/src/user/ or docs/) assigns every one of the 135 registered zcashd 6.20.0 RPC methods, all four public ZMQ topics, the data REST API, and each notification hook (blocknotify, alertnotify, txexpirynotify, walletnotify) to exactly one of: Zebra, named external component, supported bridge, or explicit non-goal.
A deprecation-readiness definition of done — covering consensus support, surface ownership, RPC conformance, migration procedure, mining integration, wallet/indexer versioning, and no-silent-holes — is adopted in a docs/decisions/ ADR, with team sign-off recorded.
Every row assigned to zcashd, a bridge, or a wallet/indexer component records that owner's acknowledgment, or is downgraded to "proposed" until they respond (see External Coordination).
A maintenance rule is documented: the table must be updated in the same PR that adds, removes, or intentionally diverges from a zcashd-compatible public surface, and refreshed for every Zebra stable release.
A CHANGELOG.md entry announces the published contract (user-visible documentation change).
Implementation Details
The contract has three parts: a node/operator capability matrix, the RPC ownership table (zcashd 6.20.0 registers 135 method names in a default wallet-enabled build; Zebra registers 37, with 35 shared), and the definition of done; the zcash.conf → zebrad.toml translation table is #11038's deliverable and is linked, not duplicated. The work is editorial and decision-driven, not code: publish as a book page (e.g. book/src/user/zcashd-ownership.md, wired into book/src/SUMMARY.md) and hold the product decisions for unassigned rows. Method inventories should be extracted from the Rpc trait in zebra-rpc/src/methods.rs (registration starts around line 177) and the zcashd 6.20.0 command tables; the existing comparison spreadsheet is the starting point for the table content. The ADR belongs in docs/decisions/ following the existing MADR format there.
In Scope
book/src/user/ (new ownership page), book/src/SUMMARY.md
docs/decisions/ (new ADR for the deprecation-readiness definition)
Rows assigned to zcashd, Zaino, Zallet, or librustzcash need acknowledgment from those projects' owners to count as a contract rather than a proposal — including a zcashd build supported past the height-3,417,100 End-of-Support halt wherever a bridge depends on one. Work on their side belongs in their trackers.
Context
"Zebra replaces zcashd" has no published boundary: nothing states, for each zcashd RPC method, notification transport, and integration surface, whether it is owned by Zebra, a named external component (Zaino, Zallet, librustzcash), a supported bridge, or an explicit non-goal. This issue publishes and maintains that ownership contract.
User Story
As an operator migrating from zcashd,
when I look up any zcashd RPC method, notification, or integration surface,
then I find a published record of whether Zebra, a named external component, a supported bridge, or nobody owns it.
Acceptance Criteria
book/src/user/ordocs/) assigns every one of the 135 registered zcashd 6.20.0 RPC methods, all four public ZMQ topics, the data REST API, and each notification hook (blocknotify,alertnotify,txexpirynotify,walletnotify) to exactly one of: Zebra, named external component, supported bridge, or explicit non-goal.docs/decisions/ADR, with team sign-off recorded.createrawtransactionRPC method #8952, feature: ImplementdecoderawtransactionRPC method #8645, ImplementverifymessageRPC method #8947, Implementz_validatepaymentdisclosureRPC method #8443) so the decision trail is auditable.CHANGELOG.mdentry announces the published contract (user-visible documentation change).Implementation Details
The contract has three parts: a node/operator capability matrix, the RPC ownership table (zcashd 6.20.0 registers 135 method names in a default wallet-enabled build; Zebra registers 37, with 35 shared), and the definition of done; the
zcash.conf→zebrad.tomltranslation table is #11038's deliverable and is linked, not duplicated. The work is editorial and decision-driven, not code: publish as a book page (e.g.book/src/user/zcashd-ownership.md, wired intobook/src/SUMMARY.md) and hold the product decisions for unassigned rows. Method inventories should be extracted from theRpctrait inzebra-rpc/src/methods.rs(registration starts around line 177) and the zcashd 6.20.0 command tables; the existing comparison spreadsheet is the starting point for the table content. The ADR belongs indocs/decisions/following the existing MADR format there.In Scope
book/src/user/(new ownership page),book/src/SUMMARY.mddocs/decisions/(new ADR for the deprecation-readiness definition)CHANGELOG.mdOut of Scope
zebra-rpcorzebra-network.External Coordination
Rows assigned to zcashd, Zaino, Zallet, or librustzcash need acknowledgment from those projects' owners to count as a contract rather than a proposal — including a zcashd build supported past the height-3,417,100 End-of-Support halt wherever a bridge depends on one. Work on their side belongs in their trackers.
Blockers
None.
Related Issues / Advisories
Expertise Required
None.