Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
435 commits
Select commit Hold shift + click to select a range
a905fa1
feat(ci): Avoid compiling RocksDB (#9992)
upbqdn Apr 11, 2026
36e0559
fix(ci): rewrite checkpoint artifact upload to scp a pre-captured fil…
gustavovalverde Apr 14, 2026
adb8c00
fix(ci): re-run stateful tests on push while label is present (#10475)
gustavovalverde Apr 14, 2026
fe8630b
fix(ci): remove dead `gcr-cleaner` job from GCP cleanup workflow (#10…
gustavovalverde Apr 14, 2026
7e27fef
fix(ci): correct job-level permissions across workflows (#10471)
gustavovalverde Apr 14, 2026
4c8f0a4
fix(ci): Link RocksDB dynamically only in `tests` Docker stage (#10478)
upbqdn Apr 14, 2026
cc00fe3
docs: expose P2P port for inbound peer connections (#10464)
gustavovalverde Apr 14, 2026
c774199
refactor(ci): stable MIG per environment with branch-derived naming (…
gustavovalverde Apr 14, 2026
3f83bdb
refactor(ci): zonal MIG per (environment, branch, network, zone) (#10…
gustavovalverde Apr 14, 2026
58f010f
fix(ci): enable workflow_dispatch deploys to prod (#10487)
gustavovalverde Apr 15, 2026
dbb5684
fix(ci): harden pre-flight parse and idempotent health-check (#10488)
gustavovalverde Apr 15, 2026
03a5283
fix(ci): declare build job's dependency on set-matrix (#10489)
gustavovalverde Apr 15, 2026
75a1ff3
Merge commit from fork
upbqdn Apr 17, 2026
9f2ffcb
fix: CI fix after merge (#10493)
oxarbitrage Apr 17, 2026
1f605ec
fix(zebrad): apply combined security fixes (#10494)
arya2 Apr 17, 2026
aba329d
release: Zebra 4.3.1 (#10495)
arya2 Apr 17, 2026
83152f8
feat(zebrad): align Sentry CI metadata and environments (#10490)
gustavovalverde Apr 20, 2026
24417c3
feat(ci): add criterion benchmark suite and CI workflow (#10444)
oxarbitrage Apr 21, 2026
e209ad7
refactor(zebra-consensus): remove remaining groth16 abstractions aft…
oxarbitrage Apr 21, 2026
d715798
fix(ci): cargo-vet after release (#10504)
oxarbitrage Apr 22, 2026
59a7169
build(deps): bump the devops group across 1 directory with 26 updates…
dependabot[bot] Apr 23, 2026
c54c1be
feat(zebra-rpc): Add nTx field to getblock response (#10498)
daira Apr 23, 2026
f4618c1
fix(rpc): getrawtransaction confirmations bug (#10507)
oxarbitrage Apr 28, 2026
baa7ef1
docs: fix broken NetworkConstants link in custom-testnets (#10521)
alchemydc May 1, 2026
247decf
fix(zebra-rpc): fix 4 RPC security advisories (#10523)
upbqdn May 1, 2026
4aee839
Merge commit from fork
upbqdn May 1, 2026
1834baa
fix(script): Validate transparent input/output alignment before scrip…
arya2 May 1, 2026
5aec7f5
chore(deps): migrate librustzcash crates to 2026-04 release wave (#10…
schell May 1, 2026
fead158
fix(zebra-script): fix stale sighash issue (#10524)
upbqdn May 1, 2026
a638235
fix(chain): validate solution size before allocating (#10525)
upbqdn May 1, 2026
61c7105
fix(chain): validate coinbase data size before allocating (#10526)
upbqdn May 1, 2026
f4267ef
fix(chain): reject coinbase Sapling spends during deserialization (#1…
upbqdn May 1, 2026
85303ea
fix(network): Enforce 160-entry cap in `read_headers` (#10528)
upbqdn May 1, 2026
602c8b7
Merge commit from fork
arya2 May 1, 2026
a60ff83
test(state, rpc): handle coinbase Sapling spends in proptests broken …
upbqdn May 1, 2026
589d64b
chore: Release v4.4.0 (#10535)
upbqdn May 1, 2026
1ec1078
release: v4.4.1, reject v5 SIGHASH_SINGLE without a corresponding out…
conradoplg May 4, 2026
d4cd662
feat(zebrad): warn at startup if Linux TCP slow-start-after-idle is o…
evan-forbes May 7, 2026
a046716
refactor(zebra-chain): rename variables in relative_to_network for cl…
ValarDragon May 20, 2026
2342a20
ci(mergify): upgrade configuration to current format (#10450)
mergify[bot] May 21, 2026
b6e4f4c
fix(chain): cap upfront Vec reservation in zcash_deserialize_external…
dingledropper May 21, 2026
6b5692c
refactor(zebra-network): rename testnet_parameters in network config …
syszery May 21, 2026
c737f7f
build(deps): bump devops actions and fix advisory/deny-bans CI failur…
oxarbitrage May 22, 2026
b46207b
fix(network): guard most_recent_by_ip unwrap in address-book ban path…
zmanian May 23, 2026
8981a1b
fix(chain): cap block::Hash and CountedHeader preallocation at protoc…
dingledropper May 25, 2026
f2ec7e5
fix(chain): propagate transaction value-balance errors in chain_value…
zmanian May 25, 2026
f2abb65
feat: Support ZIP-213 (#10048)
upbqdn May 25, 2026
d5ccbbd
ci: disable link-check for now (#10631)
conradoplg May 25, 2026
00c8efc
test(rpc): reduce GBT snapshot mock timeout flake (#10634)
oxarbitrage May 26, 2026
f25cb9f
feat: Precompute coinbase tx and respond quickly on tip change (#10170)
upbqdn May 26, 2026
64f143d
fix(ci): grant `contents:read` on jobs that override workflow permiss…
andres-pcg May 28, 2026
cb2488a
fix(ci): solve Rust 1.97 beta clippy lints (#10644)
gustavovalverde May 28, 2026
1440b43
release: v4.5.0 (#10647)
conradoplg May 29, 2026
08a2089
fix(ci): advertise external IP on GCP-deployed nodes (#10655)
gustavovalverde May 29, 2026
76c440e
release: v4.5.1 (#10657)
conradoplg May 29, 2026
b9154d6
Temporarily disable Orchard actions
str4d May 31, 2026
0a4b3a1
wire config parsing for new option, adds tests
arya2 May 31, 2026
4434a6c
clears mempool before soft fork
arya2 Jun 1, 2026
af90402
Apply suggestions from code review
arya2 Jun 1, 2026
efca5e8
fix: add Network Orchard soft-fork accessors used by committed code
arya2 Jun 1, 2026
d5df83a
fix: set temporary Orchard-disabling soft-fork mainnet height to 3,36…
arya2 Jun 2, 2026
714c211
release: v4.5.3
arya2 Jun 2, 2026
8a45d21
release: v4.5.3 (#10665)
conradoplg Jun 2, 2026
dcfa063
fix: enforce canonical Orchard proof size from NU6.2
arya2 Jun 1, 2026
f601b69
feat: add NU6.2 network upgrade scaffolding
arya2 Jun 1, 2026
ed9ca0b
feat: wire NU6.2 fixed-circuit deps and Orchard verification
arya2 Jun 2, 2026
735abad
refactor: dedupe Orchard verifier construction
arya2 Jun 2, 2026
8265ec8
fix: bind ZFuture upgrade to fixed Orchard verifier explicitly
arya2 Jun 2, 2026
548672c
chore(nu6.2): address internal audit findings
arya2 Jun 2, 2026
af093c0
Update `orchard`
nuttycom Jun 2, 2026
95050e9
use version 170_150 for mainnet and testnet
conradoplg Jun 2, 2026
a1fdb49
Update to librustzcash/orchard release commits.
nuttycom Jun 2, 2026
9567907
set activation heights
conradoplg Jun 2, 2026
11c4bcf
bump versions and changelogs
conradoplg Jun 2, 2026
ba7d79e
update snapshots
conradoplg Jun 2, 2026
846c80d
fix proptests for Halo2Proofs
conradoplg Jun 2, 2026
1d983b5
fix more tests
conradoplg Jun 2, 2026
e6307b7
build(deps): de-vendor NU6.2 security-fix crates to crates.io releases
arya2 Jun 3, 2026
48381e7
docs: correct NU6.2 security advisory ID to GHSA-jfw5-j458-pfv6
arya2 Jun 3, 2026
41b332f
style: apply rustfmt to the v5.0.0 release branch
arya2 Jun 3, 2026
f1dd26a
fix(deps): restore minimal-delta Cargo.lock (v4.5.3 graph + crates.io…
arya2 Jun 3, 2026
6c68e40
chore(supply-chain): vet NU6.2 dependency bumps for cargo-vet
arya2 Jun 3, 2026
1e6519e
release: v5.0.0 (#10673)
mergify[bot] Jun 3, 2026
acc484f
feat(state): add finalized rollback utility
evan-forbes Jun 3, 2026
2556878
fix(state): use explicit dry run for rollback utility
evan-forbes Jun 3, 2026
4d2536f
fix(state): avoid genesis replay for modern rollback
evan-forbes Jun 3, 2026
d25e102
chore(release): cut v5.0.0-rc.1 sync defaults
evan-forbes Jun 3, 2026
828eaa6
chore(release): cut v5.0.0-rc.2 sync timeouts
evan-forbes Jun 3, 2026
9dbb181
fix(sync): retry missing block downloads
czarcas7ic Jun 4, 2026
3042917
Merge pull request #10 from valargroup/adam/retry-missing-sync-blocks
evan-forbes Jun 4, 2026
3f35436
chore(release): cut v5.0.0-rc.3 retry missing sync blocks
evan-forbes Jun 4, 2026
0323b85
docs(changelog): clarify rollback default and dry-run preview
p0mvn Jun 7, 2026
2e171dc
Merge pull request #19 from valargroup/docs/changelog-rollback-dry-run
p0mvn Jun 7, 2026
0d8a7c6
feat(zebrad): add Unity mode zcashd supervision (#20)
p0mvn Jun 8, 2026
7af44a3
feat(zcashd_compat): support extra arg propagation (#22)
p0mvn Jun 8, 2026
06d590c
feat(deps): improve zcashd log propagation (#23)
p0mvn Jun 8, 2026
f9bc5a0
chore: release CI (#31)
p0mvn Jun 9, 2026
15b6879
chore: release ci improvements (#33)
p0mvn Jun 9, 2026
379b34b
chore: improve ci docker (#34)
p0mvn Jun 9, 2026
91b5e7a
chore: fix release publish ci (#35)
p0mvn Jun 9, 2026
b05e83b
chore: create missing dispatch releases
p0mvn Jun 9, 2026
e8d7bb9
chore: add ca certs to runtime image
p0mvn Jun 10, 2026
1e31db8
ci(ci): add zcashd-compat deployment workflow (#39)
p0mvn Jun 10, 2026
84c7dd3
feat(ci): add zebra watchdog service (#40)
p0mvn Jun 10, 2026
53a9cf6
feat: zcashd compat (#25)
p0mvn Jun 10, 2026
3d5624d
test(zcashd-compat): run regtest suite in CI (#41)
p0mvn Jun 10, 2026
9d27804
test(zcashd-compat): add reorg regression coverage (#42)
p0mvn Jun 10, 2026
827fdb3
refactor: pin zcashd compat Docker artifacts from manifest (#43)
p0mvn Jun 10, 2026
ab30178
fix(release): drop arm64 compat artifacts (#45)
p0mvn Jun 10, 2026
ec81226
ci: update zcashd compat ci branching (#47)
p0mvn Jun 10, 2026
2c5939a
fix(rpc): write auth cookie with private permissions (#46)
p0mvn Jun 10, 2026
7a5621d
test: add zcashd-compat reorg follow-up probes (#44)
p0mvn Jun 10, 2026
5d5039f
fix(zcashd-compat): pass -p2p=0 and -listen=0 from supervisor (#48)
p0mvn Jun 10, 2026
5fcd922
test(zcashd-compat): add reorg hardening and sticky-fault recovery pr…
p0mvn Jun 11, 2026
565d9ba
fix: zcashd-compat bootstrap zcash.conf on first start (#49)
p0mvn Jun 11, 2026
4a932ac
fix(watchdog): suppress alerts during zcashd-compat deploys (#53)
p0mvn Jun 11, 2026
59015d7
docs: add Valarbook GitBook preview (#63)
p0mvn Jun 12, 2026
182aed6
docs(gitbook): add zcashd compatibility guide (#64)
p0mvn Jun 12, 2026
d1a7654
feat: rebase QoL and (#61)
evan-forbes Jun 12, 2026
d4325d4
docs: replace Valarbook with static page (#65)
p0mvn Jun 13, 2026
eda405d
docs: improve instructions (#66)
p0mvn Jun 13, 2026
4650d50
feat: zcashd-compat v2 (#54)
p0mvn Jun 13, 2026
64489ef
fix(ci): repair release binary Docker builds (#67)
p0mvn Jun 13, 2026
33a844c
docs: use release binary in Valarbook setup (#68)
p0mvn Jun 13, 2026
0b72aad
Revert "docs: use release binary in Valarbook setup (#68)" (#69)
ValarDragon Jun 13, 2026
5ea0b01
Revert "Revert "docs: use release binary in Valarbook setup (#68)" (#…
ValarDragon Jun 13, 2026
cb73447
fix(zcashd-compat): default to externally managed path mode (#71)
p0mvn Jun 13, 2026
3ce3163
feat(zcashd-compat): add release installer (#72)
p0mvn Jun 13, 2026
dc1174a
docs(valarbook): improve zcashd compat setup layout (#73)
p0mvn Jun 13, 2026
921f9c4
fix(ci): repair release asset publishing (#74)
p0mvn Jun 13, 2026
129fd0b
fix: repair release installer publishing (#75)
p0mvn Jun 13, 2026
85a079d
fix: align regtest batch limits (#76)
p0mvn Jun 13, 2026
c8a9355
fix(zcashd-compat): allow readiness hysteresis in reorg tests (#77)
p0mvn Jun 13, 2026
ce52db0
ci: installer improvements (#78)
p0mvn Jun 13, 2026
7959381
docs: streamline Zakura install section
p0mvn Jun 13, 2026
f752c9c
ci: installer and dev ops edits (#80)
p0mvn Jun 13, 2026
88347ac
fix(zcashd-compat): repair split-container zcashd startup (#82)
p0mvn Jun 13, 2026
21cc835
ci: devops fixes (#83)
p0mvn Jun 13, 2026
0822884
fix(zcashd-compat): clarify docker supervised paths (#84)
p0mvn Jun 13, 2026
4f9bd0f
ci: docker permissioning edits (#86)
p0mvn Jun 14, 2026
6878fbf
fix: recommend portable datadirs (#87)
p0mvn Jun 14, 2026
7167bc4
fix(network,zebrad): avoid genesis-to-tip sync stalls (#92)
p0mvn Jun 16, 2026
3dbdc6d
docs: update installer wording (#100)
p0mvn Jun 16, 2026
d397cf9
feat(state): add pruned storage mode for raw transaction history (#91)
p0mvn Jun 16, 2026
94ae42f
fix(state): hand off to non-finalized writes at the max checkpoint he…
p0mvn Jun 16, 2026
3a50359
fix: retry missing blocks instead of restarting the whole sync round …
p0mvn Jun 17, 2026
4f251a8
feat(state): skip raw transaction writes for checkpoint blocks below …
p0mvn Jun 17, 2026
00a1447
feat(network): add Zakura P2P stack with legacy gossip adapter (#106)
evan-forbes Jun 17, 2026
1608fa4
perf: continuously refill the download pipeline via a select! loop (#…
p0mvn Jun 17, 2026
3b3446a
refactor: clarify checkpoint raw transaction retention (#115)
p0mvn Jun 17, 2026
2207da2
fix: prioritize head-of-line block during registry-miss backoff (#105)
p0mvn Jun 17, 2026
0acd5de
chore: split Zakura local admin cleanup (#117)
ValarDragon Jun 17, 2026
841e94d
ci: split Zakura e2e harness updates (#116)
ValarDragon Jun 17, 2026
334e8bb
fix(sync): handle finalized duplicate commit errors (#119)
ValarDragon Jun 17, 2026
64d20ab
perf(state): parallelize checkpoint-zone note-commitment tree commit …
p0mvn Jun 18, 2026
9de797d
fix(sync): handle empty block response without panicking (#120)
p0mvn Jun 18, 2026
f9ccea5
perf(chain): parallelize auth data root computation across transactio…
p0mvn Jun 18, 2026
fffc400
ci: add manual checkpoint-sync benchmark job (#137)
p0mvn Jun 19, 2026
708e1d8
ci: fix build-on-host checkpoint-sync benchmark run (#139)
p0mvn Jun 19, 2026
64f405b
feat(network): add Zakura peer/service discovery, header sync, and bl…
evan-forbes Jun 19, 2026
3213b6c
perf(chain): add shared txid and auth digest conversion (#125)
p0mvn Jun 19, 2026
440c4c5
perf(state): isolate checkpoint-commit crypto in a dedicated rayon po…
p0mvn Jun 19, 2026
4d82758
ci: unify MSRV at 1.91 and fix the Zakura e2e trace-flush race (#147)
evan-forbes Jun 19, 2026
f7e9d61
ci: add upstream PR sync pilot (#152)
czarcas7ic Jun 21, 2026
cee27f3
ci: harden upstream sync dry-run validation (#153)
czarcas7ic Jun 21, 2026
eae4fe8
ci: harden upstream sync retries (#155)
czarcas7ic Jun 21, 2026
3d4c2b2
ci: improve upstream sync PR safeguards (#157)
czarcas7ic Jun 21, 2026
1100357
ci: triage upstream PRs before import (#160)
czarcas7ic Jun 21, 2026
e7eb9bb
ci: sign upstream sync PR commits (#162)
czarcas7ic Jun 21, 2026
42681b2
refactor: drop stale ZIP233/NSM scaffolding from Ironwood V6 paths (#…
ValarDragon Jun 21, 2026
0402432
Delete .github/workflows/pr-title-check.yml (#172)
ValarDragon Jun 21, 2026
ad6f40b
refactor: gate v6 transactions on nu6.3 cfg (#171)
ValarDragon Jun 21, 2026
fbf4697
refactor: reserve ironwood value balance storage (#173)
ValarDragon Jun 21, 2026
51d3d88
Ironwood: wire in a no-op NU6_3 activation height (#174)
ValarDragon Jun 21, 2026
e9a4a8e
refactor!: use peer routines for high throughput (#164)
evan-forbes Jun 21, 2026
cdeaee4
Ironwood: reject Orchard pool deposits after NU6.3 (#175)
ValarDragon Jun 21, 2026
b141047
ci: cut redundant per-PR compiles and path-gate the Zakura e2e (#179)
evan-forbes Jun 22, 2026
0f2721d
build(deps): bump orchard/librustzcash forks, migrate Halo2 verifier …
czarcas7ic Jun 22, 2026
db4082a
perf(network)!: non-blocking Zakura block-sync reactor with split seq…
evan-forbes Jun 22, 2026
1c34cea
fix(state): roll back Zakura headers with finalized state (#220)
p0mvn Jun 23, 2026
05f37fe
perf(chain): cache the Orchard MerkleCRH Sinsemilla hash domain (#221)
p0mvn Jun 23, 2026
f43ea46
ci: keep PR unit tests fast (#229)
p0mvn Jun 23, 2026
8407871
perf(state): parallelize per-block serialization in the finalized wri…
p0mvn Jun 23, 2026
a0e5371
perf(state): parallelize finalized writer reads (#234)
p0mvn Jun 23, 2026
cfb84dc
ci(bench): sync bottleneck dashboard + verdict for checkpoint-sync be…
p0mvn Jun 25, 2026
51f5185
fix(tests): make trusted chain sync restart deterministic (#246)
p0mvn Jun 25, 2026
d402f4f
fix(consensus): reject Orchard coinbase bundles after NU6.3 (#258)
ValarDragon Jun 25, 2026
bb4d382
refactor(chain): isolate Orchard cross-address flag serialization (#265)
ValarDragon Jun 25, 2026
ff57785
fix(consensus): check shielded proof sizes before tx ids (#266)
ValarDragon Jun 26, 2026
ef14819
test(zebrad): speed up slow regtest acceptance tests (#268)
ValarDragon Jun 26, 2026
405e5b3
fix(state): support disabled-pow local genesis (#269)
ValarDragon Jun 26, 2026
33df8fb
fix(network): prepare nu6.3 protocol handling (#270)
ValarDragon Jun 26, 2026
9a168c5
feat(chain): add Ironwood bundle to v6 transactions (#272)
ValarDragon Jun 26, 2026
2542792
test(consensus): add ironwood transaction coverage (#273)
ValarDragon Jun 26, 2026
3d0c6fb
chore(deps): bump orchard and librustzcash to latest Ironwood revs (#…
czarcas7ic Jun 26, 2026
d4ecdde
test(consensus): cover ironwood miner fees (#275)
ValarDragon Jun 26, 2026
a27a877
test(chain): cover Ironwood note plaintext domains (#281)
ValarDragon Jun 26, 2026
f2bf436
ci: add sync-confidence job for pre/post-NU6.2 mainnet sync ranges (#…
czarcas7ic Jun 26, 2026
8934575
feat(perf): add private Zakura cohort deploy and bench tooling (#291)
p0mvn Jun 27, 2026
3d3084f
feat(perf): update Zakura perf test tooling (#294)
p0mvn Jun 28, 2026
750746b
feat(perf): add staged bench binary tooling (#298)
p0mvn Jun 28, 2026
17e78d7
feat(chain): add Ironwood zcash history entries (#276)
ValarDragon Jun 28, 2026
82894e8
fix(consensus): route NU6.3 Orchard proofs to NU6.3 key (#300)
ValarDragon Jun 28, 2026
181b9d0
fix(mempool): handle missing transaction downloads (#299)
p0mvn Jun 28, 2026
20b6e3c
ci: add configurable P2P modes to checkpoint benchmark (#312)
p0mvn Jun 29, 2026
fad604b
ci: allow skipping checkpoint benchmark baseline (#314)
p0mvn Jun 29, 2026
e00998f
ci: seed Zakura benchmark peers for v2 runs (#315)
p0mvn Jun 29, 2026
d0e6e5c
ci: clarify checkpoint benchmark skip baseline input (#316)
p0mvn Jun 29, 2026
ebe3f05
ci: update checkpoint dashboard metrics (#317)
p0mvn Jun 29, 2026
8bd907d
ci: sanitize checkpoint benchmark artifact name (#323)
p0mvn Jun 29, 2026
b675d94
ci: refresh Zakura dashboard panels (#326)
p0mvn Jun 29, 2026
676e6b2
ci: default checkpoint benchmark to target-only pre-release (#328)
p0mvn Jun 29, 2026
963deb9
ci: honor checkpoint benchmark wall cap input (#332)
p0mvn Jun 29, 2026
24fd15f
perf(chain): compute ZIP-244 txid and auth digest natively (#329)
p0mvn Jun 30, 2026
cd85bb8
fix(sync): stop Zakura sync drivers before legacy ChainSync fallback …
p0mvn Jun 30, 2026
1a5e922
chore(deps): bump orchard and librustzcash Ironwood pins (#339)
czarcas7ic Jun 30, 2026
224246e
ci: remove obsolete GCP and zizmor workflows (#340)
czarcas7ic Jun 30, 2026
831c87a
fix(ironwood): split history count and mempool conflicts (#341)
ValarDragon Jun 30, 2026
e7d52cd
feat(chain): add Ironwood block accessors (#351)
czarcas7ic Jul 1, 2026
34d5d91
fix(mempool): track Ironwood nullifier conflicts (#347)
czarcas7ic Jul 1, 2026
c7fd10d
fix(consensus): verify v6 ironwood bundles (#348)
ValarDragon Jul 1, 2026
e69fbac
feat(rpc): report Ironwood value pool balances (#354)
czarcas7ic Jul 1, 2026
ccef7ef
refactor(mempool): add disabled error type (#362)
ValarDragon Jul 1, 2026
b71d9ce
feat(state): track Ironwood shielded state (#359)
czarcas7ic Jul 1, 2026
b5bf847
test(state): mirror Ironwood state coverage (#364)
ValarDragon Jul 1, 2026
92cbcb8
perf(chain): hash v5/v6 transactions without librustzcash conversion …
czarcas7ic Jul 1, 2026
7f29f19
fix(rpc): support Ironwood mining templates (#346)
czarcas7ic Jul 1, 2026
5554118
perf(chain): defer Sapling cv/epk decompression, enforce on the seman…
p0mvn Jul 1, 2026
b832eaf
fix(rpc): avoid invalidateblock write task panics (#373)
p0mvn Jul 1, 2026
2d87dd9
chore(deps): bump zcash crates for Ironwood (#372)
czarcas7ic Jul 1, 2026
f6a7476
test(rpc): update protocol version snapshots (#382)
czarcas7ic Jul 1, 2026
c45fe95
fix(state): read legacy history tree entries after Ironwood
czarcas7ic Jul 1, 2026
4619f83
feat(rpc): expose Ironwood RPC output
czarcas7ic Jul 1, 2026
e3571d1
perf(network): tune Zakura native P2P defaults (#376)
evan-forbes Jul 1, 2026
7d884a7
fix(mempool): attribute peer transaction admission (#321)
evan-forbes Jul 1, 2026
62541fc
feat(network): serve Zakura header-sync commitment roots (#378)
evan-forbes Jul 2, 2026
3482b60
perf(state): precompute checkpoint auth data roots (#235)
p0mvn Jul 2, 2026
bb31481
perf(network): improve Zakura block-sync throughput control (#374)
evan-forbes Jul 2, 2026
8927534
fix(network): stabilize Zakura CI tests (#390)
p0mvn Jul 2, 2026
0df9500
fix(network): stabilize Zakura coverage assertion (#392)
p0mvn Jul 2, 2026
e2248cd
perf(state): limit RocksDB WAL growth (#383)
ValarDragon Jul 2, 2026
5d88d1f
fix(tests): add Zakura throughput config fixture (#395)
p0mvn Jul 2, 2026
34df96c
Fix changelog params markdown spacing
czarcas7ic Jul 2, 2026
5eb43eb
fix(rpc): compare auth cookies in constant time (#399)
czarcas7ic Jul 2, 2026
b827218
Stabilize Zakura header sync e2e waits
czarcas7ic Jul 2, 2026
435081f
test(state): cover legacy history tree fallback (#393)
czarcas7ic Jul 2, 2026
e97aa67
fix(network): align NU6.3 protocol version floor (#394)
czarcas7ic Jul 2, 2026
e388308
feat(state): add VCT docs config and DB storage (#402)
p0mvn Jul 2, 2026
e9436d3
fix(transaction): accept V6 in NU7+ (#396)
czarcas7ic Jul 2, 2026
848f9a8
test(network): stabilize Zakura trace tests (#406)
czarcas7ic Jul 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
85 changes: 6 additions & 79 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,84 +1,7 @@
# Zebra cargo configuration

# Flags that apply to all Zebra crates and configurations
[target.'cfg(all())']
rustflags = [
# Zebra standard lints for Rust 1.65+

# High-risk code
"-Dunsafe_code",
"-Dnon_ascii_idents",

# Potential bugs
#
# If we deny these lints, we could be excluded from Crater builds:
# https://www.reddit.com/r/rust/comments/f5xpib/psa_denywarnings_is_actively_harmful/

# Compatibility
"-Wrust_2021_compatibility",
"-Wnonstandard_style",
"-Wfuture_incompatible",

# Async code
"-Wclippy::await_holding_lock",
"-Wclippy::await_holding_refcell_ref",

# Pointers
"-Wclippy::cast_ptr_alignment",
"-Wclippy::fn_to_numeric_cast_any",

# Integers
"-Wclippy::checked_conversions",
"-Wclippy::implicit_saturating_sub",
"-Wclippy::invalid_upcast_comparisons",
"-Wclippy::range_minus_one",
"-Wclippy::range_plus_one",
"-Wclippy::unnecessary_cast",

# Incomplete code
"-Wclippy::dbg_macro",
"-Wclippy::todo",

# Manual debugging output.
# Use tracing::trace!() or tracing::debug!() instead.
"-Wclippy::print_stdout",
"-Wclippy::print_stderr",
"-Wclippy::dbg_macro",

# Code styles we want to accept
"-Aclippy::try_err",

# Panics
"-Wclippy::fallible_impl_from",
"-Wclippy::unwrap_in_result",

# Documentation
"-Wmissing_docs",

# TODOs:
# Fix this lint eventually.
"-Aclippy::result_large_err",

# `cargo fix` might help do these fixes,
# or add a config.toml to sub-directories which should allow these lints,
# or try allowing the lint in the specific module (lib.rs doesn't seem to work in some cases)
#
# lint configs that don't work:
# - allowing these lints in lib.rs (command-line warn overrides allow in lib.rs?)
# - adding a [target.'cfg(not(test))'] rustflags config (it runs on test code anyway)

# fix code that triggers these lints,
# or disable the lint for that code (or for all test code)
#
#"-Wclippy::cast_lossless", # 30 non-test warnings, a few test warnings
#"-Wclippy::cast_possible_truncation", # 40 non-test warnings, 20 test warnings
#"-Wclippy::cast_possible_wrap", # 13 test warnings (fixed outside tests)
#"-Wclippy::cast_precision_loss", # 25 non-test warnings, 10 test warnings
#"-Wclippy::cast_sign_loss", # 6 non-test warnings, 15 test warnings

# fix hidden lifetime parameters
#"-Wrust_2018_idioms",
]
[alias]
xtask = "run --package xtask --"

[build]
rustdocflags = [
Expand All @@ -91,3 +14,7 @@ rustdocflags = [

[env]
RUST_BACKTRACE="1"

[profile.profiling]
inherits = "release"
debug = true
4 changes: 2 additions & 2 deletions .codespellrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[codespell]
ignore-words-list = crate,Sur,inout,Groth,groth,re-use,abl,
ignore-words-list = crate,Sur,inout,Groth,groth,re-use,abl,zcash,zcashd,zebrad,zebra,utxo,utxos,nullifier,nullifiers,sapling,orchard,sprout,backpressure,proptest,thiserror,rocksdb,libsecp,fullnode,peerset,threadsafe,unrepresentable,getblocktemplate,syncer,Actix,Akka,mermaid,println,eprintln,usize,nocapture,Parallelizable,invis,UTXO,Zcash,Zaino,Zallet,librustzcash,Mainnet,Testnet,mainnet,testnet,idents,reentrancy,serializable,deserializable,deserialization,zkSNARK,zkSNARKs,lightwalletd,statics,ser,endianity,aranges,daa
exclude-file = book/mermaid.min.js
skip = ./zebra-rpc/qa/rpc-tests,./supply-chain
skip = ./zebra-rpc/qa/rpc-tests,./supply-chain,./target
30 changes: 29 additions & 1 deletion .config/nextest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,25 @@ filter = "not test(=trusted_chain_sync_handles_forks_correctly) and not test(=de
# TODO: We need a better test architecture to run all non-stateful
[profile.all-tests]
failure-output = "immediate"
default-filter = "not test(check_no_git_dependencies) and not test(=fully_synced_rpc_z_getsubtreesbyindex_snapshot_test) and not test(=lwd_rpc_test) and not test(=lwd_rpc_send_tx) and not test(=lwd_grpc_wallet) and not test(=lwd_integration) and not test(=lwd_sync_full) and not test(=lwd_sync_update) and not test(=lightwalletd_test_suite) and not test(=rpc_get_block_template) and not test(=rpc_submit_block) and not test(=get_peer_info) and not test(~generate_checkpoints_) and not test(=sync_update_mainnet) and not test(=activate_mempool_mainnet)"
default-filter = "not test(check_no_git_dependencies) and not test(=fully_synced_rpc_z_getsubtreesbyindex_snapshot_test) and not test(=lwd_rpc_test) and not test(=lwd_rpc_send_tx) and not test(=lwd_grpc_wallet) and not test(=lwd_integration) and not test(=lwd_sync_full) and not test(=lwd_sync_update) and not test(=lightwalletd_test_suite) and not test(=rpc_get_block_template) and not test(=rpc_submit_block) and not test(=get_peer_info) and not test(~generate_checkpoints_) and not test(=sync_update_mainnet) and not test(=activate_mempool_mainnet) and not test(=sync_large_checkpoints_mempool_mainnet) and not test(cluster_forms_native_two_node_mesh) and not test(=pruned_storage_mode_prunes_during_regtest_sync)"

# --- Full Tests profile ---
# Broader coverage for `ironwood-main`, scheduled, manual, and merge-queue runs.
# This preserves the previous `all-tests` selection while the PR lane stays fast.
[profile.full-tests]
failure-output = "immediate"
default-filter = "not test(check_no_git_dependencies) and not test(=fully_synced_rpc_z_getsubtreesbyindex_snapshot_test) and not test(=lwd_rpc_test) and not test(=lwd_rpc_send_tx) and not test(=lwd_grpc_wallet) and not test(=lwd_integration) and not test(=lwd_sync_full) and not test(=lwd_sync_update) and not test(=lightwalletd_test_suite) and not test(=rpc_get_block_template) and not test(=rpc_submit_block) and not test(=get_peer_info) and not test(~generate_checkpoints_) and not test(=sync_update_mainnet) and not test(=activate_mempool_mainnet) and not test(=sync_large_checkpoints_mempool_mainnet) and not test(cluster_forms_native_two_node_mesh)"

# --- Individual Test Profiles ---

[profile.check-no-git-dependencies]
default-filter = 'test(check_no_git_dependencies)'

[profile.zakura-integration]
retries = 2
slow-timeout = { period = "15m", terminate-after = 1 }
default-filter = 'package(zebra-network) and test(~zakura)'

[profile.sync-large-checkpoints-empty]
slow-timeout = { period = "60m", terminate-after = 2 }
default-filter = 'package(zebrad) and test(=sync_large_checkpoints_empty)'
Expand Down Expand Up @@ -74,6 +86,22 @@ default-filter = 'package(zebrad) and test(=sync_past_mandatory_checkpoint_mainn
slow-timeout = { period = "60m", terminate-after = 2 }
default-filter = 'package(zebrad) and test(=sync_past_mandatory_checkpoint_testnet)'

[profile.sync-range-pre-nu62]
# A healthy 5k-window sync is ~3-5 min. Terminate a stalled (broken) sync at ~20 min so a
# consensus regression fails fast and cleanly (a real test timeout) instead of waiting out the
# job-level timeout. Generous margin over the healthy duration to avoid flakes on a slow droplet.
slow-timeout = { period = "5m", terminate-after = 4 }
success-output = "immediate"
default-filter = 'package(zebrad) and test(=sync_range_pre_nu62)'

[profile.sync-range-post-nu62]
# A healthy 5k-window sync is ~3-5 min. Terminate a stalled (broken) sync at ~20 min so a
# consensus regression fails fast and cleanly (a real test timeout) instead of waiting out the
# job-level timeout. Generous margin over the healthy duration to avoid flakes on a slow droplet.
slow-timeout = { period = "5m", terminate-after = 4 }
success-output = "immediate"
default-filter = 'package(zebrad) and test(=sync_range_post_nu62)'

[profile.generate-checkpoints-mainnet]
slow-timeout = { period = "90m", terminate-after = 1 }
success-output = "immediate"
Expand Down
67 changes: 67 additions & 0 deletions .cursor/skills/zakura-trace-plots/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
name: zakura-trace-plots
description: Generate metrics-aware plots and summaries from Zebra Zakura perf trace directories. Use when the user asks to plot or analyze Zakura traces, block_sync.jsonl, commit_state.jsonl, feedrun CSVs, applying/reorder/stalls, HoL stalls, throughput, or commit metrics from a trace_dir.
---

# Zakura Trace Plots

## Quick Start

When the user gives a Zakura `trace_dir`, generate plots with:

```bash
python3 .cursor/skills/zakura-trace-plots/scripts/plot_zakura_traces.py TRACE_DIR --out-dir perf-artifacts
```

If the matching feed-run CSV is not auto-detected, pass it explicitly:

```bash
python3 .cursor/skills/zakura-trace-plots/scripts/plot_zakura_traces.py TRACE_DIR --csv /root/wal-bench/feedrun-r1.csv --out-dir perf-artifacts
```

## What To Plot

Default outputs:

- `*-time-apply-reorder-stalls-bps.svg`
- `*-height-apply-reorder-stalls-bps.svg`
- `*-summary.txt`

Use the time plot for stall diagnosis. Height plots collapse zero-progress stalls onto one x-position.

## Metrics Awareness

Use `block_sync.jsonl` as the source of truth for:

- `applying`
- `reorder`
- `unsubmitted_applying_count`
- `submitted_applies`
- byte counters like `applying_buffered_bytes` and `retained_pipeline_wire_bytes`
- floor-gap states such as `outstanding`, `queued`, and `in_flight_without_outstanding`

Use the CSV only for sampled node metrics:

- `blk_s`, recomputed from finalized height deltas while skipping startup `0 -> snapshot` jumps
- commit phase counters like `sur`, `ar`, `bp`, `bc`
- `cpu_cores`, peers, and other sampler-only columns

Do not trust the CSV `reorder` column unless verified against `block_sync.jsonl`; in prior runs it was effectively zero while trace reorder was thousands.

## Interpreting Output

HoL/body-floor stall signature:

- `applying` collapses near zero
- `reorder` grows
- `blk_s` drops near zero
- trace floor-gap state is usually `outstanding`

Commit/memory-pressure signature:

- `applying` and submitted applies stay high
- `reorder` stays low
- `spent_utxo_reads` or other commit phases spike
- host memory pressure or retained pipeline bytes rise

When summarizing, report the generated file paths and the strongest signature, not every metric.
Loading
Loading