// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.26.0
// 	protoc        v3.9.1
// source: qbft.proto

package types

import (
	reflect "reflect"
	sync "sync"

	types "github.com/33cn/chain33/types"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type QbftBlockID struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
}

func (x *QbftBlockID) Reset() {
	*x = QbftBlockID{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftBlockID) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftBlockID) ProtoMessage() {}

func (x *QbftBlockID) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftBlockID.ProtoReflect.Descriptor instead.
func (*QbftBlockID) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{0}
}

func (x *QbftBlockID) GetHash() []byte {
	if x != nil {
		return x.Hash
	}
	return nil
}

type QbftBitArray struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Bits  int32    `protobuf:"varint,1,opt,name=bits,proto3" json:"bits,omitempty"`
	Elems []uint64 `protobuf:"varint,2,rep,packed,name=elems,proto3" json:"elems,omitempty"`
}

func (x *QbftBitArray) Reset() {
	*x = QbftBitArray{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftBitArray) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftBitArray) ProtoMessage() {}

func (x *QbftBitArray) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftBitArray.ProtoReflect.Descriptor instead.
func (*QbftBitArray) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{1}
}

func (x *QbftBitArray) GetBits() int32 {
	if x != nil {
		return x.Bits
	}
	return 0
}

func (x *QbftBitArray) GetElems() []uint64 {
	if x != nil {
		return x.Elems
	}
	return nil
}

type QbftVote struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ValidatorAddress []byte       `protobuf:"bytes,1,opt,name=validatorAddress,proto3" json:"validatorAddress,omitempty"`
	ValidatorIndex   int32        `protobuf:"varint,2,opt,name=validatorIndex,proto3" json:"validatorIndex,omitempty"`
	Height           int64        `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
	Round            int32        `protobuf:"varint,4,opt,name=round,proto3" json:"round,omitempty"`
	Timestamp        int64        `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Type             uint32       `protobuf:"varint,6,opt,name=type,proto3" json:"type,omitempty"`
	BlockID          *QbftBlockID `protobuf:"bytes,7,opt,name=blockID,proto3" json:"blockID,omitempty"`
	Signature        []byte       `protobuf:"bytes,8,opt,name=signature,proto3" json:"signature,omitempty"`
	UseAggSig        bool         `protobuf:"varint,9,opt,name=useAggSig,proto3" json:"useAggSig,omitempty"`
}

func (x *QbftVote) Reset() {
	*x = QbftVote{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftVote) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftVote) ProtoMessage() {}

func (x *QbftVote) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftVote.ProtoReflect.Descriptor instead.
func (*QbftVote) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{2}
}

func (x *QbftVote) GetValidatorAddress() []byte {
	if x != nil {
		return x.ValidatorAddress
	}
	return nil
}

func (x *QbftVote) GetValidatorIndex() int32 {
	if x != nil {
		return x.ValidatorIndex
	}
	return 0
}

func (x *QbftVote) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *QbftVote) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *QbftVote) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *QbftVote) GetType() uint32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *QbftVote) GetBlockID() *QbftBlockID {
	if x != nil {
		return x.BlockID
	}
	return nil
}

func (x *QbftVote) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

func (x *QbftVote) GetUseAggSig() bool {
	if x != nil {
		return x.UseAggSig
	}
	return false
}

type QbftCommit struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BlockID    *QbftBlockID `protobuf:"bytes,1,opt,name=blockID,proto3" json:"blockID,omitempty"`
	Prevotes   []*QbftVote  `protobuf:"bytes,2,rep,name=prevotes,proto3" json:"prevotes,omitempty"`
	Precommits []*QbftVote  `protobuf:"bytes,3,rep,name=precommits,proto3" json:"precommits,omitempty"`
	AggVote    *QbftAggVote `protobuf:"bytes,4,opt,name=aggVote,proto3" json:"aggVote,omitempty"`
	VoteType   uint32       `protobuf:"varint,5,opt,name=voteType,proto3" json:"voteType,omitempty"`
}

func (x *QbftCommit) Reset() {
	*x = QbftCommit{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftCommit) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftCommit) ProtoMessage() {}

func (x *QbftCommit) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftCommit.ProtoReflect.Descriptor instead.
func (*QbftCommit) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{3}
}

func (x *QbftCommit) GetBlockID() *QbftBlockID {
	if x != nil {
		return x.BlockID
	}
	return nil
}

func (x *QbftCommit) GetPrevotes() []*QbftVote {
	if x != nil {
		return x.Prevotes
	}
	return nil
}

func (x *QbftCommit) GetPrecommits() []*QbftVote {
	if x != nil {
		return x.Precommits
	}
	return nil
}

func (x *QbftCommit) GetAggVote() *QbftAggVote {
	if x != nil {
		return x.AggVote
	}
	return nil
}

func (x *QbftCommit) GetVoteType() uint32 {
	if x != nil {
		return x.VoteType
	}
	return 0
}

type QbftBlockInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	State    *QbftState    `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"`
	Proposal *QbftProposal `protobuf:"bytes,2,opt,name=proposal,proto3" json:"proposal,omitempty"`
	Block    *QbftBlock    `protobuf:"bytes,3,opt,name=block,proto3" json:"block,omitempty"`
}

func (x *QbftBlockInfo) Reset() {
	*x = QbftBlockInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftBlockInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftBlockInfo) ProtoMessage() {}

func (x *QbftBlockInfo) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftBlockInfo.ProtoReflect.Descriptor instead.
func (*QbftBlockInfo) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{4}
}

func (x *QbftBlockInfo) GetState() *QbftState {
	if x != nil {
		return x.State
	}
	return nil
}

func (x *QbftBlockInfo) GetProposal() *QbftProposal {
	if x != nil {
		return x.Proposal
	}
	return nil
}

func (x *QbftBlockInfo) GetBlock() *QbftBlock {
	if x != nil {
		return x.Block
	}
	return nil
}

type QbftBlockSize struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MaxBytes int32 `protobuf:"varint,1,opt,name=maxBytes,proto3" json:"maxBytes,omitempty"`
	MaxTxs   int32 `protobuf:"varint,2,opt,name=maxTxs,proto3" json:"maxTxs,omitempty"`
	MaxGas   int64 `protobuf:"varint,3,opt,name=maxGas,proto3" json:"maxGas,omitempty"`
}

