2.7 KiB
Dandelion Simulation
This document describes a network of node with Dandelion.
In this scenario, we simulate a successfull aggregation but a failed transaction cut-through forcing a node to revert its stempool state.
This document also helps visualizing all the timers in a simple way.
T = 0 - Initial Situation
T = 5
A sends grins to B. B flips a coin and decides to add it to its stempool and starts the embargo timer for this transaction.
T = 10
B waits until he runs out of patience.
T = 30
B runs out of patience and broadcasts the aggregated stem transaction to its Dandelion relay H. H receives the stem transaction, flips a coin and decides to add it to its stempool and starts the embargo timer for this transaction.
T = 40
G sends grins to E. E flips a coin and decides to add it to its stempool and starts the embargo timer for this transaction. B and H wait.
T = 55
B spends B1 to D. D flips a coin and decides to add it to its stempool and starts the embargo timer for this transaction. H runs out of patience broadcasts the aggregated stem transaction to its Dandelion relay E. E receives the stem transaction, flips a coin and decides to add it to its stempool and starts the embargo timer for this transaction.
T = 65
Nodes are waiting.
T = 70
E runs out of patience broadcasts the aggregated stem transaction to its Dandelion relay F. F receives the stem transaction, flips a coin and decides to add it to its stempool and starts the embargo timer for this transaction.
T = 80
D runs out of patience, broadcasts the aggregated stem transaction to its Dandelion relay. E receives the stem transaction, flips a coin and decides to add it to its stempool and starts the embargo timer for this transaction. aggregates them (thus removing duplicate input/output pair B1) and starts its patience timer.
T = 85
Nodes are waiting.
T = 95 - Step 1
F runs out of patience, broadcasts the aggregated stem transaction to its Dandelion relay H. H receives the transaction, flips a coin and decide to broadcast the transaction to all its peers (fluff in the mempool).
T = 95 - Step 2
All the nodes add this transaction to their mempool and remove the related transactions from their stempool. E receives the transaction in its mempool and reverts the state of its stempool to avoid conflicting transactions.