Table of Contents

Class ConsensusInfo

Namespace
Concordium.Sdk.Types
Assembly
Concordium.Sdk.dll

Summary of the current state of consensus.

public sealed record ConsensusInfo : IEquatable<ConsensusInfo>
Inheritance
ConsensusInfo
Implements
Inherited Members

Constructors

ConsensusInfo(BlockHash, BlockHash, DateTimeOffset, BlockHash, ulong, ulong, ProtocolVersion, BlockHash, DateTimeOffset, TimeSpan?, TimeSpan, uint, uint, DateTimeOffset?, double, double, double?, double?, uint, DateTimeOffset?, double, double, double?, double?, double, double, ulong, DateTimeOffset?, double?, double?, ConcordiumBftDetails?)

Summary of the current state of consensus.

public ConsensusInfo(BlockHash BestBlock, BlockHash GenesisBlock, DateTimeOffset GenesisTime, BlockHash LastFinalizedBlock, ulong BestBlockHeight, ulong LastFinalizedBlockHeight, ProtocolVersion ProtocolVersion, BlockHash CurrentEraGenesisBlock, DateTimeOffset CurrentEraGenesisTime, TimeSpan? SlotDuration, TimeSpan EpochDuration, uint GenesisIndex, uint BlocksReceivedCount, DateTimeOffset? BlockLastReceivedTime, double BlockReceiveLatencyEma, double BlockReceiveLatencyEmsd, double? BlockReceivePeriodEma, double? BlockReceivePeriodEmsd, uint BlocksVerifiedCount, DateTimeOffset? BlockLastArrivedTime, double BlockArriveLatencyEma, double BlockArriveLatencyEmsd, double? BlockArrivePeriodEma, double? BlockArrivePeriodEmsd, double TransactionsPerBlockEma, double TransactionsPerBlockEmsd, ulong FinalizationCount, DateTimeOffset? LastFinalizedTime, double? FinalizationPeriodEma, double? FinalizationPeriodEmsd, ConcordiumBftDetails? ConcordiumBftDetails)

Parameters

BestBlock BlockHash

Hash of the current best block. The best block is a protocol defined block that the node must use as parent block to build the chain on. Note that this is subjective, in the sense that it is only the best block among the blocks the node knows about.

GenesisBlock BlockHash

Hash of the genesis block.

GenesisTime DateTimeOffset

Slot time of the genesis block.

LastFinalizedBlock BlockHash

Hash of the last, i.e., most recent, finalized block.

BestBlockHeight ulong

Height of the best block. See BestBlock.

LastFinalizedBlockHeight ulong

Height of the last finalized block. Genesis block has height 0.

ProtocolVersion ProtocolVersion

Currently active protocol version.

CurrentEraGenesisBlock BlockHash

Block hash of the genesis block of current era, i.e., since the last protocol update. Initially this is equal to GenesisBlock.

CurrentEraGenesisTime DateTimeOffset

Time when the current era started.

SlotDuration TimeSpan?

Duration of a slot. Present only in protocol versions 1-5.

EpochDuration TimeSpan

Duration of an epoch.

GenesisIndex uint

The number of chain restarts via a protocol update. An effected protocol update instruction might not change the protocol version specified in ProtocolVersion, but it always increments the genesis index.

BlocksReceivedCount uint

The number of blocks that have been received.

BlockLastReceivedTime DateTimeOffset?

The time (local time of the node) that a block was last received.

BlockReceiveLatencyEma double

Exponential moving average of block receive latency (in seconds), i.e. the time between a block's nominal slot time, and the time at which is received.

BlockReceiveLatencyEmsd double

Exponential moving average standard deviation of block receive latency (in seconds), i.e. the time between a block's nominal slot time, and the time at which is received.

BlockReceivePeriodEma double?

Exponential moving average of the time between receiving blocks (in seconds).

BlockReceivePeriodEmsd double?

Exponential moving average standard deviation of the time between receiving blocks (in seconds).

BlocksVerifiedCount uint

Number of blocks that arrived, i.e., were added to the tree. Note that in some cases this can be more than BlocksReceivedCount since blocks that the node itself produces count towards this, but are not received.

BlockLastArrivedTime DateTimeOffset?

The time (local time of the node) that a block last arrived, i.e., was verified and added to the node's tree.

BlockArriveLatencyEma double

The exponential moving average of the time between a block's nominal slot time, and the time at which it is verified.

BlockArriveLatencyEmsd double

The exponential moving average standard deviation of the time between a block's nominal slot time, and the time at which it is verified.

BlockArrivePeriodEma double?

Exponential moving average of the time between receiving blocks (in seconds).

BlockArrivePeriodEmsd double?

Exponential moving average standard deviation of the time between blocks being verified.

TransactionsPerBlockEma double

Exponential moving average of the number of transactions per block.

TransactionsPerBlockEmsd double

Exponential moving average standard deviation of the number of transactions per block.

FinalizationCount ulong

The number of completed finalizations.

LastFinalizedTime DateTimeOffset?

Time at which a block last became finalized. Note that this is the local time of the node at the time the block was finalized.

FinalizationPeriodEma double?

Exponential moving average of the time between finalizations. Will be null if there are no finalizations yet since the node start.

FinalizationPeriodEmsd double?

Exponential moving average standard deviation of the time between finalizations. Will be None if there are no finalizations yet since the node start.

ConcordiumBftDetails ConcordiumBftDetails

Parameters that apply from protocol 6 onward. This is present if and only if the protocol version is P6 or later.

Properties

BestBlock