func (x *QbftBlockSize) Reset() {
	*x = QbftBlockSize{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftBlockSize) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftBlockSize) ProtoMessage() {}

func (x *QbftBlockSize) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftBlockSize.ProtoReflect.Descriptor instead.
func (*QbftBlockSize) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{5}
}

func (x *QbftBlockSize) GetMaxBytes() int32 {
	if x != nil {
		return x.MaxBytes
	}
	return 0
}

func (x *QbftBlockSize) GetMaxTxs() int32 {
	if x != nil {
		return x.MaxTxs
	}
	return 0
}

func (x *QbftBlockSize) GetMaxGas() int64 {
	if x != nil {
		return x.MaxGas
	}
	return 0
}

type QbftTxSize struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MaxBytes int32 `protobuf:"varint,1,opt,name=maxBytes,proto3" json:"maxBytes,omitempty"`
	MaxGas   int64 `protobuf:"varint,2,opt,name=maxGas,proto3" json:"maxGas,omitempty"`
}

func (x *QbftTxSize) Reset() {
	*x = QbftTxSize{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftTxSize) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftTxSize) ProtoMessage() {}

func (x *QbftTxSize) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftTxSize.ProtoReflect.Descriptor instead.
func (*QbftTxSize) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{6}
}

func (x *QbftTxSize) GetMaxBytes() int32 {
	if x != nil {
		return x.MaxBytes
	}
	return 0
}

func (x *QbftTxSize) GetMaxGas() int64 {
	if x != nil {
		return x.MaxGas
	}
	return 0
}

type QbftBlockGossip struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BlockPartSizeBytes int32 `protobuf:"varint,1,opt,name=blockPartSizeBytes,proto3" json:"blockPartSizeBytes,omitempty"`
}

func (x *QbftBlockGossip) Reset() {
	*x = QbftBlockGossip{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftBlockGossip) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftBlockGossip) ProtoMessage() {}

func (x *QbftBlockGossip) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftBlockGossip.ProtoReflect.Descriptor instead.
func (*QbftBlockGossip) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{7}
}

func (x *QbftBlockGossip) GetBlockPartSizeBytes() int32 {
	if x != nil {
		return x.BlockPartSizeBytes
	}
	return 0
}

type QbftEvidenceParams struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MaxAge int64 `protobuf:"varint,1,opt,name=maxAge,proto3" json:"maxAge,omitempty"`
}

func (x *QbftEvidenceParams) Reset() {
	*x = QbftEvidenceParams{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftEvidenceParams) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftEvidenceParams) ProtoMessage() {}

func (x *QbftEvidenceParams) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftEvidenceParams.ProtoReflect.Descriptor instead.
func (*QbftEvidenceParams) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{8}
}

func (x *QbftEvidenceParams) GetMaxAge() int64 {
	if x != nil {
		return x.MaxAge
	}
	return 0
}

type QbftConsensusParams struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BlockSize      *QbftBlockSize      `protobuf:"bytes,1,opt,name=blockSize,proto3" json:"blockSize,omitempty"`
	TxSize         *QbftTxSize         `protobuf:"bytes,2,opt,name=txSize,proto3" json:"txSize,omitempty"`
	BlockGossip    *QbftBlockGossip    `protobuf:"bytes,3,opt,name=blockGossip,proto3" json:"blockGossip,omitempty"`
	EvidenceParams *QbftEvidenceParams `protobuf:"bytes,4,opt,name=evidenceParams,proto3" json:"evidenceParams,omitempty"`
}

func (x *QbftConsensusParams) Reset() {
	*x = QbftConsensusParams{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftConsensusParams) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftConsensusParams) ProtoMessage() {}

func (x *QbftConsensusParams) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftConsensusParams.ProtoReflect.Descriptor instead.
func (*QbftConsensusParams) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{9}
}

func (x *QbftConsensusParams) GetBlockSize() *QbftBlockSize {
	if x != nil {
		return x.BlockSize
	}
	return nil
}

func (x *QbftConsensusParams) GetTxSize() *QbftTxSize {
	if x != nil {
		return x.TxSize
	}
	return nil
}

func (x *QbftConsensusParams) GetBlockGossip() *QbftBlockGossip {
	if x != nil {
		return x.BlockGossip
	}
	return nil
}

func (x *QbftConsensusParams) GetEvidenceParams() *QbftEvidenceParams {
	if x != nil {
		return x.EvidenceParams
	}
	return nil
}

type QbftValidator struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Address     string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	PubKey      string `protobuf:"bytes,2,opt,name=pubKey,proto3" json:"pubKey,omitempty"`
	VotingPower int64  `protobuf:"varint,3,opt,name=votingPower,proto3" json:"votingPower,omitempty"`
	Accum       int64  `protobuf:"varint,4,opt,name=accum,proto3" json:"accum,omitempty"`
}

func (x *QbftValidator) Reset() {
	*x = QbftValidator{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftValidator) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftValidator) ProtoMessage() {}

func (x *QbftValidator) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftValidator.ProtoReflect.Descriptor instead.
func (*QbftValidator) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{10}
}

func (x *QbftValidator) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *QbftValidator) GetPubKey() string {
	if x != nil {
		return x.PubKey
	}
	return ""
}

func (x *QbftValidator) GetVotingPower() int64 {
	if x != nil {
		return x.VotingPower
	}
	return 0
}

func (x *QbftValidator) GetAccum() int64 {
	if x != nil {
		return x.Accum
	}
	return 0
}

type QbftValidatorSet struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Validators []*QbftValidator `protobuf:"bytes,1,rep,name=validators,proto3" json:"validators,omitempty"`
	Proposer   *QbftValidator   `protobuf:"bytes,2,opt,name=proposer,proto3" json:"proposer,omitempty"`
}

func (x *QbftValidatorSet) Reset() {
	*x = QbftValidatorSet{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftValidatorSet) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftValidatorSet) ProtoMessage() {}

func (x *QbftValidatorSet) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftValidatorSet.ProtoReflect.Descriptor instead.
func (*QbftValidatorSet) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{11}
}

func (x *QbftValidatorSet) GetValidators() []*QbftValidator {
	if x != nil {
		return x.Validators
	}
	return nil
}

func (x *QbftValidatorSet) GetProposer() *QbftValidator {
	if x != nil {
		return x.Proposer
	}
	return nil
}

