From 1e5e875f358983e68053ce146a6bc6ebd7522da2 Mon Sep 17 00:00:00 2001 From: Quantum Explorer Date: Tue, 8 Sep 2026 17:26:23 +0700 Subject: [PATCH 1/2] build!: adopt GroveDB bincode across the workspace --- CHANGELOG.md | 10 ++++++++++ Cargo.toml | 4 ++++ dash-network/Cargo.toml | 4 ++-- dash/Cargo.toml | 6 +++--- hashes/Cargo.toml | 2 +- key-wallet-manager/Cargo.toml | 2 +- key-wallet/Cargo.toml | 4 ++-- rpc-json/Cargo.toml | 2 +- 8 files changed, 24 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9dd317ca..718ccf81a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). +## Unreleased + +### Changed + +- **Breaking:** the `bincode` feature and binary serialization dependencies now use + `grovedb-bincode` 2.0.2 and its derive macros, sharing the same pinned GroveDB + revision as Platform. Existing bincode encodings and C interfaces are unchanged, + but Rust consumers must use the fork for compatible `Encode`/`Decode` traits. + The dependency switch does not automatically opt types into `DecodeUntrusted`. + ## 0.44.0 - 2026-07-01 ### Added diff --git a/Cargo.toml b/Cargo.toml index 63049fbea..7e7b31929 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,10 @@ members = ["dash", "dash-network", "hashes", "internals", "fuzz", "rpc-client", "rpc-json", "rpc-integration-test", "key-wallet", "key-wallet-manager", "key-wallet-ffi", "dash-spv", "dash-spv-ffi", "git-state", "dash-network-seeds", "masternode-seeds-fetcher", "dash-spv-bench"] resolver = "2" +[workspace.dependencies] +bincode = { package = "grovedb-bincode", git = "https://github.com/dashpay/grovedb", rev = "2b9c7ba9a794bfab1a03fa1d0b3f5496b63175ae" } +bincode_derive = { package = "grovedb-bincode-derive", git = "https://github.com/dashpay/grovedb", rev = "2b9c7ba9a794bfab1a03fa1d0b3f5496b63175ae" } + [workspace.package] version = "0.45.0" diff --git a/dash-network/Cargo.toml b/dash-network/Cargo.toml index e8c5fa407..9aeaea805 100644 --- a/dash-network/Cargo.toml +++ b/dash-network/Cargo.toml @@ -22,8 +22,8 @@ ffi = [] [dependencies] serde = { version = "1.0.219", default-features = false, features = ["derive"], optional = true } -bincode = { version = "2.0.1", optional = true } -bincode_derive = { version = "2.0.1", optional = true } +bincode = { workspace = true, optional = true } +bincode_derive = { workspace = true, optional = true } [build-dependencies] cbindgen = "0.29" diff --git a/dash/Cargo.toml b/dash/Cargo.toml index b830df1ee..ddc36f343 100644 --- a/dash/Cargo.toml +++ b/dash/Cargo.toml @@ -54,8 +54,8 @@ bitcoinconsensus = { version = "0.20.2-0.5.0", default-features = false, optiona hex_lit = "0.1.1" anyhow = { version= "1.0" } hex = { version= "0.4" } -bincode = { version = "2.0.1", optional = true } -bincode_derive = { version = "2.0.1", optional = true } +bincode = { workspace = true, optional = true } +bincode_derive = { workspace = true, optional = true } blsful = { git = "https://github.com/dashpay/agora-blsful", rev = "0c34a7a488a0bd1c9a9a2196e793b303ad35c900", optional = true } ed25519-dalek = { version = "2.1", features = ["rand_core"], optional = true } blake3 = "1.8.1" @@ -68,7 +68,7 @@ serde_json = "1.0.140" serde_test = "1.0.177" serde_derive = "1.0.219" secp256k1 = { features = [ "recovery", "rand", "hashes" ], version="0.30.0" } -bincode = { version = "2.0.1", features = ["serde"] } +bincode = { workspace = true, features = ["serde"] } assert_matches = "1.5.0" dashcore = { path = ".", features = ["core-block-hash-use-x11", "message_verification", "quorum_validation", "signer"] } criterion = "0.5" diff --git a/hashes/Cargo.toml b/hashes/Cargo.toml index 927b6fa1c..4be7636f5 100644 --- a/hashes/Cargo.toml +++ b/hashes/Cargo.toml @@ -31,7 +31,7 @@ serde = { version = "1.0.219", default-features = false, optional = true } actual-schemars = { package = "schemars", version = "1.0", optional = true } rs-x11-hash = { version = "0.1.8", optional = true } -bincode = { version = "2.0.1", optional = true } +bincode = { workspace = true, optional = true } [dev-dependencies] serde_test = "1.0" diff --git a/key-wallet-manager/Cargo.toml b/key-wallet-manager/Cargo.toml index f733fffe7..fdc1df3f9 100644 --- a/key-wallet-manager/Cargo.toml +++ b/key-wallet-manager/Cargo.toml @@ -36,7 +36,7 @@ tokio = { version = "1", features = ["macros", "rt", "sync"] } tracing = "0.1" zeroize = { version = "1.8", features = ["derive"] } rayon = { version = "1.11", optional = true } -bincode = { version = "2.0.1", optional = true } +bincode = { workspace = true, optional = true } serde = { version = "1.0", default-features = false, features = ["derive"], optional = true } [dev-dependencies] diff --git a/key-wallet/Cargo.toml b/key-wallet/Cargo.toml index ca4598a91..7342ef093 100644 --- a/key-wallet/Cargo.toml +++ b/key-wallet/Cargo.toml @@ -48,8 +48,8 @@ sha2 = { version = "0.10", default-features = false } bs58 = { version = "0.5", default-features = false, features = ["check", "alloc"], optional = true } rand = { version = "0.8", default-features = false, features = ["std", "std_rng"], optional = true } # Serialization -bincode = { version = "2.0.1", optional = true } -bincode_derive = { version = "2.0.1", optional = true } +bincode = { workspace = true, optional = true } +bincode_derive = { workspace = true, optional = true } base64 = { version = "0.22", optional = true } serde_json = { version = "1.0", optional = true } hex = { version = "0.4"} diff --git a/rpc-json/Cargo.toml b/rpc-json/Cargo.toml index ca35aa161..693da1b38 100644 --- a/rpc-json/Cargo.toml +++ b/rpc-json/Cargo.toml @@ -28,4 +28,4 @@ hex = { version="0.4", features=["serde"]} key-wallet = { path = "../key-wallet", default-features = false, features=["serde", "getrandom"] } dashcore = { path = "../dash", features=["secp-recovery", "rand-std", "signer", "serde"] } -bincode = { version = "2.0.1", features = ["serde"] } +bincode = { workspace = true, features = ["serde"] } From 5983e62fa5f6625908564a5f60da97094ecc9355 Mon Sep 17 00:00:00 2001 From: Quantum Explorer Date: Tue, 8 Sep 2026 23:51:54 +0700 Subject: [PATCH 2/2] build: use published bincode 2.1.0 crates --- CHANGELOG.md | 6 +++--- Cargo.toml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 718ccf81a..fd501d27d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,9 +9,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ### Changed - **Breaking:** the `bincode` feature and binary serialization dependencies now use - `grovedb-bincode` 2.0.2 and its derive macros, sharing the same pinned GroveDB - revision as Platform. Existing bincode encodings and C interfaces are unchanged, - but Rust consumers must use the fork for compatible `Encode`/`Decode` traits. + `grovedb-bincode` 2.1.0 and its derive macros from crates.io, sharing the same + serialization traits as Platform. Existing bincode encodings and C interfaces + are unchanged, but Rust consumers must use the fork for compatible `Encode`/`Decode` traits. The dependency switch does not automatically opt types into `DecodeUntrusted`. ## 0.44.0 - 2026-07-01 diff --git a/Cargo.toml b/Cargo.toml index 7e7b31929..83db5f348 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,8 +3,8 @@ members = ["dash", "dash-network", "hashes", "internals", "fuzz", "rpc-client", resolver = "2" [workspace.dependencies] -bincode = { package = "grovedb-bincode", git = "https://github.com/dashpay/grovedb", rev = "2b9c7ba9a794bfab1a03fa1d0b3f5496b63175ae" } -bincode_derive = { package = "grovedb-bincode-derive", git = "https://github.com/dashpay/grovedb", rev = "2b9c7ba9a794bfab1a03fa1d0b3f5496b63175ae" } +bincode = { package = "grovedb-bincode", version = "=2.1.0" } +bincode_derive = { package = "grovedb-bincode-derive", version = "=2.1.0" } [workspace.package] version = "0.45.0"