Repository navigation
Parse NU7 transactions and size scanner catch-up for 25 s blocks - #7
Merged
Merged
Conversation
The locked zcash_protocol 0.10.5 maps NU7 to a placeholder branch id, so every transaction from the NU7 activation block on failed to parse with "invalid consensus branch id". The block scanner retried that block forever, and the mempool, x402 and session-deposit paths silently returned no outputs. - Move every Zcash crate to the Zakura 5.2.0 family, which knows NU7 (0x77190AD9) and its mainnet/testnet activation heights. - Route all parsing through one helper and return parse failures as errors instead of empty output lists. - Compute the catch-up start height from the 25 s NU7 target spacing plus a 300-block margin instead of 75 s plus 100 blocks. - Add real NU7 testnet fixtures (Orchard and Ironwood bundles), a scan_blocks test across the activation block, and golden address/UIVK checks against the pre-NU7 production build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 5, 2026
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.
Problem
Production (
b902f50) lockszcash_protocol 0.10.5, which maps NU7 to the placeholder branch id0xFFFFFFFF. Real NU7 transactions carry0x77190AD9, so:scan_blocksfails on the first NU7 block (invalid consensus branch id) before saving its checkpoint, so it retries that block forever. Mainnet activates at 3,543,405; testnet activated at 4,465,026.Changes
zakura-primitives,-orchard,-protocol,-address,-note-encryption). They must all stay on one release so the types line up. Orchard needsbackend-halo2andzip32-addresses.decrypt.rs: a singleparse_transactionhelper; parse failures are nowErr, notOk(vec![]).scanner/mod.rs:earliest_relevant_heightuses 25 s spacing plus a 300-block margin.Tests
scan_blocksover activation block 4,465,026 with a pending invoice advancesscanner_state. The same test fails on production dependencies.b902f50build, are byte-identical, so existing invoices still match.cargo test --lockedgives 130 passed, 3 ignored (pre-existing).cargo build --release --locked,scripts/check-dependency-exposure.pyandcargo auditall pass.Polling (15 s blocks / 5 s mempool) and the 1-confirmation rule need no change for 25 s blocks.
Not done
🤖 Generated with Claude Code