mirror of
https://github.com/logos-co/nomos-specs.git
synced 2025-02-08 13:33:49 +00:00
fix noise size
This commit is contained in:
parent
a01a090a10
commit
59be969fbc
@ -4,7 +4,6 @@ import hashlib
|
||||
from enum import Enum
|
||||
from typing import Awaitable, Callable, TypeAlias
|
||||
|
||||
from pysphinx.payload import DEFAULT_PAYLOAD_SIZE
|
||||
from pysphinx.sphinx import (
|
||||
Payload,
|
||||
ProcessedFinalHopPacket,
|
||||
@ -28,6 +27,7 @@ class Node:
|
||||
mixgossip_channel: MixGossipChannel
|
||||
reconstructor: MessageReconstructor
|
||||
broadcast_channel: BroadcastChannel
|
||||
packet_size: int
|
||||
|
||||
def __init__(
|
||||
self, framework: Framework, config: NodeConfig, global_config: GlobalConfig
|
||||
@ -41,6 +41,11 @@ class Node:
|
||||
self.reconstructor = MessageReconstructor()
|
||||
self.broadcast_channel = framework.queue()
|
||||
|
||||
sample_packet, _ = PacketBuilder.build_real_packets(
|
||||
bytes(1), global_config.membership
|
||||
)[0]
|
||||
self.packet_size = len(sample_packet.bytes())
|
||||
|
||||
async def __process_sphinx_packet(
|
||||
self, packet: SphinxPacket
|
||||
) -> SphinxPacket | None:
|
||||
@ -77,6 +82,8 @@ class Node:
|
||||
):
|
||||
raise PeeringDegreeReached
|
||||
|
||||
noise_msg = build_msg(MsgType.NOISE, bytes(self.packet_size))
|
||||
|
||||
self.mixgossip_channel.add_conn(
|
||||
DuplexConnection(
|
||||
inbound_conn,
|
||||
@ -84,6 +91,7 @@ class Node:
|
||||
self.framework,
|
||||
outbound_conn,
|
||||
self.global_config.transmission_rate_per_sec,
|
||||
noise_msg,
|
||||
),
|
||||
)
|
||||
)
|
||||
@ -94,6 +102,7 @@ class Node:
|
||||
self.framework,
|
||||
inbound_conn,
|
||||
self.global_config.transmission_rate_per_sec,
|
||||
noise_msg,
|
||||
),
|
||||
)
|
||||
)
|
||||
@ -188,17 +197,20 @@ class MixSimplexConnection:
|
||||
queue: NetworkPacketQueue
|
||||
conn: SimplexConnection
|
||||
transmission_rate_per_sec: float
|
||||
noise_msg: bytes
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
framework: Framework,
|
||||
conn: SimplexConnection,
|
||||
transmission_rate_per_sec: float,
|
||||
noise_msg: bytes,
|
||||
):
|
||||
self.framework = framework
|
||||
self.queue = framework.queue()
|
||||
self.conn = conn
|
||||
self.transmission_rate_per_sec = transmission_rate_per_sec
|
||||
self.noise_msg = noise_msg
|
||||
self.task = framework.spawn(self.__run())
|
||||
|
||||
async def __run(self):
|
||||
@ -206,7 +218,7 @@ class MixSimplexConnection:
|
||||
await self.framework.sleep(1 / self.transmission_rate_per_sec)
|
||||
# TODO: time mixing
|
||||
if self.queue.empty():
|
||||
elem = build_noise_packet()
|
||||
elem = self.noise_msg
|
||||
else:
|
||||
elem = await self.queue.get()
|
||||
await self.conn.send(elem)
|
||||
@ -230,9 +242,5 @@ def parse_msg(data: bytes) -> tuple[MsgType, bytes]:
|
||||
return (MsgType(data[:1]), data[1:])
|
||||
|
||||
|
||||
def build_noise_packet() -> bytes:
|
||||
return build_msg(MsgType.NOISE, bytes(DEFAULT_PAYLOAD_SIZE))
|
||||
|
||||
|
||||
class PeeringDegreeReached(Exception):
|
||||
pass
|
||||
|
Loading…
x
Reference in New Issue
Block a user