type QbftState struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChainID                          string               `protobuf:"bytes,1,opt,name=chainID,proto3" json:"chainID,omitempty"`
	LastBlockHeight                  int64                `protobuf:"varint,2,opt,name=lastBlockHeight,proto3" json:"lastBlockHeight,omitempty"`
	LastBlockTotalTx                 int64                `protobuf:"varint,3,opt,name=lastBlockTotalTx,proto3" json:"lastBlockTotalTx,omitempty"`
	LastBlockID                      *QbftBlockID         `protobuf:"bytes,4,opt,name=lastBlockID,proto3" json:"lastBlockID,omitempty"`
	LastBlockTime                    int64                `protobuf:"varint,5,opt,name=lastBlockTime,proto3" json:"lastBlockTime,omitempty"`
	Validators                       *QbftValidatorSet    `protobuf:"bytes,6,opt,name=validators,proto3" json:"validators,omitempty"`
	LastValidators                   *QbftValidatorSet    `protobuf:"bytes,7,opt,name=lastValidators,proto3" json:"lastValidators,omitempty"`
	LastHeightValidatorsChanged      int64                `protobuf:"varint,8,opt,name=lastHeightValidatorsChanged,proto3" json:"lastHeightValidatorsChanged,omitempty"`
	ConsensusParams                  *QbftConsensusParams `protobuf:"bytes,9,opt,name=consensusParams,proto3" json:"consensusParams,omitempty"`
	LastHeightConsensusParamsChanged int64                `protobuf:"varint,10,opt,name=lastHeightConsensusParamsChanged,proto3" json:"lastHeightConsensusParamsChanged,omitempty"`
	LastResultsHash                  []byte               `protobuf:"bytes,11,opt,name=lastResultsHash,proto3" json:"lastResultsHash,omitempty"`
	AppHash                          []byte               `protobuf:"bytes,12,opt,name=appHash,proto3" json:"appHash,omitempty"`
	Sequence                         int64                `protobuf:"varint,13,opt,name=sequence,proto3" json:"sequence,omitempty"`
	LastSequence                     int64                `protobuf:"varint,14,opt,name=lastSequence,proto3" json:"lastSequence,omitempty"`
	LastCommitRound                  int64                `protobuf:"varint,15,opt,name=lastCommitRound,proto3" json:"lastCommitRound,omitempty"`
}

func (x *QbftState) Reset() {
	*x = QbftState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftState) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftState) ProtoMessage() {}

func (x *QbftState) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftState.ProtoReflect.Descriptor instead.
func (*QbftState) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{12}
}

func (x *QbftState) GetChainID() string {
	if x != nil {
		return x.ChainID
	}
	return ""
}

func (x *QbftState) GetLastBlockHeight() int64 {
	if x != nil {
		return x.LastBlockHeight
	}
	return 0
}

func (x *QbftState) GetLastBlockTotalTx() int64 {
	if x != nil {
		return x.LastBlockTotalTx
	}
	return 0
}

func (x *QbftState) GetLastBlockID() *QbftBlockID {
	if x != nil {
		return x.LastBlockID
	}
	return nil
}

func (x *QbftState) GetLastBlockTime() int64 {
	if x != nil {
		return x.LastBlockTime
	}
	return 0
}

func (x *QbftState) GetValidators() *QbftValidatorSet {
	if x != nil {
		return x.Validators
	}
	return nil
}

func (x *QbftState) GetLastValidators() *QbftValidatorSet {
	if x != nil {
		return x.LastValidators
	}
	return nil
}

func (x *QbftState) GetLastHeightValidatorsChanged() int64 {
	if x != nil {
		return x.LastHeightValidatorsChanged
	}
	return 0
}

func (x *QbftState) GetConsensusParams() *QbftConsensusParams {
	if x != nil {
		return x.ConsensusParams
	}
	return nil
}

func (x *QbftState) GetLastHeightConsensusParamsChanged() int64 {
	if x != nil {
		return x.LastHeightConsensusParamsChanged
	}
	return 0
}

func (x *QbftState) GetLastResultsHash() []byte {
	if x != nil {
		return x.LastResultsHash
	}
	return nil
}

func (x *QbftState) GetAppHash() []byte {
	if x != nil {
		return x.AppHash
	}
	return nil
}

func (x *QbftState) GetSequence() int64 {
	if x != nil {
		return x.Sequence
	}
	return 0
}

func (x *QbftState) GetLastSequence() int64 {
	if x != nil {
		return x.LastSequence
	}
	return 0
}

func (x *QbftState) GetLastCommitRound() int64 {
	if x != nil {
		return x.LastCommitRound
	}
	return 0
}

