Skip to content

build: update rocksdb to 0.24 - #10922

Merged
gustavovalverde merged 2 commits into
mainfrom
update-rocksdb-0.24
Jul 10, 2026
Merged

build: update rocksdb to 0.24#10922
gustavovalverde merged 2 commits into
mainfrom
update-rocksdb-0.24

Conversation

@conradoplg

@conradoplg conradoplg commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Motivation

Closes #10904
Closes #10024

See issue for rationale and analysis

Solution

Tests

Specifications & References

Follow-up Work

AI Disclosure

  • No AI tools were used in this PR
  • AI tools were used:

PR Checklist

  • The PR title follows conventional commits format: type(scope): description
  • The PR follows the contribution guidelines.
  • This change was discussed in an issue or with the team beforehand.
  • The solution is tested.
  • The documentation and changelogs are up to date.

Copilot AI left a comment

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.

Pull request overview

This PR updates the rocksdb dependency from 0.22 to 0.24, which brings the bundled librocksdb-sys from 0.16.0+8.10.0 to 0.17.3+10.4.2 (i.e. the vendored RocksDB C++ library jumps from 8.10.0 to 10.4.2). It addresses issue #10904 (Zebra was pinned to an old RocksDB) and is expected to help with #10024. The change is confined to dependency metadata; there are no source-code changes, and existing rocksdb::* API usage in zebra-state appears compatible.

Changes:

  • Bump rocksdb workspace dependency to 0.24 in Cargo.toml.
  • Regenerate Cargo.lock: librocksdb-sys0.17.3+10.4.2, rocksdb0.24.0, deduplicate bindgen to 0.72.1, collapse rustc-hash to a single 2.1.2, and drop now-unused bindgen 0.69.5, itertools 0.12.1, lazycell, and rustc-hash 1.1.0.

Risk scan / notes (for human reviewer):

  • State/consensus layer risk: This bumps the database engine backing zebra-state across a major RocksDB version (8.10 → 10.4). On-disk format compatibility, default table/format behavior, and migration considerations should be validated on a real synced database, not just a fresh one.
  • Supply-chain / CI completeness (blocking): The cargo vet check exemptions in supply-chain/config.toml still pin the old rocksdb 0.22.0 and librocksdb-sys 0.16.0+8.10.0, and deny.toml still carries a stale bindgen =0.69.5 skip-tree entry. These need updating (see inline comment).
  • MSRV: Confirm rocksdb 0.24/librocksdb-sys 0.17.3 still build under the workspace MSRV (1.85.1) used by zebra-state.

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated 1 comment.

File Description
Cargo.toml Bumps the workspace rocksdb dependency from 0.22 to 0.24.
Cargo.lock Regenerated lockfile: updated rocksdb/librocksdb-sys versions and pruned transitively-removed crates (bindgen 0.69.5, itertools 0.12.1, lazycell, rustc-hash 1.1.0).

Comment thread Cargo.toml

Copilot AI left a comment

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.

Pull request overview

Copilot reviewed 5 out of 7 changed files in this pull request and generated no new comments.

Copilot AI left a comment

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.

Pull request overview

Copilot reviewed 6 out of 8 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings July 10, 2026 08:48

Copilot AI left a comment

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.

Pull request overview

Copilot reviewed 6 out of 8 changed files in this pull request and generated 2 comments.

Comment thread .github/actions/setup-zebra-build/action.yml
Comment thread Cargo.toml
@gustavovalverde

Copy link
Copy Markdown
Member

Admin merging as I had to rebase and last pusher can't approve

@gustavovalverde
gustavovalverde merged commit 0c30c9c into main Jul 10, 2026
152 checks passed
@gustavovalverde
gustavovalverde deleted the update-rocksdb-0.24 branch July 10, 2026 09:35
ebfull added a commit to zakura-core/zakura that referenced this pull request Jul 30, 2026
* build: update rocksdb to 0.24 and bump zakura-state to 6.0.0

Ports ZcashFoundation/zebra#10922. RocksDB 8.10.0 (bundled by rocksdb
0.22) is missing #include <cstdint> in several public headers, which
fails to compile under GCC 15/16; RocksDB 10.4.2 (rocksdb 0.24) has the
upstream fixes, removing the CXXFLAGS="-include cstdint" workaround
from the Arch Linux build instructions.

librocksdb-sys 0.17 always runs bindgen, so libclang is now a build
dependency even when linking a system RocksDB via ROCKSDB_LIB_DIR; the
Ubuntu CI setup action installs it explicitly.

rocksdb types appear in zakura-state's public API, so the dependency
major bump is a semver-major change: zakura-state 5.0.1 -> 6.0.0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs(changelog): add fragment for rocksdb 0.24 update

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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.

update rocksdb Zebra error on Pi

3 participants