This model visualizes the traffic consumption by a single Ethereum node, taking into account the inbound traffic, which is categorizing by the type of data being transmitted (e.g., blocks, transactions, etc.).
Model defines the time of arrival of the data into the slot, as well as the size of the data. The configured time of arrival defines the time when the data was sent to the node and put into the inbound "wire".
Slot duration: The duration of a slot in seconds. Configurable.- Range: 1 to 12 seconds.
- Default: 12 seconds.
Inbound bitrate: The inbound bitrate of the node in bits per second.- Range: 1,000,000 – 400,000,000 bits per second.
- Default: 50,000,000 bits per second (50 Mbps).
This represents the amount of data received by the node during the block propagation process. It includes the size of the blocks. Each block could be received multiple times by the node, as it could be gossiped by multiple validators in the attestation subnet:
Gas limit: The maximum amount of gas that can be used in a block. We use post-EIP-7623 conversion rate of 1.34MB per 30,000,000 gas as in blocksize repo.- Range: 1,000,000 to 1,000,000,000 gas.
- Default: 36,000,000 gas.
Time of block arrival: The time into the slot when the block arrives. Configurable.Duplication factor: The number of times that the node receives the block. Configurable.- Range: 1 to 10.
- Default: 4.
Each blob is 128kB in size. Each blob is gossiped in a dedicated gossipsub topic. Each validator could be subscribed to at least one topic.
Blobs per slot: The number of blobs that are gossiped in a slot. Configurable.- Range: 0 to 128 blobs.
- Default: 0 blobs.
Time of arrival distribution: The distribution of blobs arrivals within a slot. Configurable via:Distribution type: The distribution type for blob arrivals.- Options: Uniform, Gaussian
- Default: Gaussian
Gaussian: Blobs arrive according to a Gaussian distribution centered around a peak time.Peak time: Slot time (in seconds) when blobs arrivals are most concentrated.- Range: 1 to
Slot duration - Default: 2 seconds
- Range: 1 to
Spread: Width of the arrival distribution (Gaussian standard deviation).- Range: 0.1 to 6 seconds
- Default: 1.5 seconds
Uniform: Blobs arrive uniformly distributed across the slot duration.Earliest: Earliest time in the slot when blobs can arrive.- Range: 0 to
Slot duration - Default: 1 seconds
- Range: 0 to
Latest: Latest time in the slot when blobs can arrive.- Range:
EarliesttoSlot duration - Default: 6 seconds
- Range:
Attestations are small messages that validators send to attest to the validity of blocks. Each attestation contains a signature that proves that the validator has seen the block and agrees with its validity.
Attestations are gossiped in a dedicated gossipsub topic that define subnet committee. Number of attestations per slot is defined by the number of validators in the subnet committee. Each attestation could be received multiple times by the node, as it could be gossiped by multiple validators in the subnet committee.
Attestations per slot: The number of attestations that are gossiped in a slot. Same as number of validators in the attestation subnet. Configurable.- Range: 0 to 2048 attestations.
- Default: 128 attestations.
Signature size: The size of the signature in bytes. Configurable.- Range: 64 to 3072 bytes.
- Default: 96 bytes.
Duplication factor: The average number of times that the node receives each attestation. Configurable.- Range: 1 to 10.
- Default: 2.5
Time of arrival distribution: The distribution of attestations arrivals within a slot. Attestations cannot arrive before the block. Configurable via:Distribution type: The distribution type for attestation arrivals.- Options: Uniform, Gaussian
- Default: Gaussian
Gaussian: Attestations arrive according to a Gaussian distribution centered around a peak time.Peak time: Slot time (in seconds) when attestations arrivals are most concentrated.- Range: 1 to
Slot duration - Default: 2 seconds
- Range: 1 to
Spread: Width of the arrival distribution (Gaussian standard deviation).- Range: 0.1 to 6 seconds
- Default: 1.5 seconds
Uniform: Attestations arrive uniformly distributed across the slot duration.Earliest: Earliest time in the slot when attestations can arrive.- Range: 0 to
Slot duration - Default: 1 seconds
- Range: 0 to
Latest: Latest time in the slot when attestations can arrive.- Range:
EarliesttoSlot duration - Default: 6 seconds
- Range:
Transactions are user-initiated operations (e.g., token transfers, contract interactions) propagated through the network before inclusion in blocks. They are broadcast via a dedicated P2P network and may be received multiple times by a node due to redundant propagation.
-
Transactions per slot: The number of unique transactions arriving at the node per slot.- Range: 0 to 100,000
- Default: 5,000
-
Average transaction size: The mean size of a transaction in bytes.
Range: 100 to 10,000 bytes
Default: 300 bytes (typical ERC-20 transfer) -
Time of arrival distribution: The temporal distribution of transaction arrivals within a slot. Configurable via:Peak time: Slot time (in seconds) when transaction arrivals are most concentrated.- Range: 0 to
Slot duration - Default: 4 seconds
- Range: 0 to
Spread: Width of the arrival distribution (Gaussian standard deviation).- Range: 0.1 to 6 seconds
- Default: 1.5 seconds
Note, on graphic it might look like a bell curve centered at
Peak timewith widthSpread. -
Duplication factor:
Average number of times the same transaction is received (due to redundant propagation).
Range: 1.0 to 5.0
Default: 1.8
Total inbound traffic is the sum of traffic from all components (blocks, blobs, attestations, transactions). The model:
- Generates discrete data arrivals for each component based on configured parameters.
- Converts data sizes to bits (×8).
- Places arrivals in a time-ordered queue based on:
- Fixed time (blocks)
- Uniform random distribution within
[Earliest, Latest](blobs) - Gaussian distribution around
Peak time(transactions)
- Processes the queue against the inbound bitrate to calculate:
- Instantaneous bandwidth utilization
- Buffering delays
- Data loss (if capacity exceeded)
Visualization:
2D plot showing the total inbound bandwidth over time.
X-axis: Time in slot (seconds)
Y-axis: Inbound bandwidth (Mbps)

