Performance

ADV
%
Confirmed
ADV2
%
Confirmed
ADV3
%
Confirmed

Confirmed performance is the percentage of blocks confirmed on chain against assigned leader slots (not including stolen or ghosted blocks). Confirmed performance is reduced by missing and invalid blocks which are nominally caused by the operator.

We track a large number of metrics to ensure that the ADAvault stake pools are reliably minting blocks including:

  • assigned leader slots,
  • the ideal number of slots per epoch, based on pool stake,
  • luck, which is the ratio of assigned leader slots to ideal;
  • and lastly, the actual blocks confirmed on chain.

Leader slots are assigned to the Cardano node by a Verifiably Random Function (VRF). The VRF will always average over time to 100% luck but there can be significant short term variance.

ADV performance

Chart by Visualizer

The graph shows slots as leader, ideal slot allocation based on stake, luck expressed as the percentage leader allocation against ideal; and lastly, the actual blocks which were confirmed on the Cardano blockchain. We show data for the last 20 epochs.

EpochLeadIdealLuckConfirmMGSI*

* M=Missed, G=Ghosted, S=Stolen, I=Invalid (see below for more details).
There were stolen and ghosted blocks in some Epochs where an assigned block was minted by another pool. This is a standard part of the Ouroboros Praos protocol with the decision based on the pool VRF key. See discussion on implementation here https://github.com/input-output-hk/ouroboros-network/issues/2014

ADV2 performance

Chart by Visualizer

ADV2 shows a similar overall performance profile as ADV which is expected given the pool has similar stake and runs on an equivalent hardware and software stack. Again, please note the ghosted and stolen blocks which become more likely as a pool gets closer to 100% saturation.

EpochLeadIdealLuckConfirmMGSI

ADV3 performance

Chart by Visualizer

Slot leader allocation for ADV3 is more variable as the pool is smaller, average luck is consistent with the larger pools but with greater variance across epochs. There are far less stolen and ghosted blocks as the potential for VRF collisions with other pools is proportionately smaller.

EpochLeadIdealLuckConfirmMGSI

Key to headings
Leader: Number of slots scheduled to lead and mint block
Ideal: Expected number of leader slots based on active stake
Luck: The percentage of leader slots assigned vs ideal
Confirm: Number of blocks created and subsequently validated on-chain
Invalid: Node attempted but failed to create block (for unknown reasons)
Missed: Scheduled at slot but no record of it in cncli DB and no other pool has made a block for this slot
Ghosted: Block created but marked as orphaned and no other pool has made a valid block for this slot, possibly due to height battle or block propagation issue
Stolen: Another pool has a valid block registered on-chain for the same slot, possibly due to VRF contention and more than one pool assigned to the slot

Historic performance data is refreshed hourly, there will be some lag against the real time statistics for block production in the current epoch.

Monitoring

ADAvault uses Prometheus and Grafana to monitor the infrastructure that we operate, and collect data from node instances. Delegators have complete transparency on pool operation and performance, with access to a subset of the same real time monitoring dashboard as our Ops team.

Grafana- click to see the live dashboard. You may notice that metrics periodically reset when we move between clusters to patch or upgrade to a new Cardano release

Resource utilisation for memory network and CPU is low, and there is significant capacity on the existing hardware for blockchain growth as smart contracts adoption increases. Performance tuning is carried out periodically for releases with a number of improvements recently implemented for time synchronisation and file systems (xfs from ext4).

Stake pool operational availability remains near 100% and the Cardano node software has proven to be very stable. We always allow for a comprehensive soak test on the passive nodes when compiling new releases.

Latency

ADAvault has very low latency measurements for connectivity to peers. This is important as it increases the likelihood that the blocks minted by the stake pools are adopted on chain. Real time details are available from PoolTool.io who measure propagation delays across all registered pools.

ADAvault propagation delay for slot leader to broadcast to all network nodes
ADAvault propagation delay receiving from connected network nodes

The important latency number is not the average (or median) at ~300ms, but the mode (or most frequently occurring latency) which is ~100ms. The reason the average is less relevant is that it is skewed by the very infrequent long tail which could be reduced by connecting to close geographical peers, but has the side effect of making the network weaker and reducing global block propagation.

For comparison it takes approximately 200ms to send a ping request half way around the world. Therefore we can see that 100ms for the mode is towards the lower theoretical bound for latency.

We regularly review global peer connectivity, and are confident the pools have excellent performance characteristics for reliable block production.