diff --git a/mixnet/v2/sim/node.py b/mixnet/v2/sim/node.py index 23d20dc..51a70fe 100644 --- a/mixnet/v2/sim/node.py +++ b/mixnet/v2/sim/node.py @@ -73,9 +73,6 @@ class Node: and forwards it to the next mix or the entire network if necessary. @param msg: the message to be processed """ - # simulating network latency - yield self.env.timeout(random.uniform(0, self.config.max_network_latency)) - if isinstance(msg, SphinxPacket): msg, incentive_tx = msg.unwrap(self.private_key) if self.is_my_incentive_tx(incentive_tx): diff --git a/mixnet/v2/sim/p2p.py b/mixnet/v2/sim/p2p.py index 0bd5a8e..27aeef5 100644 --- a/mixnet/v2/sim/p2p.py +++ b/mixnet/v2/sim/p2p.py @@ -3,6 +3,7 @@ import random from collections import defaultdict import simpy +from simpy.util import start_delayed from config import Config from sphinx import SphinxPacket @@ -34,7 +35,8 @@ class P2p: # TODO: gossipsub or something similar for node in self.nodes: - self.env.process(node.receive_message(msg)) + network_delay = random.uniform(0, self.config.max_network_latency) + start_delayed(self.env, node.receive_message(msg), delay=network_delay) def get_nodes(self, n: int): return random.sample(self.nodes, n)