type QbftBlockHeader struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChainID         string       `protobuf:"bytes,1,opt,name=chainID,proto3" json:"chainID,omitempty"`
	Height          int64        `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
	Round           int64        `protobuf:"varint,3,opt,name=round,proto3" json:"round,omitempty"`
	Time            int64        `protobuf:"varint,4,opt,name=time,proto3" json:"time,omitempty"`
	NumTxs          int64        `protobuf:"varint,5,opt,name=numTxs,proto3" json:"numTxs,omitempty"`
	LastBlockID     *QbftBlockID `protobuf:"bytes,6,opt,name=lastBlockID,proto3" json:"lastBlockID,omitempty"`
	TotalTxs        int64        `protobuf:"varint,7,opt,name=totalTxs,proto3" json:"totalTxs,omitempty"`
	LastCommitHash  []byte       `protobuf:"bytes,8,opt,name=lastCommitHash,proto3" json:"lastCommitHash,omitempty"`
	ValidatorsHash  []byte       `protobuf:"bytes,9,opt,name=validatorsHash,proto3" json:"validatorsHash,omitempty"`
	ConsensusHash   []byte       `protobuf:"bytes,10,opt,name=consensusHash,proto3" json:"consensusHash,omitempty"`
	AppHash         []byte       `protobuf:"bytes,11,opt,name=appHash,proto3" json:"appHash,omitempty"`
	LastResultsHash []byte       `protobuf:"bytes,12,opt,name=lastResultsHash,proto3" json:"lastResultsHash,omitempty"`
	ProposerAddr    []byte       `protobuf:"bytes,13,opt,name=proposerAddr,proto3" json:"proposerAddr,omitempty"`
	Sequence        int64        `protobuf:"varint,14,opt,name=sequence,proto3" json:"sequence,omitempty"`
	LastSequence    int64        `protobuf:"varint,15,opt,name=lastSequence,proto3" json:"lastSequence,omitempty"`
}

func (x *QbftBlockHeader) Reset() {
	*x = QbftBlockHeader{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftBlockHeader) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftBlockHeader) ProtoMessage() {}

func (x *QbftBlockHeader) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftBlockHeader.ProtoReflect.Descriptor instead.
func (*QbftBlockHeader) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{13}
}

func (x *QbftBlockHeader) GetChainID() string {
	if x != nil {
		return x.ChainID
	}
	return ""
}

func (x *QbftBlockHeader) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *QbftBlockHeader) GetRound() int64 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *QbftBlockHeader) GetTime() int64 {
	if x != nil {
		return x.Time
	}
	return 0
}

func (x *QbftBlockHeader) GetNumTxs() int64 {
	if x != nil {
		return x.NumTxs
	}
	return 0
}

func (x *QbftBlockHeader) GetLastBlockID() *QbftBlockID {
	if x != nil {
		return x.LastBlockID
	}
	return nil
}

func (x *QbftBlockHeader) GetTotalTxs() int64 {
	if x != nil {
		return x.TotalTxs
	}
	return 0
}

func (x *QbftBlockHeader) GetLastCommitHash() []byte {
	if x != nil {
		return x.LastCommitHash
	}
	return nil
}

func (x *QbftBlockHeader) GetValidatorsHash() []byte {
	if x != nil {
		return x.ValidatorsHash
	}
	return nil
}

func (x *QbftBlockHeader) GetConsensusHash() []byte {
	if x != nil {
		return x.ConsensusHash
	}
	return nil
}

func (x *QbftBlockHeader) GetAppHash() []byte {
	if x != nil {
		return x.AppHash
	}
	return nil
}

func (x *QbftBlockHeader) GetLastResultsHash() []byte {
	if x != nil {
		return x.LastResultsHash
	}
	return nil
}

func (x *QbftBlockHeader) GetProposerAddr() []byte {
	if x != nil {
		return x.ProposerAddr
	}
	return nil
}

func (x *QbftBlockHeader) GetSequence() int64 {
	if x != nil {
		return x.Sequence
	}
	return 0
}

func (x *QbftBlockHeader) GetLastSequence() int64 {
	if x != nil {
		return x.LastSequence
	}
	return 0
}

type QbftBlock struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header     *QbftBlockHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	Data       *types.Block     `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	LastCommit *QbftCommit      `protobuf:"bytes,4,opt,name=lastCommit,proto3" json:"lastCommit,omitempty"`
}

func (x *QbftBlock) Reset() {
	*x = QbftBlock{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftBlock) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftBlock) ProtoMessage() {}

func (x *QbftBlock) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftBlock.ProtoReflect.Descriptor instead.
func (*QbftBlock) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{14}
}

func (x *QbftBlock) GetHeader() *QbftBlockHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *QbftBlock) GetData() *types.Block {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *QbftBlock) GetLastCommit() *QbftCommit {
	if x != nil {
		return x.LastCommit
	}
	return nil
}

type QbftProposal struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height     int64        `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Round      int32        `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
	Timestamp  int64        `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	POLRound   int32        `protobuf:"varint,4,opt,name=POLRound,proto3" json:"POLRound,omitempty"`
	POLBlockID *QbftBlockID `protobuf:"bytes,5,opt,name=POLBlockID,proto3" json:"POLBlockID,omitempty"`
	Signature  []byte       `protobuf:"bytes,6,opt,name=signature,proto3" json:"signature,omitempty"`
	Blockhash  []byte       `protobuf:"bytes,7,opt,name=blockhash,proto3" json:"blockhash,omitempty"`
	Sequence   int64        `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"`
}

func (x *QbftProposal) Reset() {
	*x = QbftProposal{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftProposal) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftProposal) ProtoMessage() {}

func (x *QbftProposal) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftProposal.ProtoReflect.Descriptor instead.
func (*QbftProposal) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{15}
}

func (x *QbftProposal) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *QbftProposal) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *QbftProposal) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *QbftProposal) GetPOLRound() int32 {
	if x != nil {
		return x.POLRound
	}
	return 0
}

func (x *QbftProposal) GetPOLBlockID() *QbftBlockID {
	if x != nil {
		return x.POLBlockID
	}
	return nil
}

func (x *QbftProposal) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

func (x *QbftProposal) GetBlockhash() []byte {
	if x != nil {
		return x.Blockhash
	}
	return nil
}

func (x *QbftProposal) GetSequence() int64 {
	if x != nil {
		return x.Sequence
	}
	return 0
}

type QbftNewRoundStepMsg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height                int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Round                 int32 `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
	Step                  int32 `protobuf:"varint,3,opt,name=step,proto3" json:"step,omitempty"`
	SecondsSinceStartTime int32 `protobuf:"varint,4,opt,name=secondsSinceStartTime,proto3" json:"secondsSinceStartTime,omitempty"`
	LastCommitRound       int32 `protobuf:"varint,5,opt,name=lastCommitRound,proto3" json:"lastCommitRound,omitempty"`
}

func (x *QbftNewRoundStepMsg) Reset() {
	*x = QbftNewRoundStepMsg{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftNewRoundStepMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftNewRoundStepMsg) ProtoMessage() {}

func (x *QbftNewRoundStepMsg) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftNewRoundStepMsg.ProtoReflect.Descriptor instead.
func (*QbftNewRoundStepMsg) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{16}
}

func (x *QbftNewRoundStepMsg) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *QbftNewRoundStepMsg) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *QbftNewRoundStepMsg) GetStep() int32 {
	if x != nil {
		return x.Step
	}
	return 0
}

func (x *QbftNewRoundStepMsg) GetSecondsSinceStartTime() int32 {
	if x != nil {
		return x.SecondsSinceStartTime
	}
	return 0
}

func (x *QbftNewRoundStepMsg) GetLastCommitRound() int32 {
	if x != nil {
		return x.LastCommitRound
	}
	return 0
}

type QbftValidBlockMsg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height    int64  `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Round     int32  `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
	Blockhash []byte `protobuf:"bytes,3,opt,name=blockhash,proto3" json:"blockhash,omitempty"`
	IsCommit  bool   `protobuf:"varint,4,opt,name=isCommit,proto3" json:"isCommit,omitempty"`
}

func (x *QbftValidBlockMsg) Reset() {
	*x = QbftValidBlockMsg{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftValidBlockMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftValidBlockMsg) ProtoMessage() {}

func (x *QbftValidBlockMsg) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftValidBlockMsg.ProtoReflect.Descriptor instead.
func (*QbftValidBlockMsg) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{17}
}

func (x *QbftValidBlockMsg) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *QbftValidBlockMsg) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *QbftValidBlockMsg) GetBlockhash() []byte {
	if x != nil {
		return x.Blockhash
	}
	return nil
}

func (x *QbftValidBlockMsg) GetIsCommit() bool {
	if x != nil {
		return x.IsCommit
	}
	return false
}

type QbftProposalPOLMsg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height           int64         `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	ProposalPOLRound int32         `protobuf:"varint,2,opt,name=proposalPOLRound,proto3" json:"proposalPOLRound,omitempty"`
	ProposalPOL      *QbftBitArray `protobuf:"bytes,3,opt,name=proposalPOL,proto3" json:"proposalPOL,omitempty"`
}