Hash of the current best block. The best block is a protocol defined block that the node must use as parent block to build the chain on. Note that this is subjective, in the sense that it is only the best block among the blocks the node knows about.

public BlockHash BestBlock { get; init; }

Property Value

BlockHash

BestBlockHeight

Height of the best block. See BestBlock.

public ulong BestBlockHeight { get; init; }

Property Value

ulong

BlockArriveLatencyEma

The exponential moving average of the time between a block's nominal slot time, and the time at which it is verified.

public double BlockArriveLatencyEma { get; init; }

Property Value

double

BlockArriveLatencyEmsd

The exponential moving average standard deviation of the time between a block's nominal slot time, and the time at which it is verified.

public double BlockArriveLatencyEmsd { get; init; }

Property Value

double

BlockArrivePeriodEma

Exponential moving average of the time between receiving blocks (in seconds).

public double? BlockArrivePeriodEma { get; init; }

Property Value

double?

BlockArrivePeriodEmsd

Exponential moving average standard deviation of the time between blocks being verified.

public double? BlockArrivePeriodEmsd { get; init; }

Property Value

double?

BlockLastArrivedTime

The time (local time of the node) that a block last arrived, i.e., was verified and added to the node's tree.

public DateTimeOffset? BlockLastArrivedTime { get; init; }

Property Value

DateTimeOffset?

BlockLastReceivedTime

The time (local time of the node) that a block was last received.

public DateTimeOffset? BlockLastReceivedTime { get; init; }

Property Value

DateTimeOffset?

BlockReceiveLatencyEma

Exponential moving average of block receive latency (in seconds), i.e. the time between a block's nominal slot time, and the time at which is received.

public double BlockReceiveLatencyEma { get; init; }

Property Value

double

BlockReceiveLatencyEmsd

Exponential moving average standard deviation of block receive latency (in seconds), i.e. the time between a block's nominal slot time, and the time at which is received.

public double BlockReceiveLatencyEmsd { get; init; }

Property Value

double

BlockReceivePeriodEma

Exponential moving average of the time between receiving blocks (in seconds).

public double? BlockReceivePeriodEma { get; init; }

Property Value

double?

BlockReceivePeriodEmsd

Exponential moving average standard deviation of the time between receiving blocks (in seconds).

public double? BlockReceivePeriodEmsd { get; init; }

Property Value

double?

BlocksReceivedCount

The number of blocks that have been received.

public uint BlocksReceivedCount { get; init; }

Property Value

uint

BlocksVerifiedCount

Number of blocks that arrived, i.e., were added to the tree. Note that in some cases this can be more than BlocksReceivedCount since blocks that the node itself produces count towards this, but are not received.

public uint BlocksVerifiedCount { get; init; }

Property Value

uint

ConcordiumBftDetails

Parameters that apply from protocol 6 onward. This is present if and only if the protocol version is P6 or later.

public ConcordiumBftDetails? ConcordiumBftDetails { get; init; }

Property Value

ConcordiumBftDetails

CurrentEraGenesisBlock

Block hash of the genesis block of current era, i.e., since the last protocol update. Initially this is equal to GenesisBlock.

public BlockHash CurrentEraGenesisBlock { get; init; }

Property Value

BlockHash

CurrentEraGenesisTime

Time when the current era started.

public DateTimeOffset CurrentEraGenesisTime { get; init; }

Property Value

DateTimeOffset

EpochDuration

Duration of an epoch.

public TimeSpan EpochDuration { get; init; }

Property Value

TimeSpan

FinalizationCount

The number of completed finalizations.

public ulong FinalizationCount { get; init; }

Property Value

ulong

FinalizationPeriodEma

Exponential moving average of the time between finalizations. Will be null if there are no finalizations yet since the node start.

public double? FinalizationPeriodEma { get; init; }

Property Value

double?

FinalizationPeriodEmsd

Exponential moving average standard deviation of the time between finalizations. Will be None if there are no finalizations yet since the node start.

public double? FinalizationPeriodEmsd { get; init; }

Property Value

double?

GenesisBlock

Hash of the genesis block.

public BlockHash GenesisBlock { get; init; }

Property Value

BlockHash

GenesisIndex

The number of chain restarts via a protocol update. An effected protocol update instruction might not change the protocol version specified in ProtocolVersion, but it always increments the genesis index.

public uint GenesisIndex { get; init; }

Property Value

uint

GenesisTime

Slot time of the genesis block.

public DateTimeOffset GenesisTime { get; init; }

Property Value

DateTimeOffset

LastFinalizedBlock

Hash of the last, i.e., most recent, finalized block.

public BlockHash LastFinalizedBlock { get; init; }

Property Value

BlockHash

LastFinalizedBlockHeight

Height of the last finalized block. Genesis block has height 0.

public ulong LastFinalizedBlockHeight { get; init; }

Property Value

ulong

LastFinalizedTime

Time at which a block last became finalized. Note that this is the local time of the node at the time the block was finalized.

public DateTimeOffset? LastFinalizedTime { get; init; }

Property Value

DateTimeOffset?

ProtocolVersion

Currently active protocol version.

public ProtocolVersion ProtocolVersion { get; init; }

Property Value

ProtocolVersion

SlotDuration

Duration of a slot. Present only in protocol versions 1-5.

public TimeSpan? SlotDuration { get; init; }

Property Value

TimeSpan?

TransactionsPerBlockEma

Exponential moving average of the number of transactions per block.

public double TransactionsPerBlockEma { get; init; }

Property Value

double

TransactionsPerBlockEmsd

Exponential moving average standard deviation of the number of transactions per block.

public double TransactionsPerBlockEmsd { get; init; }

Property Value

double