Erebus

Network

3 nodes in the set

The registry and the fee pool are deployed and verified on Robinhood Chain Testnet, and everything below the fold is one snapshot() call against the registry rather than a number we typed in. What is in that set today is a demo: three nodes on one machine, staked and paid for real, with loopback endpoints nobody else can route to. Read the endpoints in the table and you can see that for yourself — which is the point of putting the set on chain. A public fleet is a separate thing, and it does not exist yet.

Chain 46630, test value only: the spend circuit's trusted setup is reproducible, so anyone can forge a proof against this pool.

Read off chain

Active nodes

3

Keys ever registered

3

Minimum bond

0.0010 ETH

Notes in the pool

4

Epoch

497340

Epoch length

3600 s

Fee denomination

0.0010 ETH

Epoch seed

not recorded yet

KeyEndpointBondOperator
0xf71c77c4…052624127.0.0.1:90000.0010 ETH0xEd166cCc…eD75CA
0xd4beb37e…4b505a127.0.0.1:90010.0010 ETH0x628067fF…D6EB22
0xc00770c2…341840127.0.0.1:90020.0010 ETH0x4fD9fA13…5C61d4

Which layer a node lands in is not listed, and not the registry's to decide: every client derives it from the epoch seed and the node's key. Each bond was staked by its own operator, and each of those operators has been paid out of the fee pool by a spend whose payer the chain does not name — mixnet/scripts/testnet-round.sh is the round that did it.

Layers

LayerRoleLearns
EntryAccepts client packetsYour address
RelayBreaks the entry–exit linkNeither end of the path
ExitDelivers to the destinationThe destination and the payload

Protocol parameters

Packet size

32768 bytes

Identical on every link

Hops per path

3

One node drawn per layer

Mean delay per hop

50 ms

Exponential, chosen by the client

Reply blocks

Single use

Return path independent of the forward path

Replay window

Per node, in memory

Cleared on restart

Layer assignment

Hash of epoch seed and node key

Every client derives the same one

Topology

ENTRYRELAYEXITYOUCHAIN

What has to exist before this set is a network

  1. Operators who are not us. The registry holds each one's key, endpoint, and bond, so the list is not ours to edit — but three keys we staked from one machine buy no anonymity, whatever the contract says.
  2. A reason to run a node. The shielded fee pool now pays the operators of a route without naming the payer, but on a trusted setup anyone can reproduce — auditable, and unsafe for real money until a multi-party ceremony replaces it.
  3. Slashing driven by evidence rather than by an arbiter address, so a node that drops packets or ignores the delay it was handed loses money on proof rather than on judgement.
  4. Loop probes reported by independent clients, which is the only honest way to measure whether a node is mixing rather than forwarding straight through.

Treat the protocol parameters as constants, not measurements — only the on-chain figures are read live. The measured ones live in the benchmarks.