func (x *QbftProposalPOLMsg) Reset() {
	*x = QbftProposalPOLMsg{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftProposalPOLMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftProposalPOLMsg) ProtoMessage() {}

func (x *QbftProposalPOLMsg) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftProposalPOLMsg.ProtoReflect.Descriptor instead.
func (*QbftProposalPOLMsg) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{18}
}

func (x *QbftProposalPOLMsg) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *QbftProposalPOLMsg) GetProposalPOLRound() int32 {
	if x != nil {
		return x.ProposalPOLRound
	}
	return 0
}

func (x *QbftProposalPOLMsg) GetProposalPOL() *QbftBitArray {
	if x != nil {
		return x.ProposalPOL
	}
	return nil
}

type QbftHasVoteMsg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Round  int32 `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
	Type   int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"`
	Index  int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"`
}

func (x *QbftHasVoteMsg) Reset() {
	*x = QbftHasVoteMsg{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftHasVoteMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftHasVoteMsg) ProtoMessage() {}

func (x *QbftHasVoteMsg) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftHasVoteMsg.ProtoReflect.Descriptor instead.
func (*QbftHasVoteMsg) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{19}
}

func (x *QbftHasVoteMsg) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *QbftHasVoteMsg) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *QbftHasVoteMsg) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *QbftHasVoteMsg) GetIndex() int32 {
	if x != nil {
		return x.Index
	}
	return 0
}

type QbftVoteSetMaj23Msg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height  int64        `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Round   int32        `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
	Type    int32        `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"`
	BlockID *QbftBlockID `protobuf:"bytes,4,opt,name=blockID,proto3" json:"blockID,omitempty"`
}

func (x *QbftVoteSetMaj23Msg) Reset() {
	*x = QbftVoteSetMaj23Msg{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftVoteSetMaj23Msg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftVoteSetMaj23Msg) ProtoMessage() {}

func (x *QbftVoteSetMaj23Msg) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftVoteSetMaj23Msg.ProtoReflect.Descriptor instead.
func (*QbftVoteSetMaj23Msg) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{20}
}

func (x *QbftVoteSetMaj23Msg) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *QbftVoteSetMaj23Msg) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *QbftVoteSetMaj23Msg) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *QbftVoteSetMaj23Msg) GetBlockID() *QbftBlockID {
	if x != nil {
		return x.BlockID
	}
	return nil
}

type QbftVoteSetBitsMsg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height  int64         `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Round   int32         `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
	Type    int32         `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"`
	BlockID *QbftBlockID  `protobuf:"bytes,4,opt,name=blockID,proto3" json:"blockID,omitempty"`
	Votes   *QbftBitArray `protobuf:"bytes,5,opt,name=votes,proto3" json:"votes,omitempty"`
}

func (x *QbftVoteSetBitsMsg) Reset() {
	*x = QbftVoteSetBitsMsg{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftVoteSetBitsMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftVoteSetBitsMsg) ProtoMessage() {}

func (x *QbftVoteSetBitsMsg) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[21]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftVoteSetBitsMsg.ProtoReflect.Descriptor instead.
func (*QbftVoteSetBitsMsg) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{21}
}

func (x *QbftVoteSetBitsMsg) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *QbftVoteSetBitsMsg) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *QbftVoteSetBitsMsg) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *QbftVoteSetBitsMsg) GetBlockID() *QbftBlockID {
	if x != nil {
		return x.BlockID
	}
	return nil
}

func (x *QbftVoteSetBitsMsg) GetVotes() *QbftBitArray {
	if x != nil {
		return x.Votes
	}
	return nil
}

type QbftHeartbeat struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ValidatorAddress []byte `protobuf:"bytes,1,opt,name=validatorAddress,proto3" json:"validatorAddress,omitempty"`
	ValidatorIndex   int32  `protobuf:"varint,2,opt,name=validatorIndex,proto3" json:"validatorIndex,omitempty"`
	Height           int64  `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
	Round            int32  `protobuf:"varint,4,opt,name=round,proto3" json:"round,omitempty"`
	Sequence         int32  `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"`
	Signature        []byte `protobuf:"bytes,6,opt,name=signature,proto3" json:"signature,omitempty"`
}

func (x *QbftHeartbeat) Reset() {
	*x = QbftHeartbeat{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftHeartbeat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftHeartbeat) ProtoMessage() {}

func (x *QbftHeartbeat) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[22]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftHeartbeat.ProtoReflect.Descriptor instead.
func (*QbftHeartbeat) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{22}
}

func (x *QbftHeartbeat) GetValidatorAddress() []byte {
	if x != nil {
		return x.ValidatorAddress
	}
	return nil
}

func (x *QbftHeartbeat) GetValidatorIndex() int32 {
	if x != nil {
		return x.ValidatorIndex
	}
	return 0
}

func (x *QbftHeartbeat) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *QbftHeartbeat) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *QbftHeartbeat) GetSequence() int32 {
	if x != nil {
		return x.Sequence
	}
	return 0
}

func (x *QbftHeartbeat) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

type QbftIsHealthy struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	IsHealthy bool `protobuf:"varint,1,opt,name=isHealthy,proto3" json:"isHealthy,omitempty"`
}

