diff --git a/simlib/blendnet-sims/Cargo.toml b/simlib/blendnet-sims/Cargo.toml index 9729a7a..ae807b2 100644 --- a/simlib/blendnet-sims/Cargo.toml +++ b/simlib/blendnet-sims/Cargo.toml @@ -18,8 +18,10 @@ tracing = "0.1.40" tracing-subscriber = { version = "0.3", features = ["json", "env-filter", "tracing-log"] } netrunner = { path = "../netrunner" } nomos-tracing = { git = "https://github.com/logos-co/nomos-node.git" } -nomos-blend = { git = "https://github.com/logos-co/nomos-node", package = "nomos-blend" } -nomos-blend-message = { git = "https://github.com/logos-co/nomos-node", package = "nomos-blend-message" } +#nomos-blend = { git = "https://github.com/logos-co/nomos-node", package = "nomos-blend" } +nomos-blend = { git = "https://github.com/logos-co/nomos-node", branch = "blend-crypto-return-nodes", package = "nomos-blend" } +#nomos-blend-message = { git = "https://github.com/logos-co/nomos-node", package = "nomos-blend-message" } +nomos-blend-message = { git = "https://github.com/logos-co/nomos-node", branch = "blend-crypto-return-nodes", package = "nomos-blend-message" } futures = "0.3.31" rand_chacha = "0.3" multiaddr = "0.18" diff --git a/simlib/blendnet-sims/src/node/blend/mod.rs b/simlib/blendnet-sims/src/node/blend/mod.rs index 7b11e19..a620b29 100644 --- a/simlib/blendnet-sims/src/node/blend/mod.rs +++ b/simlib/blendnet-sims/src/node/blend/mod.rs @@ -20,6 +20,7 @@ use netrunner::{ network::{InMemoryNetworkInterface, NetworkInterface, PayloadSize}, warding::WardCondition, }; +use nomos_blend::message_blend::crypto::WrappedMessage; use nomos_blend::{ cover_traffic::{CoverTraffic, CoverTrafficSettings}, membership::Membership, @@ -267,17 +268,32 @@ impl BlendNode { self.slot_update_sender.send(elapsed).unwrap(); } - fn log_message_generated(&self, msg_type: &str, payload: &Payload) { - self.log_message(format!("{}MessageGenerated", msg_type).as_str(), payload); + fn log_message_generated( + &self, + msg_type: &str, + payload: &Payload, + public_keys: &[::PublicKey], + ) { + self.log_message( + format!("{}MessageGenerated", msg_type).as_str(), + payload, + Some(public_keys), + ); } fn log_message_fully_unwrapped(&self, payload: &Payload) { - self.log_message("MessageFullyUnwrapped", payload); + self.log_message("MessageFullyUnwrapped", payload, None); } - fn log_message(&self, tag: &str, payload: &Payload) { + fn log_message( + &self, + tag: &str, + payload: &Payload, + public_keys: Option<&[::PublicKey]>, + ) { let log = MessageLog { payload_id: payload.id(), + path: public_keys.map(|keys| keys.iter().map(|k| NodeId::from(k).index()).collect()), step_id: self.state.step_id, node_id: self.id.index(), }; @@ -319,11 +335,14 @@ impl Node for BlendNode { if let Poll::Ready(Some(_)) = pin!(&mut self.data_msg_lottery_interval).poll_next(&mut cx) { if self.data_msg_lottery.run() { let payload = Payload::new(); - self.log_message_generated("Data", &payload); - let message = self + let WrappedMessage { + message, + public_keys, + } = self .crypto_processor .wrap_message(payload.as_bytes()) .unwrap(); + self.log_message_generated("Data", &payload, &public_keys); self.persistent_sender.send(message).unwrap(); } } @@ -358,11 +377,14 @@ impl Node for BlendNode { // Generate a cover message probabilistically if let Poll::Ready(Some(_)) = pin!(&mut self.cover_traffic).poll_next(&mut cx) { let payload = Payload::new(); - self.log_message_generated("Cover", &payload); - let message = self + let WrappedMessage { + message, + public_keys, + } = self .crypto_processor .wrap_message(payload.as_bytes()) .unwrap(); + self.log_message_generated("Cover", &payload, &public_keys); self.persistent_sender.send(message).unwrap(); } @@ -394,6 +416,7 @@ impl Node for BlendNode { #[derive(Debug, Serialize, Deserialize)] struct MessageLog { payload_id: PayloadId, + path: Option>, step_id: usize, node_id: usize, }