nomos-specs/mixnet
Youngjoon Lee dea14e76b8
use timeout to join process
2024-06-13 16:09:25 +09:00
..
v2/sim use timeout to join process 2024-06-13 16:09:25 +09:00
README.md
__init__.py
bls.py
client.py
config.py
fisheryates.py
mixnet.py
node.py
packet.py
poisson.py
structure.png
test_client.py
test_fisheryates.py
test_mixnet.py
test_node.py
test_packet.py
test_utils.py
utils.py

README.md

Mixnet Specification

This is the executable specification of Mixnet, which can be used as a networking layer of the Nomos network.

Public Components

  • mixnet.py: A public interface of the Mixnet layer, which can be used by upper layers
  • robustness.py: A public interface of the Robustness layer, which can be on top of the Mixnet layer and used by upper layers

Private Components

There are two primary components in the Mixnet layer.

  • client.py: A mix client interface, which splits a message into Sphinx packets, sends packets to mix nodes, and receives messages via gossip. Also, this emits cover packets periodically.
  • node.py: A mix node interface, which receives Sphinx packets from other mix nodes, processes packets, and forwards packets to other mix nodes. This works only when selected by the topology construction.

Each component receives a new topology from the Robustness layer.

There is no interaction between mix client and mix node components.