func (x *QbftIsHealthy) Reset() {
	*x = QbftIsHealthy{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftIsHealthy) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftIsHealthy) ProtoMessage() {}

func (x *QbftIsHealthy) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[23]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftIsHealthy.ProtoReflect.Descriptor instead.
func (*QbftIsHealthy) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{23}
}

func (x *QbftIsHealthy) GetIsHealthy() bool {
	if x != nil {
		return x.IsHealthy
	}
	return false
}

type QbftAggVote struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ValidatorAddress []byte        `protobuf:"bytes,1,opt,name=validatorAddress,proto3" json:"validatorAddress,omitempty"`
	ValidatorArray   *QbftBitArray `protobuf:"bytes,2,opt,name=validatorArray,proto3" json:"validatorArray,omitempty"`
	Height           int64         `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
	Round            int32         `protobuf:"varint,4,opt,name=round,proto3" json:"round,omitempty"`
	Timestamp        int64         `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Type             uint32        `protobuf:"varint,6,opt,name=type,proto3" json:"type,omitempty"`
	BlockID          *QbftBlockID  `protobuf:"bytes,7,opt,name=blockID,proto3" json:"blockID,omitempty"`
	Signature        []byte        `protobuf:"bytes,8,opt,name=signature,proto3" json:"signature,omitempty"`
}

func (x *QbftAggVote) Reset() {
	*x = QbftAggVote{}
	if protoimpl.UnsafeEnabled {
		mi := &file_qbft_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QbftAggVote) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QbftAggVote) ProtoMessage() {}

func (x *QbftAggVote) ProtoReflect() protoreflect.Message {
	mi := &file_qbft_proto_msgTypes[24]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QbftAggVote.ProtoReflect.Descriptor instead.
func (*QbftAggVote) Descriptor() ([]byte, []int) {
	return file_qbft_proto_rawDescGZIP(), []int{24}
}

func (x *QbftAggVote) GetValidatorAddress() []byte {
	if x != nil {
		return x.ValidatorAddress
	}
	return nil
}

func (x *QbftAggVote) GetValidatorArray() *QbftBitArray {
	if x != nil {
		return x.ValidatorArray
	}
	return nil
}

func (x *QbftAggVote) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *QbftAggVote) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *QbftAggVote) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *QbftAggVote) GetType() uint32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *QbftAggVote) GetBlockID() *QbftBlockID {
	if x != nil {
		return x.BlockID
	}
	return nil
}

func (x *QbftAggVote) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

var File_qbft_proto protoreflect.FileDescriptor

