Author: Lucas Luhur Last updated: 2026-06-27


Open question:

Network parameters: C (connectivity, default 8) and ρ (jitter ratio, default 0.1).


1. Summary

The network model is implemented, the second step in the build order (consensus → broadcast network → adversaries → anonymity measures). When a node wins a slot, it broadcasts a block proposal over the P2P network. This module turns “node $s$ broadcasts at time $t$” into the delay to every other node, i.e. the $(\text{sender}, \text{receiver})\to\Delta$ latency map the global passive adversary times against the consensus event stream. The headline quantity is the global broadcast latency: when a node wins it announces to all N−1 other nodes, so the latency is the time for the message to reach the whole network — the max over nodes of the shortest-path delay from the source, i.e. its eccentricity on the weighted graph, $L_{\text{broadcast}}(s) = \max_{j \ne s} d(s,j)$. The pairwise delay $\Delta$ is the building block; the broadcast latency is the deliverable.

It is a latency oracle, not a packet/transport simulator: gossip flooding is first-passage, so the weighted shortest path from the source is the message’s arrival time, and one Dijkstra solve yields the whole infection timeline. The network has two layers:

A validation harness checks the simulator against the analytics.

Parameters used

Parameter Symbol Meaning Value
Connectivity $C$ peer degree of the regular graph $8$ (sweep $4$–$10$)
Baseline delay $d$ fixed propagation per hop; fixes the time unit $1.0$
Jitter ratio $\rho$ $\mathbb{E}[X_e]/d = 1/(\lambda d)$ — the regime dial $0.1$ (sweep $0.1, 1, 10$)
Jitter rate $\lambda$ exponential rate of the link jitter $= 1/(\rho d)$ $10$
Nodes $N$ network size (a scaling check, not a tuning dial) $1000$ ($200$–$4000$)
Seed reproducibility (set at entry point) $0$
Broadcasts per estimate $n_b$ Monte Carlo draws pooled per $\mathbb{E}[\Delta]$ 300

The two real experiment knobs are $C$ (connectivity) and $\rho$ (jitter). $d=1$ fixes the time unit, so $\lambda$ follows from $\rho$; $N$ only enters as the $\log N$ scaling check. $C=8$ is the production gossip peering degree (recommended $\ge 8$).


2. Network topology

The P2P network is a random $C$-regular graph on $N$ nodes — quenched structural disorder.

def sample_regular_graph(N, C=DEFAULT_C, rng=None):
    rng = np.random.default_rng(rng)
    seed = int(rng.integers(0, 2**31 - 1))      # reproducible networkx seed
    return nx.random_regular_graph(C, N, seed=seed)

Why a random regular graph (RRG): Real gossip networks aren’t regular, but the only structural fact that matters here is the production network’s bounded, homogeneous peering degree $C\approx8$. RRGs match that and are sparse, near-homogeneous in degree, with short (logarithmic) path lengths and expander-like behaviour — capturing the competition between path multiplicity and path latency while staying analytically tractable.

Graph-distance law. The unweighted shortest-path length $L$ on the RRG follows a discrete Gompertz law — a property of the quenched topology alone, and the $\rho\to0$ limit of the broadcast delay (Tishby et al. 2022):

$$ \Pr(L>\ell) = \exp\!\big(-\eta\,[(C-1)^\ell - 1]\big), \qquad \eta = \frac{C}{(C-2)N}. $$