Skip to content

Conversation

@aphelionz
Copy link
Member

No description provided.

sashass1315 and others added 24 commits September 8, 2025 15:48
…cashFoundation#9860)

Bumps the prod group with 15 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [bitflags](https://github.com/bitflags/bitflags) | `2.9.1` | `2.9.4` |
| [clap](https://github.com/clap-rs/clap) | `4.5.43` | `4.5.47` |
| [ed25519-zebra](https://github.com/ZcashFoundation/ed25519-zebra) | `4.0.3` | `4.1.0` |
| [hyper](https://github.com/hyperium/hyper) | `1.6.0` | `1.7.0` |
| [indexmap](https://github.com/indexmap-rs/indexmap) | `2.10.0` | `2.11.0` |
| [rayon](https://github.com/rayon-rs/rayon) | `1.10.0` | `1.11.0` |
| [regex](https://github.com/rust-lang/regex) | `1.11.1` | `1.11.2` |
| [reqwest](https://github.com/seanmonstar/reqwest) | `0.12.22` | `0.12.23` |
| [serde_json](https://github.com/serde-rs/json) | `1.0.142` | `1.0.143` |
| [syn](https://github.com/dtolnay/syn) | `2.0.104` | `2.0.106` |
| [tempfile](https://github.com/Stebalien/tempfile) | `3.20.0` | `3.21.0` |
| [thiserror](https://github.com/dtolnay/thiserror) | `2.0.12` | `2.0.16` |
| [tinyvec](https://github.com/Lokathor/tinyvec) | `1.9.0` | `1.10.0` |
| [tower](https://github.com/tower-rs/tower) | `0.4.13` | `0.5.2` |
| [config](https://github.com/rust-cli/config-rs) | `0.15.14` | `0.15.15` |



Updates `bitflags` from 2.9.1 to 2.9.4
- [Release notes](https://github.com/bitflags/bitflags/releases)
- [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md)
- [Commits](bitflags/bitflags@2.9.1...2.9.4)

Updates `clap` from 4.5.43 to 4.5.47
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](clap-rs/clap@clap_complete-v4.5.43...clap_complete-v4.5.47)

Updates `ed25519-zebra` from 4.0.3 to 4.1.0
- [Release notes](https://github.com/ZcashFoundation/ed25519-zebra/releases)
- [Changelog](https://github.com/ZcashFoundation/ed25519-zebra/blob/main/CHANGELOG.md)
- [Commits](ZcashFoundation/ed25519-zebra@4.0.3...4.1.0)

Updates `hyper` from 1.6.0 to 1.7.0
- [Release notes](https://github.com/hyperium/hyper/releases)
- [Changelog](https://github.com/hyperium/hyper/blob/master/CHANGELOG.md)
- [Commits](hyperium/hyper@v1.6.0...v1.7.0)

Updates `indexmap` from 2.10.0 to 2.11.0
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md)
- [Commits](indexmap-rs/indexmap@2.10.0...2.11.0)

Updates `rayon` from 1.10.0 to 1.11.0
- [Changelog](https://github.com/rayon-rs/rayon/blob/main/RELEASES.md)
- [Commits](rayon-rs/rayon@rayon-core-v1.10.0...rayon-core-v1.11.0)

Updates `regex` from 1.11.1 to 1.11.2
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](rust-lang/regex@1.11.1...1.11.2)

Updates `reqwest` from 0.12.22 to 0.12.23
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](seanmonstar/reqwest@v0.12.22...v0.12.23)

Updates `serde_json` from 1.0.142 to 1.0.143
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](serde-rs/json@v1.0.142...v1.0.143)

Updates `syn` from 2.0.104 to 2.0.106
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](dtolnay/syn@2.0.104...2.0.106)

Updates `tempfile` from 3.20.0 to 3.21.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md)
- [Commits](Stebalien/tempfile@v3.20.0...v3.21.0)

Updates `thiserror` from 2.0.12 to 2.0.16
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](dtolnay/thiserror@2.0.12...2.0.16)

Updates `tinyvec` from 1.9.0 to 1.10.0
- [Changelog](https://github.com/Lokathor/tinyvec/blob/main/CHANGELOG.md)
- [Commits](Lokathor/tinyvec@v1.9.0...v1.10.0)

Updates `tower` from 0.4.13 to 0.5.2
- [Release notes](https://github.com/tower-rs/tower/releases)
- [Commits](tower-rs/tower@tower-0.4.13...tower-0.5.2)

Updates `config` from 0.15.14 to 0.15.15
- [Changelog](https://github.com/rust-cli/config-rs/blob/main/CHANGELOG.md)
- [Commits](rust-cli/config-rs@v0.15.14...v0.15.15)

---
updated-dependencies:
- dependency-name: bitflags
  dependency-version: 2.9.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: clap
  dependency-version: 4.5.47
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: ed25519-zebra
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: hyper
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: indexmap
  dependency-version: 2.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: rayon
  dependency-version: 1.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: regex
  dependency-version: 1.11.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: reqwest
  dependency-version: 0.12.23
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: serde_json
  dependency-version: 1.0.143
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: syn
  dependency-version: 2.0.106
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: tempfile
  dependency-version: 3.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: thiserror
  dependency-version: 2.0.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
- dependency-name: tinyvec
  dependency-version: 1.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: tower
  dependency-version: 0.5.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod
- dependency-name: config
  dependency-version: 0.15.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat(rpc): add getmempoolinfo RPC method

* apply suggestion from review

Co-authored-by: Conrado <[email protected]>

* apply suggestion from review

Co-authored-by: Conrado <[email protected]>

---------

Co-authored-by: Conrado <[email protected]>
* improve qa config arguments for zebra

* use list of funding streams, add activation heights

* add feature_nu6_1.py test

* move test funding streams to the test files

* fix some newlines

* fix regtest lockbox_disbursement from config

* use lockbox_disbursements as an argument

* fix test
…hFoundation#9819)

* Adds `which` as a build dep of zebra-rpc

* - Updates `zebra-rpc/build.rs` to copy generated proto files into output dir instead of re-compiling them if `protoc` is not available
- Adds proto files to `zebra-rpc/proto/__generated__`

* updates changelog

* updates changelog

* Avoids copying files if they already exist and match.

* skip recompilation for downstream users by not attempting to rebuild if the proto files are absent

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
…dation#9814)

* Defines permitted `unexpected_cfg` lints for workspace and sets each crate to use the lints config from the workspace

* - Adds arm for `ZFuture` in `match NetworkUpgrade` statements
- Defines a consensus branch id for `ZFuture`

* Adds a `zfuture` field to `ConfiguredActivationHeights` and updates `ParametersBuilder::with_activation_heights()` to allow users to define a ZFuture network upgrade activation height in the config when Zebra is compiled with `zcash_unstable="zfuture"`.

* Hides the new `zfuture` field behind cfg(zcash_unstable=zfuture)

* Adds comments explaining the allowed cfg flags
…nt.sh (ZcashFoundation#9890)

The entrypoint.sh was updated to use `config-rs` but the directory
creation and permissions setup was removed, causing "Permission denied" errors in
tests like `sync_full_mainnet` when trying to create cached database files.

This restores the permissions handling using the correct `ZEBRA_SECTION__KEY`
environment variable format that config-rs expects.

Fixes permission denied errors in cached database creation during tests.
…sible (ZcashFoundation#9828)

* deduplicate valuecommitment

* use sapling_crypto `ExtractedNoteCommitment` for `cm_u` field of `Output`

* cleanup

* add a todo for pedersen_hash

* try upstream `pedersen_hash`

* remove all pedersen_hash code and note commitment tree tests

* use upstream `Node`

* clippy

* apply some of the suggestions from code review
…shFoundation#9809)

* add(state): Backup non-finalized state in state cache directory

- Defines a non-finalized state backup directory path relative to the state cache directory path
- Adds a `NonFinalizedState::restore_backup()` method that reads from the directory and attempts to commit any blocks in it

* - Moves logic for restoring backups to its own module
- Refactors `restore_backup()` method into `with_backup()` method that should also spawn the backup task

* - Moves logic for reading and processing backup files out of `restore_backup()` into their own fns
- Adds and calls a stub `spawn_backup_task()` fn for writing the latest non-finalized state to the backup dir, and
- Updates `with_backup()` method docs.

* - Makes fns in `backup` mod private to the `non_finalized_state` mod
- Adds an info log
- Adds a `backup_task()` fn

* Makes `StateService::new()` an async fn

* Updates `duration_short()` to print microseconds when formatting durations less than 5 ms

* - Moves blocking ops in `StateService::new()` to blocking tasks, and
- Updates warning msg from `NonFinalizedBlocksListener::spawn()` when non-finalized state receiver is closed.

* - Checks that block hashes in file name match computed block hashes when restoring blocks from non-finalized state backup
- Removes unnecessary function

* Implements `run_backup_task()`, writing blocks in the non-finalized state to the backup cache.

* - Fixes a bug where the non-finalized state would not be restored from the backup cache
- Fixes a bug where the state service uses the finalized tip as the initial chain tip in the latest chain tip channels even when there are non-finalized blocks restored from the backup cache

* Rate limits updates to non-finalized state backup cache

* Adds a config field to allow for disabling non-finalized state backup cache.

* Fixes clippy lints, minor cleanup

* - Reads/writes deferred pool balance change to non-finalized block backup files
- Adds a unit test

* Updates `validate_and_commit_non_finalized()` to check for parent block in non-finalized state before checking rocksdb

* Fixes clippy lints

* Fixes bad test config

* Updates `raw_future_blocks()` to avoid caching a backup of its non-finalized state on disk

* Drops finalized block write sender when instantiating state service if the finalized tip height is above the max checkpoint height, or skips restoring non-finalized state from backup cache otherwise.

* Adds any blocks that were restored from the non-finalized backup cache to `SentHashes` when instantiating StateService

* updates test config

* Fixes a bug where the non-finalized state backup directory would not be created if the finalized tip is below the max checkpoint height

* Fixes a bug where Zebra would log the wrong initial state cache height when blocks are restored from the non-finalized state backup cache

* Merge remote-tracking branch 'origin/main' into non-final-blocks-backup

* Updates state service initialization to read the best tip in a blocking task

* Adds a note in the field docs for `should_backup_non_finalized_state` about rate limits

* Fixes a bug where the chain would stall when the finalized tip is past the max checkpoint hash and Zebra is attempting to restore blocks from the non-finalized backup cache, but commits no valid blocks to the initial non-finalized state and initializes the finalized block write sender as `None` such that `sent_hashes.can_fork_chain_at` always remains false.
…cashFoundation#9888)

* Moves `Network::checkpoint_list()` method from `zebra-consensus` to `zebra-chain`.

* Allows configuration of checkpoints on custom Testnets/Regtest

* - Updates stored configs to pass validation with empty checkpoints by default
- Adds stored config using the new `checkpoints` field
- Updates network config deserialization to restore previous behaviour where it would use the default funding streams if none were provided
- Updates a test to use the custom testnet without default checkpoints
- Fixes lints

* Adds an acceptance test for non-finalized state backups above and below the max checkpoint height

* Updates `restores_non_finalized_state_and_commits_new_blocks` to check that Zebra still syncs blocks when the finalized tip is past the max checkpoint height but the non-finalized state is initially empty.

* Python backup state tests (ZcashFoundation#9896)

* add `feature_backup_non_finalized_state.py`

* remove non-finalized state hack from wallet python test

* apply wait time fixes

* extend the test

* adds lockbox disbursements to regtest debug output

---------

Co-authored-by: Alfredo Garcia <[email protected]>
* rpc: add chainInfo support to getaddressutxos

* cleanup handling of calls with single/multi addresses support

* Apply suggestions from code review

Co-authored-by: Arya <[email protected]>

* Apply suggestions from code review

Co-authored-by: Arya <[email protected]>

* address comments

* return hash and height that matches response contents

* document changes, move height and hash into AddressUtxos

* use trait to get validate addresses

---------

Co-authored-by: Arya <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* chore: clippy fixes

* fix typo
…n#9883)

* feat: new CI

* refactor(ci)!: simplify CI and make it work on forks

BREAKING CHANGE: Docs now deploy to GitHub Pages instead of Firebase

We had a mess of patch files and external service dependencies that made
it impossible for contributors to run CI on their forks. This fixes that.

What changed:
- Deleted all 19 patch workflow files (2,900+ lines removed)
- Merged related workflows together for better maintainability
- Moved docs from Firebase to GitHub Pages
- Renamed ZFND workflows with `zfnd-` prefix for clarity and easy disabling
- Consolidated test workflows into test-crates, test-docker, tests-unit
- Added proper GitHub Pages deployment with both user and dev books

Security & quality improvements:
- Fixed workflow permissions across all files (minimal permissions by default)
- Fixed secret inheritance to use explicit secret passing
- Added `alls-green` checks to multi-job workflows for consistent CI validation
- Fixed security scanner warnings (zizmor compliance)
- Removed unused dependencies (tinyvec from 7 crates, jsonrpc from zebra-utils)
- Fixed Docker Scout permission issues for fork PRs

Test & coverage improvements:
- Fixed coverage workflow to use nextest
- Added dynamic timeouts for tests running under coverage instrumentation
- Improved Windows test compatibility

Now when someone forks the repo, CI just works without any extra setup after disabling all `zfnd-` prefixed workflows. All workflows are self-contained and don't depend on external services that fork users don't have access to.

* fix(deps): resolve cargo deny duplicate and unmatched skip warnings

- Added skip for windows-sys 0.60.2 to allow duplicate with 0.61.0
- Added base64 0.21.7 to skip-tree to handle multiple versions
- Removed unused skip entries for tonic, prost-types, quick-xml, and hashbrown
- Cleaned up comments for better clarity

---------

Co-authored-by: Conrado <[email protected]>
…tion#9912)

* fix(workflows): add missing permissions and protoc dependencies
…undation#9916)

* fix(ci): align alls-green checks with dependency conditions

- ensure integration success job mirrors fork/label gating
- skip deployment success on skipped deploys and ignore versioning
- gate cleanup/release success checks on owner-specific jobs
- allow reusable deployment check to skip create-state-image when absent

* fix: use correct and minimal permissions for secrets

* fix(ci): simplify cached disk mounts

- drop partition-specific container mount logic
- remove derived partition metadata and labels when capturing state disks
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
…on#9917)

* reduce default `crawl_new_peer_interval`

* remove reindex test

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
# Conflicts:
#	.github/workflows/sub-ci-unit-tests-docker.yml
Copilot AI review requested due to automatic review settings September 24, 2025 14:43
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This is an upstream sync pull request that brings in changes from the main branch dated 2025-09-24. The changes include significant updates to the Zcash ecosystem integration, state management improvements, and various bug fixes and enhancements.

  • Migrated from deprecated jubjub::Fq types to sapling_crypto types throughout the codebase
  • Added non-finalized state backup and restore functionality for improved crash recovery
  • Enhanced RPC functionality with new methods and improved parameter handling
  • Updated network configuration handling for regtest parameters

Reviewed Changes

Copilot reviewed 183 out of 190 changed files in this pull request and generated no comments.

Show a summary per file
File Description
zebra-state/src/service/non_finalized_state/backup.rs New backup system for non-finalized state with cache management
zebra-rpc/src/methods.rs Added getmempoolinfo RPC method and improved address parameter handling
zebra-chain/src/sapling/ Migrated from jubjub::Fq to sapling_crypto types for better compatibility
zebra-state/src/service.rs Async state initialization and backup integration
zebra-network/src/config.rs Enhanced testnet parameter configuration with checkpoints support
zebra-consensus/src/checkpoint/ Refactored checkpoint handling to use shared types from zebra-chain
Files not reviewed (2)
  • Cargo.lock: Language not supported
  • zebra-rpc/proto/generated/zebra.indexer.rpc.rs: Language not supported
Comments suppressed due to low confidence (6)

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Copy link
Member Author

aphelionz commented Sep 24, 2025

27 Jobs Failed:

Crosslink Tests / Crosslink Tests failed on "Run Crosslink tests with nextest"
[...]
       P  EXPECT_POW_BLOCK_FINALITY (022b456214f1f9e61f3179d03ddda8c1121758f951ad69ae347593bc651aefe3 => Some(Finalized))
       P  EXPECT_POW_BLOCK_FINALITY (049cb29e28e0384d45faf4b03c9bd751d849dbdb9cefb1963abcbee21594079d => Some(Finalized))
       P  EXPECT_POW_BLOCK_FINALITY (04bb7e2b39579c03d7fffd305cb20c322334e8defb9a1917ca94515d8a804007 => Some(Finalized))
       P  EXPECT_POW_BLOCK_FINALITY (02d430420d69cac8c173eb6b0dbed0b3bc3aea592f8b44dbcfe63bc898e906a2 => Some(Finalized))
       P  EXPECT_POW_BLOCK_FINALITY (067099ef090558ef999334f2e8d9dc0c1444c6dce1e43aa9d1fc931643285447 => Some(NotYetFinalized))
       P  EXPECT_POW_BLOCK_FINALITY (05cece8a06debcead1eb3e9f121b0042007f962fa975b2dd1501c8b6612c551b => Some(NotYetFinalized))
       P  EXPECT_POW_BLOCK_FINALITY (04cd46683cd0963a160feba912b58c5556ffc2c015f85f09a849ffae49b75dc8 => Some(NotYetFinalized))
       P  EXPECT_POW_BLOCK_FINALITY (036ba69a9531f8897089edc6d32b570ad589b17d55f1f26873a07321a9ce75f2 => Some(NotYetFinalized))

    (test aborted with signal 6: SIGABRT)

────────────
     Summary [   7.357s] 15 tests run: 10 passed, 5 failed, 900 skipped
     SIGABRT [   7.150s] zebrad::crosslink crosslink_expect_pos_height_after_push
     SIGABRT [   7.036s] zebrad::crosslink crosslink_push_example_pow_chain_again_should_not_change_the_pow_chain_length
     SIGABRT [   7.168s] zebrad::crosslink crosslink_push_example_pow_chain_each_block_twice
     SIGABRT [   3.925s] zebrad::crosslink crosslink_push_example_pow_chain_only
     SIGABRT [   4.087s] zebrad::crosslink crosslink_test_basic_finality
error: test run failed
Error: Process completed with exit code 100.

26 jobs failed running on non-Blacksmith runners.


Summary: 3 successful workflows, 5 failed workflows

Last updated: 2025-09-25 01:15:33 UTC

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.

10 participants