var file_qbft_proto_rawDesc = []byte{
	0x0a, 0x0a, 0x71, 0x62, 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x1a, 0x10, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x21, 0x0a, 0x0b, 0x51, 0x62, 0x66, 0x74, 0x42, 0x6c, 0x6f,
	0x63, 0x6b, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x38, 0x0a, 0x0c, 0x51, 0x62, 0x66, 0x74,
	0x42, 0x69, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x69, 0x74, 0x73,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x62, 0x69, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05,
	0x65, 0x6c, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x65, 0x6c, 0x65,
	0x6d, 0x73, 0x22, 0xa8, 0x02, 0x0a, 0x08, 0x51, 0x62, 0x66, 0x74, 0x56, 0x6f, 0x74, 0x65, 0x12,
	0x2a, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72,
	0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64,
	0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x76,
	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72,
	0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e,
	0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12,
	0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66,
	0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49,
	0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12,
	0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x41, 0x67, 0x67, 0x53, 0x69, 0x67, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x09, 0x75, 0x73, 0x65, 0x41, 0x67, 0x67, 0x53, 0x69, 0x67, 0x22, 0xe2, 0x01,
	0x0a, 0x0a, 0x51, 0x62, 0x66, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x07,
	0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49,
	0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x2b, 0x0a, 0x08, 0x70, 0x72,
	0x65, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x08, 0x70,
	0x72, 0x65, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x63, 0x6f,
	0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x0a, 0x70, 0x72,
	0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x67, 0x67, 0x56,
	0x6f, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x41, 0x67, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x07, 0x61,
	0x67, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x6f, 0x74, 0x65, 0x54, 0x79,
	0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x76, 0x6f, 0x74, 0x65, 0x54, 0x79,
	0x70, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x0d, 0x51, 0x62, 0x66, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x08,
	0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f,
	0x73, 0x61, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x26, 0x0a,
	0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x05,
	0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x5b, 0x0a, 0x0d, 0x51, 0x62, 0x66, 0x74, 0x42, 0x6c, 0x6f,
	0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74,
	0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74,
	0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x54, 0x78, 0x73, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x54, 0x78, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61,
	0x78, 0x47, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x47,
	0x61, 0x73, 0x22, 0x40, 0x0a, 0x0a, 0x51, 0x62, 0x66, 0x74, 0x54, 0x78, 0x53, 0x69, 0x7a, 0x65,
	0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06,
	0x6d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61,
	0x78, 0x47, 0x61, 0x73, 0x22, 0x41, 0x0a, 0x0f, 0x51, 0x62, 0x66, 0x74, 0x42, 0x6c, 0x6f, 0x63,
	0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b,
	0x50, 0x61, 0x72, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x74, 0x53, 0x69,
	0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x12, 0x51, 0x62, 0x66, 0x74, 0x45,
	0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x16, 0x0a,
	0x06, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d,
	0x61, 0x78, 0x41, 0x67, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x13, 0x51, 0x62, 0x66, 0x74, 0x43, 0x6f,
	0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x32, 0x0a,
	0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x42, 0x6c, 0x6f,
	0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a,
	0x65, 0x12, 0x29, 0x0a, 0x06, 0x74, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x54, 0x78,
	0x53, 0x69, 0x7a, 0x65, 0x52, 0x06, 0x74, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x38, 0x0a, 0x0b,
	0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x42, 0x6c,
	0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b,
	0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x12, 0x41, 0x0a, 0x0e, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e,
	0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x45, 0x76, 0x69, 0x64, 0x65,
	0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0e, 0x65, 0x76, 0x69, 0x64, 0x65,
	0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x79, 0x0a, 0x0d, 0x51, 0x62, 0x66,
	0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64,
	0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64,
	0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b,
	0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0b, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x14,
	0x0a, 0x05, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x61,
	0x63, 0x63, 0x75, 0x6d, 0x22, 0x7a, 0x0a, 0x10, 0x51, 0x62, 0x66, 0x74, 0x56, 0x61, 0x6c, 0x69,
	0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69,
	0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
	0x6f, 0x72, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x30,
	0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x56, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72,
	0x22, 0xd3, 0x05, 0x0a, 0x09, 0x51, 0x62, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18,
	0x0a, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74,
	0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67,
	0x68, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54,
	0x6f, 0x74, 0x61, 0x6c, 0x54, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x61,
	0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x78, 0x12, 0x34,
	0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74,
	0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f,
	0x63, 0x6b, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63,
	0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x73,
	0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64,
	0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x74, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
	0x6f, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64,
	0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f,
	0x72, 0x53, 0x65, 0x74, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
	0x74, 0x6f, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x1b, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67,
	0x68, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x6c, 0x61, 0x73, 0x74, 0x48,
	0x65, 0x69, 0x67, 0x68, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x43,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x44, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e,
	0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1a, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x43, 0x6f, 0x6e, 0x73,
	0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6e,
	0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4a, 0x0a, 0x20,
	0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e,
	0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x20, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67,
	0x68, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d,
	0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74,
	0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x61,
	0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08,
	0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08,
	0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74,
	0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
	0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f,
	0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18,
	0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
	0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0xf5, 0x03, 0x0a, 0x0f, 0x51, 0x62, 0x66, 0x74, 0x42,
	0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68,
	0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61,
	0x69, 0x6e, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05,
	0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x6f, 0x75,
	0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x54, 0x78, 0x73,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x54, 0x78, 0x73, 0x12, 0x34,
	0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74,
	0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f,
	0x63, 0x6b, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x78, 0x73,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x78, 0x73,
	0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x48, 0x61,
	0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f,
	0x6d, 0x6d, 0x69, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69,
	0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68,
	0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x48, 0x61, 0x73,
	0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73,
	0x75, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73,
	0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68,
	0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48,
	0x61, 0x73, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72,
	0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1a,
	0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x61,
	0x73, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x90,
	0x01, 0x0a, 0x09, 0x51, 0x62, 0x66, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x2e, 0x0a, 0x06,
	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x04,
	0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x31,
	0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x43,
	0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
	0x74, 0x22, 0x82, 0x02, 0x0a, 0x0c, 0x51, 0x62, 0x66, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73,
	0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f,
	0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64,
	0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a,
	0x0a, 0x08, 0x50, 0x4f, 0x4c, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x08, 0x50, 0x4f, 0x4c, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x0a, 0x50, 0x4f,
	0x4c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
	0x49, 0x44, 0x52, 0x0a, 0x50, 0x4f, 0x4c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x1c,
	0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09,
	0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65,
	0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65,
	0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x13, 0x51, 0x62, 0x66, 0x74, 0x4e,
	0x65, 0x77, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x74, 0x65, 0x70, 0x4d, 0x73, 0x67, 0x12, 0x16,
	0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
	0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04,
	0x73, 0x74, 0x65, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70,
	0x12, 0x34, 0x0a, 0x15, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65,
	0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x15, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61,
	0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f,
	0x6d, 0x6d, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0f, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64,
	0x22, 0x7b, 0x0a, 0x11, 0x51, 0x62, 0x66, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x6c, 0x6f,
	0x63, 0x6b, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a,
	0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f,
	0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x61, 0x73, 0x68,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x61, 0x73,
	0x68, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0x8f, 0x01,
	0x0a, 0x12, 0x51, 0x62, 0x66, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x50, 0x4f,
	0x4c, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x0a, 0x10,
	0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x50, 0x4f, 0x4c, 0x52, 0x6f, 0x75, 0x6e, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c,
	0x50, 0x4f, 0x4c, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70,
	0x6f, 0x73, 0x61, 0x6c, 0x50, 0x4f, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x42, 0x69, 0x74, 0x41, 0x72, 0x72,
	0x61, 0x79, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x50, 0x4f, 0x4c, 0x22,
	0x68, 0x0a, 0x0e, 0x51, 0x62, 0x66, 0x74, 0x48, 0x61, 0x73, 0x56, 0x6f, 0x74, 0x65, 0x4d, 0x73,
	0x67, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75,
	0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12,
	0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x85, 0x01, 0x0a, 0x13, 0x51, 0x62,
	0x66, 0x74, 0x56, 0x6f, 0x74, 0x65, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x6a, 0x32, 0x33, 0x4d, 0x73,
	0x67, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75,
	0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12,
	0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66,
	0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49,
	0x44, 0x22, 0xaf, 0x01, 0x0a, 0x12, 0x51, 0x62, 0x66, 0x74, 0x56, 0x6f, 0x74, 0x65, 0x53, 0x65,
	0x74, 0x42, 0x69, 0x74, 0x73, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67,
	0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
	0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x62, 0x6c,
	0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52,
	0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65,
	0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x51, 0x62, 0x66, 0x74, 0x42, 0x69, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x05, 0x76, 0x6f,
	0x74, 0x65, 0x73, 0x22, 0xcb, 0x01, 0x0a, 0x0d, 0x51, 0x62, 0x66, 0x74, 0x48, 0x65, 0x61, 0x72,
	0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
	0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
	0x73, 0x12, 0x26, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64,
	0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69,
	0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65,
	0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65,
	0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x22, 0x2d, 0x0a, 0x0d, 0x51, 0x62, 0x66, 0x74, 0x49, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74,
	0x68, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79,
	0x22, 0xa2, 0x02, 0x0a, 0x0b, 0x51, 0x62, 0x66, 0x74, 0x41, 0x67, 0x67, 0x56, 0x6f, 0x74, 0x65,
	0x12, 0x2a, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64,
	0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69,
	0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3b, 0x0a, 0x0e,
	0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x72, 0x61, 0x79, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x51, 0x62, 0x66,
	0x74, 0x42, 0x69, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64,
	0x61, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69,
	0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x62, 0x6c, 0x6f,
	0x63, 0x6b, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x51, 0x62, 0x66, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07,
	0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_qbft_proto_rawDescOnce sync.Once
	file_qbft_proto_rawDescData = file_qbft_proto_rawDesc
)

func file_qbft_proto_rawDescGZIP() []byte {
	file_qbft_proto_rawDescOnce.Do(func() {
		file_qbft_proto_rawDescData = protoimpl.X.CompressGZIP(file_qbft_proto_rawDescData)
	})
	return file_qbft_proto_rawDescData
}

