From 3a5d74e22808b2a5a2be60568997f05368fd41e6 Mon Sep 17 00:00:00 2001 From: Branislav Kontur Date: Mon, 24 Nov 2025 15:10:21 +0100 Subject: [PATCH 01/16] Allow Bitswap CIDs with Blake2b256, Sha2_256 and Keccak256 hashing --- .gitignore | 1 + Cargo.lock | 20 ++++++++++++ Cargo.toml | 2 +- src/protocol/libp2p/bitswap/mod.rs | 52 +++++++++++++++++++++++++++--- 4 files changed, 69 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index ea8c4bf7..3a8cabc9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /target +.idea diff --git a/Cargo.lock b/Cargo.lock index 4c48f584..ead15298 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1423,6 +1423,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -2082,6 +2091,7 @@ dependencies = [ "multihash-derive", "serde", "sha2", + "sha3", "unsigned-varint 0.7.2", ] @@ -3336,6 +3346,16 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + [[package]] name = "sharded-slab" version = "0.1.7" diff --git a/Cargo.toml b/Cargo.toml index 2bdeecbd..3ce95e51 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,7 +25,7 @@ indexmap = { version = "2.9.0", features = ["std"] } libc = "0.2.158" mockall = "0.13.1" multiaddr = "0.17.0" -multihash = { version = "0.17.0", default-features = false, features = ["std", "multihash-impl", "identity", "sha2", "blake2b"] } +multihash = { version = "0.17.0", default-features = false, features = ["std", "multihash-impl", "identity", "sha2", "sha3", "blake2b"] } network-interface = "2.0.1" parking_lot = "0.12.3" pin-project = "1.1.10" diff --git a/src/protocol/libp2p/bitswap/mod.rs b/src/protocol/libp2p/bitswap/mod.rs index 6c326cda..d9ce02a8 100644 --- a/src/protocol/libp2p/bitswap/mod.rs +++ b/src/protocol/libp2p/bitswap/mod.rs @@ -164,13 +164,55 @@ impl Bitswap { let want_type = match entry.want_type { 0 => WantType::Block, 1 => WantType::Have, - _ => return None, + _ => { + tracing::warn!( + target: LOG_TARGET, + "Unhandled `WantList` type: {}", + entry.want_type + ); + return None; + } }; - (cid.version() == cid::Version::V1 - && cid.hash().code() == u64::from(Code::Blake2b256) - && cid.hash().size() == 32) - .then_some((cid, want_type)) + // Check supported CID versions. + match cid.version() { + Version::V0 => { + tracing::warn!( + target: LOG_TARGET, + "Unsupported CID version {:?} for cid=: {cid}", + cid.version() + ); + return None; + } + Version::V1 => (/* Ok */), + } + + // Check supported multihash length (only 32). + let size = cid.hash().size(); + if size != 32 { + tracing::warn!( + target: LOG_TARGET, + "Unsupported multihash size: {size} for cid: {cid}, supports only 32!" + ); + return None; + } + + // Check supported multihash a.k.a. hashing algorithm. + let code = cid.hash().code(); + if code != u64::from(Code::Blake2b256) + && code != u64::from(Code::Sha2_256) + && code != u64::from(Code::Keccak256) + { + tracing::warn!( + target: LOG_TARGET, + "Unsupported multihash algorithm: {code} for cid: {cid}, \ + supports only Blake2b256, Sha2_256 and Keccak256!" + ); + return None; + } + + // All checks passed, pass the cid. + Some((cid, want_type)) }) .collect::>(); From 373c12593b1f27b50a2f19ecc86bee721ce82ded Mon Sep 17 00:00:00 2001 From: ndk Date: Tue, 25 Nov 2025 04:53:06 +0100 Subject: [PATCH 02/16] supported CID version is verified with if let, also downgraded logs --- src/protocol/libp2p/bitswap/mod.rs | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/protocol/libp2p/bitswap/mod.rs b/src/protocol/libp2p/bitswap/mod.rs index d9ce02a8..0d5770c9 100644 --- a/src/protocol/libp2p/bitswap/mod.rs +++ b/src/protocol/libp2p/bitswap/mod.rs @@ -165,7 +165,7 @@ impl Bitswap { 0 => WantType::Block, 1 => WantType::Have, _ => { - tracing::warn!( + tracing::debug!( target: LOG_TARGET, "Unhandled `WantList` type: {}", entry.want_type @@ -175,16 +175,13 @@ impl Bitswap { }; // Check supported CID versions. - match cid.version() { - Version::V0 => { - tracing::warn!( - target: LOG_TARGET, - "Unsupported CID version {:?} for cid=: {cid}", - cid.version() - ); - return None; - } - Version::V1 => (/* Ok */), + if let Version::V0 = cid.version() { + tracing::warn!( + target: LOG_TARGET, + "Unsupported CID version {:?} for cid=: {cid}", + cid.version() + ); + return None; } // Check supported multihash length (only 32). From f693e82502389b2aeef9eb3418be640a7f8a30c9 Mon Sep 17 00:00:00 2001 From: ndk Date: Tue, 25 Nov 2025 05:11:51 +0100 Subject: [PATCH 03/16] added supported_hash_codes to bitswap config, improved checking supported multihashes --- src/protocol/libp2p/bitswap/config.rs | 27 +++++++++++++++++++++++++++ src/protocol/libp2p/bitswap/mod.rs | 13 ++++++------- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/src/protocol/libp2p/bitswap/config.rs b/src/protocol/libp2p/bitswap/config.rs index 55e86e4a..1bd59620 100644 --- a/src/protocol/libp2p/bitswap/config.rs +++ b/src/protocol/libp2p/bitswap/config.rs @@ -47,6 +47,9 @@ pub struct Config { /// RX channel for receiving commands from the user. pub(super) cmd_rx: Receiver, + + /// Supported multihash codes for CID validation. + pub(super) supported_hash_codes: std::collections::HashSet, } impl Config { @@ -61,8 +64,32 @@ impl Config { event_tx, protocol: ProtocolName::from(PROTOCOL_NAME), codec: ProtocolCodec::UnsignedVarint(Some(MAX_PAYLOAD_SIZE)), + supported_hash_codes: default_hash_codes(), }, BitswapHandle::new(event_rx, cmd_tx), ) } + + /// Set supported multihash codes for bitswap CID validation. + /// # Example + /// + /// ```rust + /// let (config, handle) = Config::new() + /// .with_supported_hash_codes([Code::Blake2b256, Code::Sha2_256]); + /// ``` + pub fn with_supported_hash_codes(mut self, codes: impl IntoIterator) -> Self { + self.supported_hash_codes = codes.into_iter().map(u64::from).collect(); + self + } +} + +/// Default set of supported hash codes. +fn default_hash_codes() -> std::collections::HashSet { + [ + u64::from(multihash::Code::Blake2b256), + u64::from(multihash::Code::Sha2_256), + u64::from(multihash::Code::Keccak256), + ] + .into_iter() + .collect() } diff --git a/src/protocol/libp2p/bitswap/mod.rs b/src/protocol/libp2p/bitswap/mod.rs index 0d5770c9..eeb5310b 100644 --- a/src/protocol/libp2p/bitswap/mod.rs +++ b/src/protocol/libp2p/bitswap/mod.rs @@ -29,7 +29,6 @@ use crate::{ }; use cid::Version; -use multihash::Code; use prost::Message; use tokio::sync::mpsc::{Receiver, Sender}; use tokio_stream::{StreamExt, StreamMap}; @@ -112,6 +111,9 @@ pub(crate) struct Bitswap { /// Inbound substreams. inbound: StreamMap, + + /// Supported multihash codes for CID validation. + supported_hash_codes: std::collections::HashSet, } impl Bitswap { @@ -121,6 +123,7 @@ impl Bitswap { service, cmd_rx: config.cmd_rx, event_tx: config.event_tx, + supported_hash_codes: config.supported_hash_codes, pending_outbound: HashMap::new(), inbound: StreamMap::new(), } @@ -196,14 +199,10 @@ impl Bitswap { // Check supported multihash a.k.a. hashing algorithm. let code = cid.hash().code(); - if code != u64::from(Code::Blake2b256) - && code != u64::from(Code::Sha2_256) - && code != u64::from(Code::Keccak256) - { + if !self.supported_hash_codes.contains(&code) { tracing::warn!( target: LOG_TARGET, - "Unsupported multihash algorithm: {code} for cid: {cid}, \ - supports only Blake2b256, Sha2_256 and Keccak256!" + "Unsupported multihash code: {code} for cid: {cid}" ); return None; } From 5d4f429d57eb1514ca2e411bd956a5ba40df6243 Mon Sep 17 00:00:00 2001 From: ndk Date: Tue, 25 Nov 2025 05:17:29 +0100 Subject: [PATCH 04/16] fmt --- src/protocol/libp2p/bitswap/config.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/protocol/libp2p/bitswap/config.rs b/src/protocol/libp2p/bitswap/config.rs index 1bd59620..85b8cb02 100644 --- a/src/protocol/libp2p/bitswap/config.rs +++ b/src/protocol/libp2p/bitswap/config.rs @@ -77,7 +77,10 @@ impl Config { /// let (config, handle) = Config::new() /// .with_supported_hash_codes([Code::Blake2b256, Code::Sha2_256]); /// ``` - pub fn with_supported_hash_codes(mut self, codes: impl IntoIterator) -> Self { + pub fn with_supported_hash_codes( + mut self, + codes: impl IntoIterator, + ) -> Self { self.supported_hash_codes = codes.into_iter().map(u64::from).collect(); self } From 9a2309feef1bf3f1d6a941482e7f246cc01ff0ec Mon Sep 17 00:00:00 2001 From: ndk Date: Tue, 25 Nov 2025 05:30:35 +0100 Subject: [PATCH 05/16] extended hashset: --- src/protocol/libp2p/bitswap/config.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/protocol/libp2p/bitswap/config.rs b/src/protocol/libp2p/bitswap/config.rs index 85b8cb02..43ed6701 100644 --- a/src/protocol/libp2p/bitswap/config.rs +++ b/src/protocol/libp2p/bitswap/config.rs @@ -81,7 +81,7 @@ impl Config { mut self, codes: impl IntoIterator, ) -> Self { - self.supported_hash_codes = codes.into_iter().map(u64::from).collect(); + self.supported_hash_codes.extend(codes.into_iter().map(u64::from)); self } } From 892c32c586ad9e97c45243bdca312fa13c3031ef Mon Sep 17 00:00:00 2001 From: Branislav Kontur Date: Tue, 25 Nov 2025 09:22:56 +0100 Subject: [PATCH 06/16] Update src/protocol/libp2p/bitswap/config.rs --- src/protocol/libp2p/bitswap/config.rs | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/protocol/libp2p/bitswap/config.rs b/src/protocol/libp2p/bitswap/config.rs index 43ed6701..3767530b 100644 --- a/src/protocol/libp2p/bitswap/config.rs +++ b/src/protocol/libp2p/bitswap/config.rs @@ -85,14 +85,3 @@ impl Config { self } } - -/// Default set of supported hash codes. -fn default_hash_codes() -> std::collections::HashSet { - [ - u64::from(multihash::Code::Blake2b256), - u64::from(multihash::Code::Sha2_256), - u64::from(multihash::Code::Keccak256), - ] - .into_iter() - .collect() -} From 768c784effd2f66b63d56ba014738a11c6c6ddcb Mon Sep 17 00:00:00 2001 From: Branislav Kontur Date: Tue, 25 Nov 2025 09:23:06 +0100 Subject: [PATCH 07/16] Update src/protocol/libp2p/bitswap/config.rs --- src/protocol/libp2p/bitswap/config.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/protocol/libp2p/bitswap/config.rs b/src/protocol/libp2p/bitswap/config.rs index 3767530b..5fa3b3ef 100644 --- a/src/protocol/libp2p/bitswap/config.rs +++ b/src/protocol/libp2p/bitswap/config.rs @@ -64,7 +64,7 @@ impl Config { event_tx, protocol: ProtocolName::from(PROTOCOL_NAME), codec: ProtocolCodec::UnsignedVarint(Some(MAX_PAYLOAD_SIZE)), - supported_hash_codes: default_hash_codes(), + supported_hash_codes: std::collections::HashSet::from([u64::from(multihash::Code::Blake2b256)]); }, BitswapHandle::new(event_rx, cmd_tx), ) From 6988e7709de870abe8a1ad35fadb0cab0eef6f41 Mon Sep 17 00:00:00 2001 From: Branislav Kontur Date: Tue, 25 Nov 2025 09:39:40 +0100 Subject: [PATCH 08/16] Apply suggestions from code review --- src/protocol/libp2p/bitswap/mod.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/protocol/libp2p/bitswap/mod.rs b/src/protocol/libp2p/bitswap/mod.rs index eeb5310b..162d4f55 100644 --- a/src/protocol/libp2p/bitswap/mod.rs +++ b/src/protocol/libp2p/bitswap/mod.rs @@ -179,7 +179,7 @@ impl Bitswap { // Check supported CID versions. if let Version::V0 = cid.version() { - tracing::warn!( + tracing::trace!( target: LOG_TARGET, "Unsupported CID version {:?} for cid=: {cid}", cid.version() @@ -190,7 +190,7 @@ impl Bitswap { // Check supported multihash length (only 32). let size = cid.hash().size(); if size != 32 { - tracing::warn!( + tracing::debug!( target: LOG_TARGET, "Unsupported multihash size: {size} for cid: {cid}, supports only 32!" ); @@ -200,7 +200,7 @@ impl Bitswap { // Check supported multihash a.k.a. hashing algorithm. let code = cid.hash().code(); if !self.supported_hash_codes.contains(&code) { - tracing::warn!( + tracing::debug!( target: LOG_TARGET, "Unsupported multihash code: {code} for cid: {cid}" ); From 87e1e14599e7d81c6559ca920ace0a979a751ad9 Mon Sep 17 00:00:00 2001 From: ndk Date: Tue, 25 Nov 2025 11:57:48 +0100 Subject: [PATCH 09/16] reverted all files --- .gitignore | 1 - Cargo.lock | 20 ----------- Cargo.toml | 2 +- src/protocol/libp2p/bitswap/config.rs | 19 ---------- src/protocol/libp2p/bitswap/mod.rs | 50 ++++----------------------- 5 files changed, 7 insertions(+), 85 deletions(-) diff --git a/.gitignore b/.gitignore index 3a8cabc9..ea8c4bf7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ /target -.idea diff --git a/Cargo.lock b/Cargo.lock index ead15298..4c48f584 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1423,15 +1423,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -2091,7 +2082,6 @@ dependencies = [ "multihash-derive", "serde", "sha2", - "sha3", "unsigned-varint 0.7.2", ] @@ -3346,16 +3336,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.7", - "keccak", -] - [[package]] name = "sharded-slab" version = "0.1.7" diff --git a/Cargo.toml b/Cargo.toml index 3ce95e51..2bdeecbd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,7 +25,7 @@ indexmap = { version = "2.9.0", features = ["std"] } libc = "0.2.158" mockall = "0.13.1" multiaddr = "0.17.0" -multihash = { version = "0.17.0", default-features = false, features = ["std", "multihash-impl", "identity", "sha2", "sha3", "blake2b"] } +multihash = { version = "0.17.0", default-features = false, features = ["std", "multihash-impl", "identity", "sha2", "blake2b"] } network-interface = "2.0.1" parking_lot = "0.12.3" pin-project = "1.1.10" diff --git a/src/protocol/libp2p/bitswap/config.rs b/src/protocol/libp2p/bitswap/config.rs index 5fa3b3ef..55e86e4a 100644 --- a/src/protocol/libp2p/bitswap/config.rs +++ b/src/protocol/libp2p/bitswap/config.rs @@ -47,9 +47,6 @@ pub struct Config { /// RX channel for receiving commands from the user. pub(super) cmd_rx: Receiver, - - /// Supported multihash codes for CID validation. - pub(super) supported_hash_codes: std::collections::HashSet, } impl Config { @@ -64,24 +61,8 @@ impl Config { event_tx, protocol: ProtocolName::from(PROTOCOL_NAME), codec: ProtocolCodec::UnsignedVarint(Some(MAX_PAYLOAD_SIZE)), - supported_hash_codes: std::collections::HashSet::from([u64::from(multihash::Code::Blake2b256)]); }, BitswapHandle::new(event_rx, cmd_tx), ) } - - /// Set supported multihash codes for bitswap CID validation. - /// # Example - /// - /// ```rust - /// let (config, handle) = Config::new() - /// .with_supported_hash_codes([Code::Blake2b256, Code::Sha2_256]); - /// ``` - pub fn with_supported_hash_codes( - mut self, - codes: impl IntoIterator, - ) -> Self { - self.supported_hash_codes.extend(codes.into_iter().map(u64::from)); - self - } } diff --git a/src/protocol/libp2p/bitswap/mod.rs b/src/protocol/libp2p/bitswap/mod.rs index 162d4f55..6c326cda 100644 --- a/src/protocol/libp2p/bitswap/mod.rs +++ b/src/protocol/libp2p/bitswap/mod.rs @@ -29,6 +29,7 @@ use crate::{ }; use cid::Version; +use multihash::Code; use prost::Message; use tokio::sync::mpsc::{Receiver, Sender}; use tokio_stream::{StreamExt, StreamMap}; @@ -111,9 +112,6 @@ pub(crate) struct Bitswap { /// Inbound substreams. inbound: StreamMap, - - /// Supported multihash codes for CID validation. - supported_hash_codes: std::collections::HashSet, } impl Bitswap { @@ -123,7 +121,6 @@ impl Bitswap { service, cmd_rx: config.cmd_rx, event_tx: config.event_tx, - supported_hash_codes: config.supported_hash_codes, pending_outbound: HashMap::new(), inbound: StreamMap::new(), } @@ -167,48 +164,13 @@ impl Bitswap { let want_type = match entry.want_type { 0 => WantType::Block, 1 => WantType::Have, - _ => { - tracing::debug!( - target: LOG_TARGET, - "Unhandled `WantList` type: {}", - entry.want_type - ); - return None; - } + _ => return None, }; - // Check supported CID versions. - if let Version::V0 = cid.version() { - tracing::trace!( - target: LOG_TARGET, - "Unsupported CID version {:?} for cid=: {cid}", - cid.version() - ); - return None; - } - - // Check supported multihash length (only 32). - let size = cid.hash().size(); - if size != 32 { - tracing::debug!( - target: LOG_TARGET, - "Unsupported multihash size: {size} for cid: {cid}, supports only 32!" - ); - return None; - } - - // Check supported multihash a.k.a. hashing algorithm. - let code = cid.hash().code(); - if !self.supported_hash_codes.contains(&code) { - tracing::debug!( - target: LOG_TARGET, - "Unsupported multihash code: {code} for cid: {cid}" - ); - return None; - } - - // All checks passed, pass the cid. - Some((cid, want_type)) + (cid.version() == cid::Version::V1 + && cid.hash().code() == u64::from(Code::Blake2b256) + && cid.hash().size() == 32) + .then_some((cid, want_type)) }) .collect::>(); From da93ece5a4f634376fd896dfa1e1aee8eba5fb2d Mon Sep 17 00:00:00 2001 From: ndk Date: Tue, 25 Nov 2025 11:59:57 +0100 Subject: [PATCH 10/16] removed CID filtering - will be implemented in SDK --- src/protocol/libp2p/bitswap/mod.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/protocol/libp2p/bitswap/mod.rs b/src/protocol/libp2p/bitswap/mod.rs index 6c326cda..b4fe261d 100644 --- a/src/protocol/libp2p/bitswap/mod.rs +++ b/src/protocol/libp2p/bitswap/mod.rs @@ -167,10 +167,7 @@ impl Bitswap { _ => return None, }; - (cid.version() == cid::Version::V1 - && cid.hash().code() == u64::from(Code::Blake2b256) - && cid.hash().size() == 32) - .then_some((cid, want_type)) + Some((cid, want_type)) }) .collect::>(); From 539bea93078b8bf684a4c0aea27bd049d5f216f4 Mon Sep 17 00:00:00 2001 From: ndk Date: Tue, 25 Nov 2025 12:09:18 +0100 Subject: [PATCH 11/16] removed import --- src/protocol/libp2p/bitswap/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/protocol/libp2p/bitswap/mod.rs b/src/protocol/libp2p/bitswap/mod.rs index b4fe261d..65b9b461 100644 --- a/src/protocol/libp2p/bitswap/mod.rs +++ b/src/protocol/libp2p/bitswap/mod.rs @@ -29,7 +29,6 @@ use crate::{ }; use cid::Version; -use multihash::Code; use prost::Message; use tokio::sync::mpsc::{Receiver, Sender}; use tokio_stream::{StreamExt, StreamMap}; From 339d1f9c7398cc16de3f8eedf01abca07aef3ed1 Mon Sep 17 00:00:00 2001 From: ndk Date: Tue, 25 Nov 2025 12:18:44 +0100 Subject: [PATCH 12/16] reverted import as MultihashCode --- src/protocol/libp2p/bitswap/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/protocol/libp2p/bitswap/mod.rs b/src/protocol/libp2p/bitswap/mod.rs index 65b9b461..a7f1f23e 100644 --- a/src/protocol/libp2p/bitswap/mod.rs +++ b/src/protocol/libp2p/bitswap/mod.rs @@ -30,6 +30,7 @@ use crate::{ use cid::Version; use prost::Message; +pub use multihash::Code as MultihashCode; use tokio::sync::mpsc::{Receiver, Sender}; use tokio_stream::{StreamExt, StreamMap}; From c3b8decf53cf9b6764b789e0cfb49fa42d5bf2f2 Mon Sep 17 00:00:00 2001 From: ndk Date: Tue, 25 Nov 2025 12:19:14 +0100 Subject: [PATCH 13/16] order --- src/protocol/libp2p/bitswap/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/protocol/libp2p/bitswap/mod.rs b/src/protocol/libp2p/bitswap/mod.rs index a7f1f23e..14ce3ed6 100644 --- a/src/protocol/libp2p/bitswap/mod.rs +++ b/src/protocol/libp2p/bitswap/mod.rs @@ -29,8 +29,8 @@ use crate::{ }; use cid::Version; -use prost::Message; pub use multihash::Code as MultihashCode; +use prost::Message; use tokio::sync::mpsc::{Receiver, Sender}; use tokio_stream::{StreamExt, StreamMap}; From 6cf8406819a7c710466d3f734f3516bb7a1ca622 Mon Sep 17 00:00:00 2001 From: Branislav Kontur Date: Tue, 25 Nov 2025 12:37:42 +0100 Subject: [PATCH 14/16] Update src/protocol/libp2p/bitswap/mod.rs --- src/protocol/libp2p/bitswap/mod.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/protocol/libp2p/bitswap/mod.rs b/src/protocol/libp2p/bitswap/mod.rs index 14ce3ed6..2b00c00a 100644 --- a/src/protocol/libp2p/bitswap/mod.rs +++ b/src/protocol/libp2p/bitswap/mod.rs @@ -164,7 +164,14 @@ impl Bitswap { let want_type = match entry.want_type { 0 => WantType::Block, 1 => WantType::Have, - _ => return None, + _ => { + tracing::debug!( + target: LOG_TARGET, + "Unhandled `WantList` type: {}", + entry.want_type + ); + return None; + } }; Some((cid, want_type)) From 22e2fd8b7a5bf12d8a0bd61a954e7f3c8d9ea76f Mon Sep 17 00:00:00 2001 From: Branislav Kontur Date: Tue, 25 Nov 2025 14:10:07 +0100 Subject: [PATCH 15/16] Update src/protocol/libp2p/bitswap/mod.rs Co-authored-by: Dmitry Markin --- src/protocol/libp2p/bitswap/mod.rs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/protocol/libp2p/bitswap/mod.rs b/src/protocol/libp2p/bitswap/mod.rs index 2b00c00a..14ce3ed6 100644 --- a/src/protocol/libp2p/bitswap/mod.rs +++ b/src/protocol/libp2p/bitswap/mod.rs @@ -164,14 +164,7 @@ impl Bitswap { let want_type = match entry.want_type { 0 => WantType::Block, 1 => WantType::Have, - _ => { - tracing::debug!( - target: LOG_TARGET, - "Unhandled `WantList` type: {}", - entry.want_type - ); - return None; - } + _ => return None, }; Some((cid, want_type)) From f3be94a8cc6ca7899468f372c0feffdfb0cfdb7f Mon Sep 17 00:00:00 2001 From: Dmitry Markin Date: Wed, 26 Nov 2025 10:25:34 +0200 Subject: [PATCH 16/16] minor: remove public export of `MultihashCode` --- src/protocol/libp2p/bitswap/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/protocol/libp2p/bitswap/mod.rs b/src/protocol/libp2p/bitswap/mod.rs index 14ce3ed6..65b9b461 100644 --- a/src/protocol/libp2p/bitswap/mod.rs +++ b/src/protocol/libp2p/bitswap/mod.rs @@ -29,7 +29,6 @@ use crate::{ }; use cid::Version; -pub use multihash::Code as MultihashCode; use prost::Message; use tokio::sync::mpsc::{Receiver, Sender}; use tokio_stream::{StreamExt, StreamMap};