syntax = "proto3";
package flow.entities;
option go_package = "github.com/onflow/flow/protobuf/go/flow/entities";
option java_package = "org.onflow.protobuf.entities";
message CompatibleRange {
// The first block that the version supports.
uint64 start_height = 1;
// The last block that the version supports.
uint64 end_height = 2;
}
message NodeVersionInfo {
// The currently running node software version.
string semver = 1;
// The git commit hash of the currently running node software.
string commit = 2;
// The unique identifier for the node's network within the current spork.
bytes spork_id = 3;
// The deprecated protocol version number.
// Previously this referred to the major software version as of the most recent spork.
// Replaced by protocol_state_version.
uint64 protocol_version = 4 [deprecated = true];
// The spork root block height. This is the height of the first sealed block in the spork network.
uint64 spork_root_block_height = 5;
// The node's root block height. This is the first sealed block in the node's protocol database.
// If the node started at the beginning of the spork, it is the same as the spork root block height.
// If the node started after the beginning of the spork, it is the height of the first sealed block
// indexed.
uint64 node_root_block_height = 6;
// The compatible version range.
CompatibleRange compatible_range = 7;
// The Protocol State version as of the latest finalized block.
// This tracks the schema version of the Protocol State and is used to coordinate breaking changes in the Protocol.
// Version numbers are monotonically increasing.
uint64 protocol_state_version = 8;
}