syntax = "proto3";
import "google/protobuf/wrappers.proto";
package tari.base_node;
message ChainMetadata {
// The current chain height, or the block number of the longest valid chain, or `None` if there is no chain
google.protobuf.UInt64Value height_of_longest_chain = 1;
// The block hash of the current tip of the longest valid chain, or `None` for an empty chain
google.protobuf.BytesValue best_block = 2;
// The number of blocks back from the tip that this database tracks. A value of 0 indicates that all blocks are
// tracked (i.e. the database is in full archival mode).
uint64 pruning_horizon = 4;
// The current geometric mean of the pow of the chain tip, or `None` if there is no chain
bytes accumulated_difficulty = 5;
// The effective height of the pruning horizon. This indicates from what height
// a full block can be provided (exclusive).
// If `effective_pruned_height` is equal to the `height_of_longest_chain` no blocks can be provided.
// Archival nodes wil always have an `effective_pruned_height` of zero.
uint64 effective_pruned_height = 6;
}