var file_qbft_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
var file_qbft_proto_goTypes = []interface{}{
	(*QbftBlockID)(nil),         // 0: types.QbftBlockID
	(*QbftBitArray)(nil),        // 1: types.QbftBitArray
	(*QbftVote)(nil),            // 2: types.QbftVote
	(*QbftCommit)(nil),          // 3: types.QbftCommit
	(*QbftBlockInfo)(nil),       // 4: types.QbftBlockInfo
	(*QbftBlockSize)(nil),       // 5: types.QbftBlockSize
	(*QbftTxSize)(nil),          // 6: types.QbftTxSize
	(*QbftBlockGossip)(nil),     // 7: types.QbftBlockGossip
	(*QbftEvidenceParams)(nil),  // 8: types.QbftEvidenceParams
	(*QbftConsensusParams)(nil), // 9: types.QbftConsensusParams
	(*QbftValidator)(nil),       // 10: types.QbftValidator
	(*QbftValidatorSet)(nil),    // 11: types.QbftValidatorSet
	(*QbftState)(nil),           // 12: types.QbftState
	(*QbftBlockHeader)(nil),     // 13: types.QbftBlockHeader
	(*QbftBlock)(nil),           // 14: types.QbftBlock
	(*QbftProposal)(nil),        // 15: types.QbftProposal
	(*QbftNewRoundStepMsg)(nil), // 16: types.QbftNewRoundStepMsg
	(*QbftValidBlockMsg)(nil),   // 17: types.QbftValidBlockMsg
	(*QbftProposalPOLMsg)(nil),  // 18: types.QbftProposalPOLMsg
	(*QbftHasVoteMsg)(nil),      // 19: types.QbftHasVoteMsg
	(*QbftVoteSetMaj23Msg)(nil), // 20: types.QbftVoteSetMaj23Msg
	(*QbftVoteSetBitsMsg)(nil),  // 21: types.QbftVoteSetBitsMsg
	(*QbftHeartbeat)(nil),       // 22: types.QbftHeartbeat
	(*QbftIsHealthy)(nil),       // 23: types.QbftIsHealthy
	(*QbftAggVote)(nil),         // 24: types.QbftAggVote
	(*types.Block)(nil),         // 25: types.Block
}
var file_qbft_proto_depIdxs = []int32{
	0,  // 0: types.QbftVote.blockID:type_name -> types.QbftBlockID
	0,  // 1: types.QbftCommit.blockID:type_name -> types.QbftBlockID
	2,  // 2: types.QbftCommit.prevotes:type_name -> types.QbftVote
	2,  // 3: types.QbftCommit.precommits:type_name -> types.QbftVote
	24, // 4: types.QbftCommit.aggVote:type_name -> types.QbftAggVote
	12, // 5: types.QbftBlockInfo.state:type_name -> types.QbftState
	15, // 6: types.QbftBlockInfo.proposal:type_name -> types.QbftProposal
	14, // 7: types.QbftBlockInfo.block:type_name -> types.QbftBlock
	5,  // 8: types.QbftConsensusParams.blockSize:type_name -> types.QbftBlockSize
	6,  // 9: types.QbftConsensusParams.txSize:type_name -> types.QbftTxSize
	7,  // 10: types.QbftConsensusParams.blockGossip:type_name -> types.QbftBlockGossip
	8,  // 11: types.QbftConsensusParams.evidenceParams:type_name -> types.QbftEvidenceParams
	10, // 12: types.QbftValidatorSet.validators:type_name -> types.QbftValidator
	10, // 13: types.QbftValidatorSet.proposer:type_name -> types.QbftValidator
	0,  // 14: types.QbftState.lastBlockID:type_name -> types.QbftBlockID
	11, // 15: types.QbftState.validators:type_name -> types.QbftValidatorSet
	11, // 16: types.QbftState.lastValidators:type_name -> types.QbftValidatorSet
	9,  // 17: types.QbftState.consensusParams:type_name -> types.QbftConsensusParams
	0,  // 18: types.QbftBlockHeader.lastBlockID:type_name -> types.QbftBlockID
	13, // 19: types.QbftBlock.header:type_name -> types.QbftBlockHeader
	25, // 20: types.QbftBlock.data:type_name -> types.Block
	3,  // 21: types.QbftBlock.lastCommit:type_name -> types.QbftCommit
	0,  // 22: types.QbftProposal.POLBlockID:type_name -> types.QbftBlockID
	1,  // 23: types.QbftProposalPOLMsg.proposalPOL:type_name -> types.QbftBitArray
	0,  // 24: types.QbftVoteSetMaj23Msg.blockID:type_name -> types.QbftBlockID
	0,  // 25: types.QbftVoteSetBitsMsg.blockID:type_name -> types.QbftBlockID
	1,  // 26: types.QbftVoteSetBitsMsg.votes:type_name -> types.QbftBitArray
	1,  // 27: types.QbftAggVote.validatorArray:type_name -> types.QbftBitArray
	0,  // 28: types.QbftAggVote.blockID:type_name -> types.QbftBlockID
	29, // [29:29] is the sub-list for method output_type
	29, // [29:29] is the sub-list for method input_type
	29, // [29:29] is the sub-list for extension type_name
	29, // [29:29] is the sub-list for extension extendee
	0,  // [0:29] is the sub-list for field type_name
}

func init() { file_qbft_proto_init() }
func file_qbft_proto_init() {
	if File_qbft_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_qbft_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftBlockID); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftBitArray); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftVote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftCommit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftBlockInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftBlockSize); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftTxSize); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftBlockGossip); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftEvidenceParams); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftConsensusParams); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftValidator); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftValidatorSet); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftBlockHeader); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftBlock); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftProposal); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftNewRoundStepMsg); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftValidBlockMsg); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftProposalPOLMsg); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftHasVoteMsg); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftVoteSetMaj23Msg); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftVoteSetBitsMsg); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftHeartbeat); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftIsHealthy); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_qbft_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QbftAggVote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_qbft_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   25,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_qbft_proto_goTypes,
		DependencyIndexes: file_qbft_proto_depIdxs,
		MessageInfos:      file_qbft_proto_msgTypes,
	}.Build()
	File_qbft_proto = out.File
	file_qbft_proto_rawDesc = nil
	file_qbft_proto_goTypes = nil
	file_qbft_proto_depIdxs = nil
}
