You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

92 lines
3.5 KiB

syntax = "proto3";
package tendermint.proto.consensus;
option go_package = "github.com/tendermint/tendermint/proto/consensus";
import "third_party/proto/gogoproto/gogo.proto";
import "proto/types/types.proto";
import "proto/libs/bits/types.proto";
// NewRoundStepMessage is sent for every step taken in the ConsensusState.
// For every height/round/step transition
message NewRoundStep {
int64 height = 1;
int32 round = 2;
uint32 step = 3;
int64 seconds_since_start_time = 4;
int32 last_commit_round = 5;
}
// NewValidBlockMessage is sent when a validator observes a valid block B in some round r,
//i.e., there is a Proposal for block B and 2/3+ prevotes for the block B in the round r.
// In case the block is also committed, then IsCommit flag is set to true.
message NewValidBlock {
int64 height = 1;
int32 round = 2;
tendermint.proto.types.PartSetHeader block_parts_header = 3 [(gogoproto.nullable) = false];
tendermint.proto.libs.bits.BitArray block_parts = 4;
bool is_commit = 5;
}
// ProposalMessage is sent when a new block is proposed.
message Proposal {
tendermint.proto.types.Proposal proposal = 1 [(gogoproto.nullable) = false];
}
// ProposalPOLMessage is sent when a previous proposal is re-proposed.
message ProposalPOL {
int64 height = 1;
int32 proposal_pol_round = 2;
tendermint.proto.libs.bits.BitArray proposal_pol = 3 [(gogoproto.nullable) = false];
}
// BlockPartMessage is sent when gossipping a piece of the proposed block.
message BlockPart {
int64 height = 1;
int32 round = 2;
tendermint.proto.types.Part part = 3 [(gogoproto.nullable) = false];
}
// VoteMessage is sent when voting for a proposal (or lack thereof).
message Vote {
tendermint.proto.types.Vote vote = 1;
}
// HasVoteMessage is sent to indicate that a particular vote has been received.
message HasVote {
int64 height = 1;
int32 round = 2;
tendermint.proto.types.SignedMsgType type = 3;
int32 index = 4;
}
// VoteSetMaj23Message is sent to indicate that a given BlockID has seen +2/3 votes.
message VoteSetMaj23 {
int64 height = 1;
int32 round = 2;
tendermint.proto.types.SignedMsgType type = 3;
tendermint.proto.types.BlockID block_id = 4 [(gogoproto.customname) = "BlockID", (gogoproto.nullable) = false];
}
// VoteSetBitsMessage is sent to communicate the bit-array of votes seen for the BlockID.
message VoteSetBits {
int64 height = 1;
int32 round = 2;
tendermint.proto.types.SignedMsgType type = 3;
tendermint.proto.types.BlockID block_id = 4 [(gogoproto.customname) = "BlockID", (gogoproto.nullable) = false];
tendermint.proto.libs.bits.BitArray votes = 5 [(gogoproto.nullable) = false];
}
message Message {
oneof sum {
NewRoundStep new_round_step = 1;
NewValidBlock new_valid_block = 2;
Proposal proposal = 3;
ProposalPOL proposal_pol = 4;
BlockPart block_part = 5;
Vote vote = 6;
HasVote has_vote = 7;
VoteSetMaj23 vote_set_maj23 = 8;
VoteSetBits vote_set_bits = 9;
}
}