state.roster.roster_state.proto Maven / Gradle / Ivy
syntax = "proto3";
package com.hedera.hapi.node.state.roster;
/*
* Copyright (C) 2024 Hedera Hashgraph, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import "basic_types.proto";
option java_package = "com.hederahashgraph.api.proto.java";
// <<>> This comment is special code for setting PBJ Compiler java package
option java_multiple_files = true;
/**
* The current state of platform rosters.
* This message stores a roster data for the platform in network state.
*
* The roster state SHALL encapsulate the incoming candidate roster's hash,
* and a list of pairs of round number and active roster hash.
* This data SHALL be used to track round numbers and the rosters used in determining the consensus.
*/
message RosterState {
/**
* The SHA-384 hash of a candidate roster.
*
* This is the hash of the roster that is currently being considered
* for adoption.
* A Node SHALL NOT, ever, have more than one candidate roster
* at the same time.
*/
bytes candidate_roster_hash = 1;
/**
* A list of round numbers and roster hashes.
* The round number indicates the round in which the corresponding roster became active
*
* This list SHALL be ordered by round numbers in descending order.
*/
repeated RoundRosterPair round_roster_pairs = 2;
}
/**
* A pair of round number and active roster hash.
*
* This message SHALL encapsulate the round number and the hash of the
* active roster used for that round.
*/
message RoundRosterPair {
/**
* The round number.
*
* This value SHALL be the round number of the consensus round in which this roster became active.
*/
uint64 round_number = 1;
/**
* The SHA-384 hash of the active roster for the given round number.
*
* This value SHALL be the hash of the active roster used for the round.
*/
bytes active_roster_hash = 2;
}