Skip to content

Support upcoming NU6.3#1350

Closed
dannywillems wants to merge 4 commits into
zingolabs:devfrom
dannywillems:feat/nu63-compat
Closed

Support upcoming NU6.3#1350
dannywillems wants to merge 4 commits into
zingolabs:devfrom
dannywillems:feat/nu63-compat

Conversation

@dannywillems

@dannywillems dannywillems commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Based previously on #1340.

Don't review nor merge.

The first two commits should follow the following branches, until proper releases have been made:

As the branches get updated, fixup commits can be done respectively in e0be576 for librustzcash and 44dc9a8 for zebra.

@dannywillems dannywillems marked this pull request as draft July 1, 2026 17:59
@zancas zancas mentioned this pull request Jul 1, 2026
@dannywillems dannywillems changed the base branch from feat/ironwood to dev July 1, 2026 18:03
@dannywillems dannywillems changed the title Feat/nu63 compat Support upcoming NU6.3 Jul 1, 2026
Comment on lines +83 to +92
equihash = { git = "https://github.com/zcash/librustzcash.git", rev = "139601061b89d622dc4c9464f1e6638611ea0027" }
f4jumble = { git = "https://github.com/zcash/librustzcash.git", rev = "139601061b89d622dc4c9464f1e6638611ea0027" }
zcash_address = { git = "https://github.com/zcash/librustzcash.git", rev = "139601061b89d622dc4c9464f1e6638611ea0027" }
zcash_encoding = { git = "https://github.com/zcash/librustzcash.git", rev = "139601061b89d622dc4c9464f1e6638611ea0027" }
zcash_history = { git = "https://github.com/zcash/librustzcash.git", rev = "139601061b89d622dc4c9464f1e6638611ea0027" }
zcash_keys = { git = "https://github.com/zcash/librustzcash.git", rev = "139601061b89d622dc4c9464f1e6638611ea0027" }
zcash_primitives = { git = "https://github.com/zcash/librustzcash.git", rev = "139601061b89d622dc4c9464f1e6638611ea0027" }
zcash_proofs = { git = "https://github.com/zcash/librustzcash.git", rev = "139601061b89d622dc4c9464f1e6638611ea0027" }
zcash_protocol = { git = "https://github.com/zcash/librustzcash.git", rev = "139601061b89d622dc4c9464f1e6638611ea0027" }
zcash_transparent = { package = "zcash_transparent", git = "https://github.com/zcash/librustzcash.git", rev = "139601061b89d622dc4c9464f1e6638611ea0027" }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should be able to drop these patches; the *-pre.0 crate releases have been published.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, but there may be additional changes on main. Hold off merging this until I provide a new hash.

@dannywillems dannywillems force-pushed the feat/nu63-compat branch 2 times, most recently from 0e1560a to 872a762 Compare July 1, 2026 18:39
@dannywillems dannywillems force-pushed the feat/nu63-compat branch 4 times, most recently from 7392dbe to 7995f26 Compare July 2, 2026 12:03
dannywillems and others added 4 commits July 3, 2026 15:21
Track the NU6.3 (Ironwood) librustzcash line by pinning the librustzcash
crates to librustzcash `main` via [patch.crates-io], and bump the version
requirements to the NU6.3 pre-releases:

- incrementalmerkletree 0.8 -> 0.8.2
- zcash_address 0.12 -> 0.13.0-pre.0
- zcash_keys 0.14 -> 0.15.0-pre.0
- zcash_protocol 0.9 -> 0.10.0-pre.0
- zcash_primitives 0.28 -> 0.29.0-pre.0
- zcash_transparent 0.8 -> 0.9.0-pre.0

main carries the NU6.3 work (the Nu6_3 network upgrade, the nu6_3
activation height, and the ironwood value pool) and is the same
librustzcash line zallet PR zingolabs#537 (feat/nu63-comp) builds against, so zaino
and zallet share one librustzcash and the NU6.3 zebra branch resolves
against it. The patch pins a specific main rev (not the bare branch) so
resolution stays reproducible. This is a dependency-alignment change that
must follow zallet: update it only to track zallet's librustzcash line,
and drop the patch and the -pre.0 suffixes once the final NU6.3 releases
are published.

This change is coupled with the NU6.3 zebra bump in the following commit:
the NU6.3 zebra branch only resolves and compiles together with this
librustzcash line.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bump the zebra-chain/-rpc/-state [patch.crates-io] pin from rev
9a27f886a5bfb143f65d1712e912cef252426800 to the unreleased NU6.3
(Ironwood) branch rev fd3e9e32120afbe698522db1f62400b08e8a7444, which
adds the NetworkUpgrade::Nu6_3 variant, the
ConfiguredActivationHeights::nu6_3 field, and the sixth "ironwood" value
pool balance. All three zebra-* crates use the same rev.

This is the exact zebra rev that zallet PR zingolabs#537 (feat/nu63-comp) uses,
and it builds against the librustzcash `main` line pinned in the
preceding commit, so zaino and zallet share one zebra and one
librustzcash. This is a dependency-alignment change that must follow
zallet: update it only to track zallet's zebra pin.

The patch lives once in the single root workspace (the live-test crates
were folded in; see docs/adr/0002), and every member inherits it through
the single lock. See docs/updating_zebra_crates.md.

Consuming the new NU6.3 surface in zaino's code is done in the following
commit.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Consume the NU6.3 surface added by the zebra pin so zaino builds against
the NU6.3 zebra and can be used by zallet PR zingolabs#537:

- zaino-common config::network: add the nu6_3 activation height to
  ActivationHeights, the ConfiguredActivationHeights conversions, the
  defaults, and the NetworkUpgrade::Nu6_3 match arm; add nu6_3 to the
  round-trip test and assert it survives the zebra path.
- zaino-fetch getblockchaininfo/getblock responses: grow the value pool
  array from 5 to 6 to include the ironwood pool, map the new balance,
  and accept the "ironwood" pool id when deserializing.
- zaino-state chain_index test vectors and the live-tests/clientless
  chain_cache test: add nu6_3 to their ConfiguredActivationHeights
  literals.
- live-tests/zaino-testutils: add nu6_3 to the LocalNetwork and
  ActivationHeights literals.
- Update Cargo.lock for the zebra and librustzcash pins.

zingo_common_components stays at 0.3.1, matching the zcash_local_net
validator launcher used by the live tests (both share one version in the
single workspace lock). That 0.3.1 type has no nu6_3 slot, so the NU6.3
height is not carried through the zingo intermediate; it is preserved on
the zebra ConfiguredActivationHeights path, which is what NU6.3 support
needs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@dannywillems

Copy link
Copy Markdown
Contributor Author

Closing in favor of #1362

@dannywillems dannywillems deleted the feat/nu63-compat branch July 3, 2026 15:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants