diff --git a/Cargo.lock b/Cargo.lock
index 6ea19470fc..1ea7319243 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -908,6 +908,16 @@ dependencies = [
"generic-array 0.14.7",
]
+[[package]]
+name = "bloomfilter"
+version = "3.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f6d7f06817e48ea4e17532fa61bc4e8b9a101437f0623f69d2ea54284f3a817"
+dependencies = [
+ "getrandom 0.2.15",
+ "siphasher 1.0.1",
+]
+
[[package]]
name = "bls12_381"
version = "0.8.0"
@@ -1564,6 +1574,7 @@ dependencies = [
"ciborium",
"clap",
"criterion-plot",
+ "futures",
"is-terminal",
"itertools 0.10.5",
"num-traits",
@@ -1576,6 +1587,7 @@ dependencies = [
"serde_derive",
"serde_json",
"tinytemplate",
+ "tokio",
"walkdir",
]
@@ -6115,15 +6127,18 @@ dependencies = [
"axum 0.7.9",
"bip39",
"blake2 0.8.1",
+ "bloomfilter",
"bs58",
"cargo_metadata 0.18.1",
"celes",
"chacha",
"clap",
"colored",
+ "criterion",
"csv",
"cupid",
"futures",
+ "hkdf",
"human-repr",
"humantime-serde",
"indicatif",
@@ -6163,6 +6178,7 @@ dependencies = [
"rand 0.8.5",
"serde",
"serde_json",
+ "sha2 0.10.8",
"sysinfo",
"thiserror 2.0.12",
"time",
@@ -6713,8 +6729,6 @@ name = "nym-sphinx-framing"
version = "0.1.0"
dependencies = [
"bytes",
- "log",
- "nym-metrics",
"nym-sphinx-acknowledgements",
"nym-sphinx-addressing",
"nym-sphinx-forwarding",
@@ -6723,6 +6737,7 @@ dependencies = [
"thiserror 2.0.12",
"tokio",
"tokio-util",
+ "tracing",
]
[[package]]
@@ -9246,9 +9261,9 @@ dependencies = [
[[package]]
name = "sphinx-packet"
-version = "0.3.2"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c23047e0cf36ff6904603f499fd13153425cdf5ba47bfbaedbc999da0bd92f4e"
+checksum = "b63a72efe7dce8a546d5cb855e60699ae69203d0d7e4335a654eb87e93d7d141"
dependencies = [
"aes",
"arrayref",
@@ -9267,6 +9282,7 @@ dependencies = [
"sha2 0.10.8",
"subtle 2.6.1",
"x25519-dalek",
+ "zeroize",
]
[[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 15a2722b85..b380262d59 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -204,7 +204,7 @@ bip39 = { version = "2.0.0", features = ["zeroize"] }
bit-vec = "0.7.0" # can we unify those?
bitvec = "1.0.0"
blake3 = "1.7.0"
-bloomfilter = "1.0.14"
+bloomfilter = "3.0.1"
bs58 = "0.5.1"
bytecodec = "0.4.15"
bytes = "1.10.1"
@@ -303,9 +303,6 @@ rand_seeder = "0.2.3"
rayon = "1.5.1"
regex = "1.10.6"
reqwest = { version = "0.12.15", default-features = false }
-rocket = "0.5.0"
-rocket_cors = "0.6.0"
-rocket_okapi = "0.8.0"
rs_merkle = "1.5.0"
safer-ffi = "0.1.13"
schemars = "0.8.22"
@@ -320,7 +317,7 @@ serde_with = "3.9.0"
serde_yaml = "0.9.25"
sha2 = "0.10.8"
si-scale = "0.2.3"
-sphinx-packet = "=0.3.2"
+sphinx-packet = "=0.5.0"
sqlx = "0.7.4"
strum = "0.26"
strum_macros = "0.26"
diff --git a/common/mixnode-common/src/packet_processor/error.rs b/common/mixnode-common/src/packet_processor/error.rs
index 50ae179e37..3258f4710e 100644
--- a/common/mixnode-common/src/packet_processor/error.rs
+++ b/common/mixnode-common/src/packet_processor/error.rs
@@ -10,9 +10,6 @@ pub enum MixProcessingError {
#[error("failed to recover the expected SURB-Ack packet: {0}")]
MalformedSurbAck(#[from] SurbAckRecoveryError),
- #[error("the received packet was set to use the very old and very much deprecated 'VPN' mode")]
- ReceivedOldTypeVpnPacket,
-
#[error("failed to process received Nym packet: {0}")]
NymPacketProcessingError(#[from] PacketProcessingError),
}
diff --git a/common/network-defaults/src/ecash.rs b/common/network-defaults/src/ecash.rs
index 2490ed5f79..52eb584ea0 100644
--- a/common/network-defaults/src/ecash.rs
+++ b/common/network-defaults/src/ecash.rs
@@ -37,32 +37,3 @@ impl TicketTypeRepr {
}
}
}
-
-// Constants for bloom filter for double spending detection
-//Chosen for FP of
-//Calculator at https://hur.st/bloomfilter/
-pub const ECASH_DS_BLOOMFILTER_PARAMS: BloomfilterParameters = BloomfilterParameters {
- num_hashes: 10,
- bitmap_size: 1_500_000_000,
- sip_keys: [
- (12345678910111213141, 1415926535897932384),
- (7182818284590452353, 3571113171923293137),
- ],
-};
-
-#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
-pub struct BloomfilterParameters {
- pub num_hashes: u32,
- pub bitmap_size: u64,
- pub sip_keys: [(u64, u64); 2],
-}
-
-impl BloomfilterParameters {
- pub const fn byte_size(&self) -> u64 {
- self.bitmap_size / 8
- }
-
- pub const fn default_ecash() -> Self {
- ECASH_DS_BLOOMFILTER_PARAMS
- }
-}
diff --git a/common/nym-metrics/src/lib.rs b/common/nym-metrics/src/lib.rs
index 7c6373ccc7..dbe950e48a 100644
--- a/common/nym-metrics/src/lib.rs
+++ b/common/nym-metrics/src/lib.rs
@@ -363,6 +363,7 @@ impl MetricsController {
buffer
}
+ #[inline(always)]
pub fn to_writer(&self, writer: &mut dyn std::io::Write) {
let metrics = self.gather();
match writer.write_all(&metrics) {
@@ -371,6 +372,7 @@ impl MetricsController {
}
}
+ #[inline(always)]
pub fn register_int_gauge<'a>(&self, name: &str, help: impl Into