Accumulate # of inbound/outbound messages for anonymity measurement

This commit is contained in:
Youngjoon Lee 2024-11-08 12:48:48 +07:00
parent 8faafcfb6f
commit a715fe4ae8
No known key found for this signature in database
GPG Key ID: 25CA11F37F095E5D
2 changed files with 11 additions and 3 deletions

View File

@ -192,6 +192,8 @@ impl MixNode {
step_id: 0,
data_messages_generated: HashMap::new(),
data_messages_fully_unwrapped: HashMap::new(),
accum_num_inbound_messages: 0,
accum_num_outbound_messages: 0,
},
data_msg_lottery_update_time_sender,
data_msg_lottery_interval,
@ -220,13 +222,15 @@ impl MixNode {
.filter(|&id| Some(*id) != exclude_node)
{
self.network_interface
.send_message(*node_id, message.clone())
.send_message(*node_id, message.clone());
self.state.accum_num_outbound_messages += 1;
}
}
fn receive(&mut self) -> Vec<NetworkMessage<MixMessage>> {
self.network_interface
.receive_messages()
let received_messages = self.network_interface.receive_messages();
self.state.accum_num_inbound_messages += received_messages.len();
received_messages
.into_iter()
// Retain only messages that have not been seen before
.filter(|msg| self.message_cache.insert(Self::sha256(&msg.payload().0)))

View File

@ -16,8 +16,12 @@ pub struct MixnodeState {
#[serde(serialize_with = "serialize_node_id_as_index")]
pub node_id: NodeId,
pub step_id: usize,
// For latency measurement
pub data_messages_generated: HashMap<PayloadId, usize>,
pub data_messages_fully_unwrapped: HashMap<PayloadId, usize>,
// For anonymity measurement
pub accum_num_inbound_messages: usize,
pub accum_num_outbound_messages: usize,
}
#[derive(Serialize)]