Ironwood (NU6.3) 0.5.0-rc0#3
Closed
emersonian wants to merge 15 commits into
Closed
Conversation
Add opt-in Ironwood (NU6.3 / V6) support behind a default-off `ironwood` cargo feature: the PostNu6_3 proving key and proof step, the NU6.3 regtest activation height, ironwood receive discovery and balance rollup, and `pool == "ironwood"` labelling. The librustzcash set is pinned to a currently-working zecrocks fork of librustzcash, which will be repointed to mainline librustzcash before release. With the feature off the default build is unchanged. Also adds transparent recovery-window policy controls and an ironwood regtest. Co-authored-by: AI <noreply+norm@overpay.com>
…checkpoint-pruning fix Repoint shardtree and incrementalmerkletree to a currently-working zecrocks fork for the explicit-checkpoint-retention APIs plus a fix for a panic when pruning a checkpoint whose flags need clearing; this will be repointed upstream before release. Also run the ironwood NU6.3 regtest tier for PRs targeting the ironwood branch. Co-authored-by: AI <noreply+norm@overpay.com>
Rebase the pin onto the latest ironwood-scan-model on the currently-working zecrocks fork of librustzcash, which will be repointed to mainline librustzcash before release, and bump the patch rev. - Route Ironwood sends through the fused build path (the ironwood_forces_fused gate) since upstream still rejects Ironwood PCZTs; input selection now takes SpendPolicy. - Add an ironwood receive-memo end-to-end regtest proving Ironwood-domain memo decryption. Co-authored-by: AI <noreply+norm@overpay.com>
The zecrocks incrementalmerkletree fork existed only to carry the clear_flags checkpoint-pruning panic fix, which has now landed upstream. Repoint shardtree and incrementalmerkletree from the fork to zcash/incrementalmerkletree main (same crate versions, API-compatible) and drop the fork. The librustzcash pin is unchanged. Co-authored-by: AI <noreply+norm@overpay.com>
emersonian
force-pushed
the
ironwood
branch
2 times, most recently
from
July 9, 2026 08:00
ea63511 to
9372d18
Compare
Drop the dev-only `ironwood` cargo feature and its 16 cfg gates; ironwood is now always compiled and activated purely by consensus height, so it is on for testnet (NU6.3 height 4_134_000), off for mainnet, and opt-in on regtest via the `ZECD_REGTEST_NU63_HEIGHT` env var, with no build flag. The proving-key cache is unconditionally the V5 Orchard circuit, since every post-NU6.3 send routes through the fused build path that builds its own key. This is an RC posture; the real release will pin published crates.io librustzcash instead of the git rev. Co-authored-by: AI <noreply+norm@overpay.com>
emersonian
force-pushed
the
ironwood
branch
2 times, most recently
from
July 9, 2026 13:03
c13fc67 to
e96f90e
Compare
Also make the numeric version encoding take each component's leading digit run, so the -rc0 pre-release suffix parses instead of panicking.
The bundled stack pinned zebra 5.0.0, which carries no NU6.3, so the testnet deployment could never activate ironwood. Point the testnet base at the ironwood release candidate and pin mainnet back to the stable release, since ironwood is testnet-only. Co-authored-by: AI <noreply+norm@overpay.com>
Add an ironwood regtest assertion that `getnewaddress` yields a non-empty, valid unified address once NU6.3 is active, guarding the address path on a post-activation chain. Co-authored-by: AI <noreply+norm@overpay.com>
Pin the librustzcash set by git rev to the official zcash/librustzcash ironwood line (dw/ironwood-scan-model) instead of the zecrocks fork, and drop the self-send received-note memo backfill cherry-pick that only the fork carried (it is being submitted upstream separately). The ironwood wallet crates are not published to crates.io yet, so the set stays git-pinned to upstream until they land. Co-authored-by: AI <noreply+norm@overpay.com>
emersonian
force-pushed
the
release/0.4.x
branch
from
July 12, 2026 06:55
3a4b842 to
4db176c
Compare
Zebra 6.0.0 is released and serves both networks (Orchard on mainnet, ironwood on testnet), so bump the testnet compose base, the regtest ironwood tier, and the workflow default from the 6.0.0-rc.0 candidate to 6.0.0. The mainnet overlay no longer needs a separate zebra pin and reuses the base image. Co-authored-by: AI <noreply+norm@overpay.com>
Co-authored-by: AI <noreply+norm@overpay.com>
Rebase the ironwood line onto 0.4.3 and repoint librustzcash to the upstream zcash/librustzcash ironwood branch, retiring the interim zecrocks fork. Ironwood now carries every 0.4.x fix through 0.4.3. Co-authored-by: AI <noreply+norm@overpay.com>
…leases The ironwood wallet crates were published to crates.io on 2026-07-12 (zcash_client_backend 0.24.0-rc.1, zcash_client_sqlite 0.22.0-rc.1, pczt 0.8.0-rc.1, zip321 0.9.0-rc.1), alongside the leaf crates as finals (zcash_primitives/zcash_proofs 0.29.0, orchard 0.15.0, zcash_protocol 0.10.0, zcash_keys 0.15.0, zcash_address 0.13.0, zcash_transparent 0.9.0). This is the repin the branch was waiting on: - Drop the [patch.crates-io] git pin of the whole librustzcash workspace (dw/ironwood-scan-model rev 1105d8203) and the shardtree/incrementalmerkletree git pins; published shardtree 0.7.0 / incrementalmerkletree 0.8.2 carry the checkpoint-retention APIs and the clear_flags panic fix the pins existed for. Only the vendored i18n-embed-fl patch remains. - Adapt to API drift between the old rev and the RC: create_proposed_transactions no longer takes a target-expiry argument; create_pczt_from_proposal and BuildConfig::Standard gain a trailing orchard_pool_bundle_type (DEFAULT, matching zecd's padded-bundle change strategy). - The RC now builds Ironwood PCZTs (librustzcash#2543 landed), so ironwood_forces_fused is a conservative choice rather than an upstream constraint; keep the gate (the fused path is the one the ironwood regtest validates) and note the follow-up. Builds clean; offline suite green (267 lib tests), fmt and clippy clean. Co-authored-by: AI <noreply+norm@overpay.com>
Consume the librustzcash set from crates.io (wallet crates as release candidates, the rest as finals) instead of a pinned git revision, so the build no longer needs any git dependency and 0.5.x can publish to crates.io. Co-authored-by: AI <noreply+norm@overpay.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.
Draft for CI validation of the ironwood 0.5.0-rc0 release candidate. Not for merge - ironwood is maintained as a force-pushed RC line and must not land in the stable 0.4.x release line.
Delta over release/0.4.x:
ironwoodfeature.The librustzcash/shardtree pins point at currently-working zecrocks forks and will be repointed to mainline before release.