diff --git a/blockchain/msgs_test.go b/blockchain/msgs_test.go index 7c308f9657..3a608430e8 100644 --- a/blockchain/msgs_test.go +++ b/blockchain/msgs_test.go @@ -97,7 +97,7 @@ func TestBlockchainMessageVectors(t *testing.T) { BlockRequest: &bcproto.BlockRequest{Height: math.MaxInt64}}}, "0a0a08ffffffffffffffff7f"}, {"BlockResponseMessage", &bcproto.Message{Sum: &bcproto.Message_BlockResponse{ - BlockResponse: &bcproto.BlockResponse{Block: bpb}}}, "1ac0020abd020a5b0a02080b1803220b088092b8c398feffffff012a0212003a204c149a7cfadc92b669b0cbfa4951a1b18c2d9f3177a3b8756d39ebb96e9d63316a20e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85512130a0b48656c6c6f20576f726c6412001a0022001ac8010a3000000000000000010000000000000001b81cb5596c28d044214b9f935e4af7dbe76e417f6182d86fbee68bfff7b2ff3a0a30ffffffffffffffffffffffffffffffffc4096ba8fccf882c309896e9168fa43fe62fccb752cb12d5160cc1d9c2ebffe7123000000000000000010000000000000001b81cb5596c28d044214b9f935e4af7dbe76e417f6182d86fbee68bfff7b2ff3a1230ffffffffffffffffffffffffffffffffc4096ba8fccf882c309896e9168fa43fe62fccb752cb12d5160cc1d9c2ebffe7"}, + BlockResponse: &bcproto.BlockResponse{Block: bpb}}}, "1ac2020abf020a5d0a02080b1803220b088092b8c398feffffff012a021200380142204c149a7cfadc92b669b0cbfa4951a1b18c2d9f3177a3b8756d39ebb96e9d63317220e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85512130a0b48656c6c6f20576f726c6412001a0022001ac8010a3000000000000000010000000000000001b81cb5596c28d044214b9f935e4af7dbe76e417f6182d86fbee68bfff7b2ff3a0a30ffffffffffffffffffffffffffffffffc4096ba8fccf882c309896e9168fa43fe62fccb752cb12d5160cc1d9c2ebffe7123000000000000000010000000000000001b81cb5596c28d044214b9f935e4af7dbe76e417f6182d86fbee68bfff7b2ff3a1230ffffffffffffffffffffffffffffffffc4096ba8fccf882c309896e9168fa43fe62fccb752cb12d5160cc1d9c2ebffe7"}, {"NoBlockResponseMessage", &bcproto.Message{Sum: &bcproto.Message_NoBlockResponse{ NoBlockResponse: &bcproto.NoBlockResponse{Height: 1}}}, "12020801"}, {"NoBlockResponseMessage", &bcproto.Message{Sum: &bcproto.Message_NoBlockResponse{ diff --git a/node/node_test.go b/node/node_test.go index 1ae6c9dd66..ab2916819c 100644 --- a/node/node_test.go +++ b/node/node_test.go @@ -480,6 +480,7 @@ func TestMaxProposalBlockSize(t *testing.T) { // this ensures that the header is at max size block.Header.Time = timestamp + block.Header.NumOriginalDataShares = math.MaxInt64 pb, err := block.ToProto() require.NoError(t, err) diff --git a/proto/tendermint/types/types.pb.go b/proto/tendermint/types/types.pb.go index f3202f8bf6..54bee89246 100644 --- a/proto/tendermint/types/types.pb.go +++ b/proto/tendermint/types/types.pb.go @@ -271,17 +271,18 @@ type Header struct { // prev block info LastBlockId BlockID `protobuf:"bytes,5,opt,name=last_block_id,json=lastBlockId,proto3" json:"last_block_id"` // hashes of block data - LastCommitHash []byte `protobuf:"bytes,6,opt,name=last_commit_hash,json=lastCommitHash,proto3" json:"last_commit_hash,omitempty"` - DataHash []byte `protobuf:"bytes,7,opt,name=data_hash,json=dataHash,proto3" json:"data_hash,omitempty"` + LastCommitHash []byte `protobuf:"bytes,6,opt,name=last_commit_hash,json=lastCommitHash,proto3" json:"last_commit_hash,omitempty"` + NumOriginalDataShares int64 `protobuf:"varint,7,opt,name=num_original_data_shares,json=numOriginalDataShares,proto3" json:"num_original_data_shares,omitempty"` + DataHash []byte `protobuf:"bytes,8,opt,name=data_hash,json=dataHash,proto3" json:"data_hash,omitempty"` // hashes from the app output from the prev block - ValidatorsHash []byte `protobuf:"bytes,8,opt,name=validators_hash,json=validatorsHash,proto3" json:"validators_hash,omitempty"` - NextValidatorsHash []byte `protobuf:"bytes,9,opt,name=next_validators_hash,json=nextValidatorsHash,proto3" json:"next_validators_hash,omitempty"` - ConsensusHash []byte `protobuf:"bytes,10,opt,name=consensus_hash,json=consensusHash,proto3" json:"consensus_hash,omitempty"` - AppHash []byte `protobuf:"bytes,11,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` - LastResultsHash []byte `protobuf:"bytes,12,opt,name=last_results_hash,json=lastResultsHash,proto3" json:"last_results_hash,omitempty"` + ValidatorsHash []byte `protobuf:"bytes,9,opt,name=validators_hash,json=validatorsHash,proto3" json:"validators_hash,omitempty"` + NextValidatorsHash []byte `protobuf:"bytes,10,opt,name=next_validators_hash,json=nextValidatorsHash,proto3" json:"next_validators_hash,omitempty"` + ConsensusHash []byte `protobuf:"bytes,11,opt,name=consensus_hash,json=consensusHash,proto3" json:"consensus_hash,omitempty"` + AppHash []byte `protobuf:"bytes,12,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` + LastResultsHash []byte `protobuf:"bytes,13,opt,name=last_results_hash,json=lastResultsHash,proto3" json:"last_results_hash,omitempty"` // consensus info - EvidenceHash []byte `protobuf:"bytes,13,opt,name=evidence_hash,json=evidenceHash,proto3" json:"evidence_hash,omitempty"` - ProposerAddress []byte `protobuf:"bytes,14,opt,name=proposer_address,json=proposerAddress,proto3" json:"proposer_address,omitempty"` + EvidenceHash []byte `protobuf:"bytes,14,opt,name=evidence_hash,json=evidenceHash,proto3" json:"evidence_hash,omitempty"` + ProposerAddress []byte `protobuf:"bytes,15,opt,name=proposer_address,json=proposerAddress,proto3" json:"proposer_address,omitempty"` } func (m *Header) Reset() { *m = Header{} } @@ -359,6 +360,13 @@ func (m *Header) GetLastCommitHash() []byte { return nil } +func (m *Header) GetNumOriginalDataShares() int64 { + if m != nil { + return m.NumOriginalDataShares + } + return 0 +} + func (m *Header) GetDataHash() []byte { if m != nil { return m.DataHash @@ -1584,122 +1592,124 @@ func init() { func init() { proto.RegisterFile("tendermint/types/types.proto", fileDescriptor_d3a6e55e2345de56) } var fileDescriptor_d3a6e55e2345de56 = []byte{ - // 1825 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4b, 0x6f, 0x1b, 0xc9, - 0x11, 0xd6, 0xf0, 0x21, 0x0e, 0x8b, 0xa4, 0x44, 0x75, 0x64, 0x99, 0xa2, 0x6d, 0x8a, 0x99, 0x3c, - 0x56, 0xfb, 0xa2, 0x1c, 0x6f, 0x10, 0x24, 0xc0, 0x66, 0xb1, 0xa4, 0xa4, 0xb5, 0x99, 0xd5, 0x83, - 0x18, 0x6a, 0x95, 0xc7, 0x65, 0xd0, 0xe4, 0xb4, 0xc9, 0x89, 0x87, 0x33, 0x83, 0xe9, 0xa6, 0x2c, - 0xf9, 0x98, 0xd3, 0x42, 0x27, 0x9f, 0x72, 0xd3, 0x29, 0x39, 0xe4, 0x77, 0xe4, 0xb4, 0x97, 0x00, - 0x7b, 0x4b, 0x2e, 0x71, 0x12, 0x39, 0x08, 0xf2, 0x33, 0x82, 0x7e, 0xcc, 0x70, 0x28, 0x92, 0xce, - 0xc2, 0x10, 0xf6, 0x42, 0x4c, 0x57, 0x7d, 0xd5, 0x5d, 0x55, 0x5d, 0xaf, 0x26, 0xdc, 0x67, 0xc4, - 0xb3, 0x49, 0x38, 0x72, 0x3c, 0xb6, 0xc3, 0x2e, 0x02, 0x42, 0xe5, 0x6f, 0x23, 0x08, 0x7d, 0xe6, - 0xa3, 0xf2, 0x84, 0xdb, 0x10, 0xf4, 0xea, 0xfa, 0xc0, 0x1f, 0xf8, 0x82, 0xb9, 0xc3, 0xbf, 0x24, - 0xae, 0xba, 0x35, 0xf0, 0xfd, 0x81, 0x4b, 0x76, 0xc4, 0xaa, 0x37, 0x7e, 0xba, 0xc3, 0x9c, 0x11, - 0xa1, 0x0c, 0x8f, 0x02, 0x05, 0x78, 0x90, 0x38, 0xa6, 0x1f, 0x5e, 0x04, 0xcc, 0xe7, 0x58, 0xff, - 0xa9, 0x62, 0xd7, 0x12, 0xec, 0x33, 0x12, 0x52, 0xc7, 0xf7, 0x92, 0x7a, 0x54, 0xeb, 0x33, 0x5a, - 0x9e, 0x61, 0xd7, 0xb1, 0x31, 0xf3, 0x43, 0x89, 0x30, 0x7e, 0x06, 0xa5, 0x0e, 0x0e, 0x59, 0x97, - 0xb0, 0x27, 0x04, 0xdb, 0x24, 0x44, 0xeb, 0x90, 0x65, 0x3e, 0xc3, 0x6e, 0x45, 0xab, 0x6b, 0xdb, - 0x25, 0x53, 0x2e, 0x10, 0x82, 0xcc, 0x10, 0xd3, 0x61, 0x25, 0x55, 0xd7, 0xb6, 0x8b, 0xa6, 0xf8, - 0x36, 0x86, 0x90, 0xe1, 0xa2, 0x5c, 0xc2, 0xf1, 0x6c, 0x72, 0x1e, 0x49, 0x88, 0x05, 0xa7, 0xf6, - 0x2e, 0x18, 0xa1, 0x4a, 0x44, 0x2e, 0xd0, 0x8f, 0x21, 0x2b, 0xf4, 0xaf, 0xa4, 0xeb, 0xda, 0x76, - 0xe1, 0x51, 0xa5, 0x91, 0x70, 0x94, 0xb4, 0xaf, 0xd1, 0xe1, 0xfc, 0x56, 0xe6, 0xab, 0x57, 0x5b, - 0x4b, 0xa6, 0x04, 0x1b, 0x2e, 0xe4, 0x5a, 0xae, 0xdf, 0x7f, 0xd6, 0xde, 0x8b, 0x15, 0xd1, 0x26, - 0x8a, 0xa0, 0x43, 0x58, 0x0d, 0x70, 0xc8, 0x2c, 0x4a, 0x98, 0x35, 0x14, 0x56, 0x88, 0x43, 0x0b, - 0x8f, 0xb6, 0x1a, 0x37, 0xef, 0xa1, 0x31, 0x65, 0xac, 0x3a, 0xa5, 0x14, 0x24, 0x89, 0xc6, 0x7f, - 0x32, 0xb0, 0xac, 0x9c, 0xf1, 0x73, 0xc8, 0x29, 0xb7, 0x8a, 0x03, 0x0b, 0x8f, 0x1e, 0x24, 0x77, - 0x54, 0xac, 0xc6, 0xae, 0xef, 0x51, 0xe2, 0xd1, 0x31, 0x55, 0xfb, 0x45, 0x32, 0xe8, 0x87, 0xa0, - 0xf7, 0x87, 0xd8, 0xf1, 0x2c, 0xc7, 0x16, 0x1a, 0xe5, 0x5b, 0x85, 0xeb, 0x57, 0x5b, 0xb9, 0x5d, - 0x4e, 0x6b, 0xef, 0x99, 0x39, 0xc1, 0x6c, 0xdb, 0x68, 0x03, 0x96, 0x87, 0xc4, 0x19, 0x0c, 0x99, - 0x70, 0x4b, 0xda, 0x54, 0x2b, 0xf4, 0x53, 0xc8, 0xf0, 0x80, 0xa8, 0x64, 0xc4, 0xd9, 0xd5, 0x86, - 0x8c, 0x96, 0x46, 0x14, 0x2d, 0x8d, 0x93, 0x28, 0x5a, 0x5a, 0x3a, 0x3f, 0xf8, 0xe5, 0x3f, 0xb6, - 0x34, 0x53, 0x48, 0xa0, 0x5d, 0x28, 0xb9, 0x98, 0x32, 0xab, 0xc7, 0xdd, 0xc6, 0x8f, 0xcf, 0x8a, - 0x2d, 0x36, 0x67, 0x1d, 0xa2, 0x1c, 0xab, 0x54, 0x2f, 0x70, 0x29, 0x49, 0xb2, 0xd1, 0x36, 0x94, - 0xc5, 0x26, 0x7d, 0x7f, 0x34, 0x72, 0x98, 0x25, 0xfc, 0xbe, 0x2c, 0xfc, 0xbe, 0xc2, 0xe9, 0xbb, - 0x82, 0xfc, 0x84, 0xdf, 0xc0, 0x3d, 0xc8, 0xdb, 0x98, 0x61, 0x09, 0xc9, 0x09, 0x88, 0xce, 0x09, - 0x82, 0xf9, 0x0e, 0xac, 0xc6, 0x51, 0x47, 0x25, 0x44, 0x97, 0xbb, 0x4c, 0xc8, 0x02, 0xf8, 0x10, - 0xd6, 0x3d, 0x72, 0xce, 0xac, 0x9b, 0xe8, 0xbc, 0x40, 0x23, 0xce, 0x3b, 0x9d, 0x96, 0xf8, 0x01, - 0xac, 0xf4, 0x23, 0xe7, 0x4b, 0x2c, 0x08, 0x6c, 0x29, 0xa6, 0x0a, 0xd8, 0x26, 0xe8, 0x38, 0x08, - 0x24, 0xa0, 0x20, 0x00, 0x39, 0x1c, 0x04, 0x82, 0xf5, 0x1e, 0xac, 0x09, 0x1b, 0x43, 0x42, 0xc7, - 0x2e, 0x53, 0x9b, 0x14, 0x05, 0x66, 0x95, 0x33, 0x4c, 0x49, 0x17, 0xd8, 0xef, 0x41, 0x89, 0x9c, - 0x39, 0x36, 0xf1, 0xfa, 0x44, 0xe2, 0x4a, 0x02, 0x57, 0x8c, 0x88, 0x02, 0xf4, 0x2e, 0x94, 0x83, - 0xd0, 0x0f, 0x7c, 0x4a, 0x42, 0x0b, 0xdb, 0x76, 0x48, 0x28, 0xad, 0xac, 0xc8, 0xfd, 0x22, 0x7a, - 0x53, 0x92, 0x8d, 0xdf, 0xa5, 0x20, 0xb3, 0x87, 0x19, 0x46, 0x65, 0x48, 0xb3, 0x73, 0x5a, 0xd1, - 0xea, 0xe9, 0xed, 0xa2, 0xc9, 0x3f, 0xd1, 0x10, 0x2a, 0x8e, 0xc7, 0x48, 0x38, 0x22, 0xb6, 0x83, - 0x19, 0xb1, 0x28, 0xe3, 0xbf, 0xa1, 0xef, 0x33, 0xaa, 0x62, 0x7b, 0x7b, 0xf6, 0x2a, 0xdb, 0x09, - 0x89, 0x2e, 0x17, 0x30, 0x39, 0x5e, 0xdd, 0xec, 0x86, 0x33, 0x97, 0x8b, 0x3e, 0x05, 0x3d, 0xd2, - 0x5f, 0x25, 0x65, 0x6d, 0x76, 0xe7, 0x7d, 0x85, 0x38, 0x70, 0x28, 0x53, 0xfb, 0xc5, 0x52, 0xe8, - 0x63, 0xd0, 0x47, 0x84, 0x52, 0x3c, 0x20, 0x34, 0x8e, 0xd4, 0x99, 0x1d, 0x0e, 0x15, 0x22, 0x92, - 0x8e, 0x24, 0x8c, 0x7f, 0x6b, 0xa0, 0x47, 0xdb, 0x23, 0x0c, 0x77, 0xed, 0x71, 0xe0, 0x3a, 0x7d, - 0x6e, 0xed, 0x99, 0xcf, 0x88, 0x15, 0xeb, 0x26, 0xf3, 0xef, 0x9d, 0xd9, 0x9d, 0xf7, 0x22, 0x81, - 0x53, 0x9f, 0x91, 0x68, 0xa7, 0x27, 0x4b, 0xe6, 0x1d, 0x7b, 0x1e, 0x03, 0x79, 0x70, 0xdf, 0xe5, - 0xc9, 0x65, 0xf5, 0x5d, 0x87, 0x78, 0xcc, 0xc2, 0x8c, 0xe1, 0xfe, 0xb3, 0xc9, 0x39, 0xd2, 0xbb, - 0xef, 0xcf, 0x9e, 0x73, 0xc0, 0xa5, 0x76, 0x85, 0x50, 0x53, 0xc8, 0x24, 0xce, 0xda, 0x74, 0x17, - 0x31, 0x5b, 0x59, 0x48, 0xd3, 0xf1, 0xc8, 0x78, 0x99, 0x82, 0x3b, 0x73, 0x35, 0x45, 0x1f, 0xc2, - 0xb2, 0xb0, 0x14, 0x2b, 0x13, 0x37, 0x66, 0x8f, 0xe6, 0x78, 0x33, 0xcb, 0x51, 0xcd, 0x18, 0xde, - 0x53, 0x9a, 0xbe, 0x11, 0xde, 0x42, 0x1f, 0x00, 0x12, 0x15, 0x9c, 0x7b, 0xd3, 0xf1, 0x06, 0x56, - 0xe0, 0x3f, 0x27, 0xa1, 0x2a, 0x33, 0x65, 0xc1, 0x39, 0x15, 0x8c, 0x0e, 0xa7, 0x4f, 0xa5, 0xaa, - 0x82, 0x66, 0x04, 0x74, 0x92, 0xaa, 0x12, 0xd8, 0x82, 0x7c, 0xdc, 0xaa, 0x54, 0x6d, 0xf9, 0x66, - 0xe5, 0x69, 0x22, 0x66, 0xfc, 0x25, 0x05, 0x9b, 0x0b, 0x9d, 0x8a, 0xda, 0xb0, 0xd6, 0xf7, 0xbd, - 0xa7, 0xae, 0xd3, 0x17, 0x7a, 0x8b, 0x42, 0xa6, 0x3c, 0x74, 0x7f, 0xc1, 0xe5, 0x88, 0xba, 0x65, - 0x96, 0x13, 0x62, 0x82, 0xc2, 0xf3, 0x96, 0x97, 0x30, 0xdf, 0xb3, 0x54, 0x95, 0x4d, 0x09, 0x9b, - 0x8a, 0x92, 0xf8, 0x44, 0xd6, 0xda, 0x23, 0x58, 0xef, 0x5d, 0xbc, 0xc0, 0x1e, 0x73, 0x3c, 0x92, - 0xa8, 0x40, 0x95, 0x74, 0x3d, 0xbd, 0x5d, 0x78, 0x74, 0x6f, 0x8e, 0x97, 0x23, 0x8c, 0xf9, 0x9d, - 0x58, 0x70, 0x52, 0x9e, 0x16, 0x38, 0x3e, 0xb3, 0xc0, 0xf1, 0xb7, 0xe1, 0xcf, 0x03, 0x28, 0x26, - 0xf3, 0x94, 0xe7, 0x65, 0x22, 0x7b, 0xd2, 0xf3, 0xf3, 0x32, 0x8e, 0xd3, 0x1b, 0x59, 0x6d, 0x7c, - 0x02, 0x1b, 0xf3, 0xeb, 0x09, 0xfa, 0x3e, 0xac, 0x84, 0xf8, 0xb9, 0x2c, 0x46, 0x96, 0xeb, 0x50, - 0xa6, 0x0a, 0x57, 0x31, 0xc4, 0xcf, 0x05, 0x82, 0x9f, 0x6e, 0xfc, 0x02, 0xf4, 0x28, 0xe7, 0xd1, - 0x27, 0x50, 0x8a, 0xf2, 0x7d, 0x22, 0x30, 0xb7, 0x1b, 0x29, 0x11, 0xb3, 0x18, 0xe1, 0xc5, 0x5e, - 0x9f, 0x42, 0x4e, 0x31, 0xd0, 0x77, 0xa1, 0xe8, 0xe1, 0x11, 0xa1, 0x01, 0xee, 0x13, 0xde, 0xd7, - 0xe4, 0x1c, 0x50, 0x88, 0x69, 0x6d, 0x9b, 0x8f, 0x08, 0xbc, 0xf7, 0x44, 0xb3, 0x0a, 0xff, 0x36, - 0x7e, 0x05, 0x1b, 0xbc, 0xd2, 0x36, 0xcf, 0xb0, 0xe3, 0xe2, 0x9e, 0xe3, 0x3a, 0xec, 0x42, 0xb5, - 0xf8, 0x7b, 0x90, 0x0f, 0x7d, 0x65, 0x8d, 0x32, 0x44, 0x0f, 0x7d, 0x69, 0x08, 0x3f, 0xad, 0xef, - 0xbb, 0xe3, 0x91, 0x17, 0x97, 0x5e, 0xce, 0x2f, 0x48, 0x9a, 0x80, 0x18, 0xff, 0x4d, 0x41, 0x86, - 0x27, 0x1c, 0xfa, 0x08, 0x32, 0xdc, 0x06, 0xa1, 0xd1, 0xca, 0xbc, 0xd1, 0xa3, 0xeb, 0x0c, 0x3c, - 0x62, 0x1f, 0xd2, 0xc1, 0xc9, 0x45, 0x40, 0x4c, 0x01, 0x4e, 0x74, 0xfe, 0xd4, 0x54, 0xe7, 0x5f, - 0x87, 0x6c, 0xe8, 0x8f, 0x3d, 0x5b, 0x64, 0x6a, 0xd6, 0x94, 0x0b, 0xb4, 0x0f, 0x7a, 0xdc, 0xd0, - 0x33, 0xff, 0xaf, 0xa1, 0xaf, 0xf2, 0x0b, 0xe5, 0xe3, 0x86, 0x22, 0x98, 0xb9, 0x9e, 0xea, 0xeb, - 0xb7, 0x10, 0x6c, 0xe8, 0x7d, 0x58, 0x9b, 0x54, 0x8a, 0xa8, 0xcf, 0xc9, 0xe1, 0xa0, 0x1c, 0x33, - 0x54, 0xa3, 0x9b, 0x2e, 0x2b, 0x72, 0x56, 0xcc, 0x09, 0xbb, 0x26, 0x65, 0xa5, 0x2d, 0x86, 0xc6, - 0xfb, 0x90, 0xa7, 0xce, 0xc0, 0xc3, 0x6c, 0x1c, 0x12, 0x35, 0x24, 0x4c, 0x08, 0xc6, 0xbf, 0x34, - 0x58, 0x96, 0x43, 0x47, 0xc2, 0x6f, 0xda, 0x7c, 0xbf, 0xa5, 0x16, 0xf9, 0x2d, 0xfd, 0xf6, 0x7e, - 0x6b, 0x02, 0xc4, 0xca, 0xf0, 0x56, 0xb7, 0xa0, 0x30, 0x48, 0x15, 0xbb, 0xce, 0x40, 0xe5, 0x54, - 0x42, 0x08, 0x6d, 0x41, 0x41, 0x4e, 0xa8, 0x72, 0x80, 0xc8, 0x0a, 0x13, 0x41, 0x92, 0xf8, 0xf8, - 0x60, 0xfc, 0x5d, 0x83, 0x7c, 0xbc, 0x01, 0x6a, 0x42, 0x29, 0x52, 0xdc, 0x7a, 0xea, 0xe2, 0x81, - 0x0a, 0xae, 0x07, 0x0b, 0xb5, 0xff, 0xcc, 0xc5, 0x03, 0xb3, 0xa0, 0x14, 0xe6, 0x8b, 0xf9, 0x17, - 0x95, 0x5a, 0x70, 0x51, 0x53, 0x91, 0x91, 0x7e, 0xbb, 0xc8, 0x98, 0xba, 0xc3, 0xcc, 0xcd, 0x3b, - 0xfc, 0x32, 0x0d, 0x7a, 0x47, 0xcc, 0x41, 0xd8, 0xfd, 0x36, 0x52, 0xe6, 0x1e, 0xe4, 0x03, 0xdf, - 0xb5, 0x24, 0x27, 0x23, 0x38, 0x7a, 0xe0, 0xbb, 0xe6, 0x4c, 0x5c, 0x64, 0x6f, 0x29, 0x9f, 0x96, - 0x6f, 0xc1, 0x6b, 0xb9, 0x1b, 0x5e, 0x43, 0x5d, 0x3e, 0x5f, 0x47, 0x6f, 0x1b, 0x7d, 0xd1, 0xfc, - 0x37, 0xbf, 0xc2, 0xb5, 0x8a, 0xd7, 0xaf, 0xb6, 0xf4, 0xbd, 0xa6, 0x5c, 0xf1, 0xb9, 0x5c, 0xbd, - 0x73, 0x42, 0x28, 0x4a, 0xff, 0xaa, 0x4a, 0xf8, 0x90, 0x3b, 0x56, 0x9c, 0xa0, 0xcd, 0x3e, 0xce, - 0xe4, 0x09, 0x6a, 0x0f, 0x85, 0xe3, 0x12, 0xf2, 0x6d, 0xa0, 0x66, 0x91, 0xca, 0xa2, 0x64, 0x30, - 0x15, 0xce, 0xf8, 0xbd, 0x06, 0x30, 0xe9, 0xd5, 0xfc, 0x99, 0x42, 0x85, 0x0a, 0xd6, 0xd4, 0xc9, - 0xb5, 0x45, 0x91, 0xa0, 0xce, 0x2f, 0xd2, 0xa4, 0xde, 0xbb, 0x50, 0x9a, 0x44, 0x38, 0x25, 0x91, - 0x32, 0xb5, 0x37, 0xb4, 0xec, 0x2e, 0x61, 0x66, 0xf1, 0x2c, 0xb1, 0x32, 0xfe, 0xac, 0x41, 0x5e, - 0xe8, 0x74, 0x48, 0x18, 0x9e, 0x0a, 0x0c, 0xed, 0xed, 0x03, 0xe3, 0x01, 0x80, 0xdc, 0x86, 0x3a, - 0x2f, 0x88, 0x0a, 0xd7, 0xbc, 0xa0, 0x74, 0x9d, 0x17, 0x04, 0xfd, 0x24, 0x76, 0x78, 0xfa, 0xcd, - 0x0e, 0x57, 0x85, 0x24, 0x72, 0xfb, 0x5d, 0xc8, 0x79, 0xe3, 0x91, 0xc5, 0x9f, 0x0c, 0x72, 0x9e, - 0x58, 0xf6, 0xc6, 0xa3, 0x93, 0x73, 0x6a, 0xfc, 0x16, 0x72, 0x27, 0xe7, 0xe2, 0xfd, 0x2c, 0xdb, - 0x9a, 0xaf, 0x1e, 0x6d, 0xb2, 0x49, 0xea, 0x9c, 0x20, 0xde, 0x28, 0x73, 0x3a, 0x24, 0x6a, 0x7c, - 0xc3, 0x97, 0xb9, 0x7a, 0x93, 0xbf, 0xf7, 0x57, 0x0d, 0x0a, 0x89, 0xa2, 0x83, 0x7e, 0x04, 0x77, - 0x5a, 0x07, 0xc7, 0xbb, 0x9f, 0x5b, 0xed, 0x3d, 0xeb, 0xb3, 0x83, 0xe6, 0x63, 0xeb, 0x8b, 0xa3, - 0xcf, 0x8f, 0x8e, 0x7f, 0x79, 0x54, 0x5e, 0xaa, 0x6e, 0x5c, 0x5e, 0xd5, 0x51, 0x02, 0xfb, 0x85, - 0xf7, 0xcc, 0xf3, 0x9f, 0x7b, 0x68, 0x07, 0xd6, 0xa7, 0x45, 0x9a, 0xad, 0xee, 0xfe, 0xd1, 0x49, - 0x59, 0xab, 0xde, 0xb9, 0xbc, 0xaa, 0xaf, 0x25, 0x24, 0x9a, 0x3d, 0x4a, 0x3c, 0x36, 0x2b, 0xb0, - 0x7b, 0x7c, 0x78, 0xd8, 0x3e, 0x29, 0xa7, 0x66, 0x04, 0x54, 0x9b, 0x78, 0x17, 0xd6, 0xa6, 0x05, - 0x8e, 0xda, 0x07, 0xe5, 0x74, 0x15, 0x5d, 0x5e, 0xd5, 0x57, 0x12, 0xe8, 0x23, 0xc7, 0xad, 0xea, - 0x5f, 0xfe, 0xa1, 0xb6, 0xf4, 0xa7, 0x3f, 0xd6, 0x34, 0x6e, 0x59, 0x69, 0xaa, 0xf0, 0xa0, 0x0f, - 0xe0, 0x6e, 0xb7, 0xfd, 0xf8, 0x68, 0x7f, 0xcf, 0x3a, 0xec, 0x3e, 0xb6, 0x4e, 0x7e, 0xdd, 0xd9, - 0x4f, 0x58, 0xb7, 0x7a, 0x79, 0x55, 0x2f, 0x28, 0x93, 0x16, 0xa1, 0x3b, 0xe6, 0xfe, 0xe9, 0xf1, - 0xc9, 0x7e, 0x59, 0x93, 0xe8, 0x4e, 0x48, 0xf8, 0x74, 0x2e, 0xd0, 0x0f, 0x61, 0x73, 0x0e, 0x3a, - 0x36, 0x6c, 0xed, 0xf2, 0xaa, 0x5e, 0xea, 0x84, 0x44, 0xe6, 0x8f, 0x90, 0x68, 0x40, 0x65, 0x56, - 0xe2, 0xb8, 0x73, 0xdc, 0x6d, 0x1e, 0x94, 0xeb, 0xd5, 0xf2, 0xe5, 0x55, 0xbd, 0x18, 0x55, 0x58, - 0x8e, 0x9f, 0x58, 0xd6, 0x3a, 0xfd, 0xea, 0xba, 0xa6, 0x7d, 0x7d, 0x5d, 0xd3, 0xfe, 0x79, 0x5d, - 0xd3, 0x5e, 0xbe, 0xae, 0x2d, 0x7d, 0xfd, 0xba, 0xb6, 0xf4, 0xb7, 0xd7, 0xb5, 0xa5, 0xdf, 0x7c, - 0x3c, 0x70, 0xd8, 0x70, 0xdc, 0x6b, 0xf4, 0xfd, 0xd1, 0x8e, 0x8b, 0x5f, 0x5c, 0xb8, 0xc4, 0x1e, - 0x90, 0x30, 0xf1, 0xf9, 0x61, 0xdf, 0x0f, 0xd5, 0xff, 0x54, 0x3b, 0x37, 0xff, 0x54, 0xea, 0x2d, - 0x0b, 0xfa, 0x47, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x9c, 0x2a, 0x19, 0xd2, 0x15, 0x13, 0x00, - 0x00, + // 1859 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x49, 0x6f, 0x1b, 0xc9, + 0x15, 0x56, 0x73, 0x11, 0xc9, 0x47, 0x52, 0xa2, 0x2a, 0x92, 0x4c, 0xd1, 0x36, 0xc5, 0x30, 0xcb, + 0x68, 0x36, 0xca, 0xf1, 0x04, 0x59, 0x80, 0xc9, 0x60, 0x48, 0x49, 0x63, 0x33, 0xa3, 0x85, 0x68, + 0x6a, 0x94, 0xe5, 0xd2, 0x28, 0xb2, 0xcb, 0x64, 0xc7, 0xcd, 0xae, 0x46, 0x57, 0x51, 0x96, 0x7c, + 0xcc, 0x69, 0xa0, 0x93, 0x4f, 0xb9, 0x09, 0x39, 0x24, 0x87, 0xfc, 0x8e, 0x9c, 0xe6, 0x12, 0x60, + 0x6e, 0xc9, 0x25, 0x4e, 0x22, 0xe7, 0x90, 0x9f, 0x11, 0xd4, 0xd2, 0xcd, 0xa6, 0x48, 0x3a, 0x03, + 0xc3, 0xc8, 0x45, 0x60, 0xbf, 0xf7, 0xbd, 0xb5, 0xde, 0x7b, 0xf5, 0x4a, 0x70, 0x8f, 0x13, 0xcf, + 0x26, 0xc1, 0xc8, 0xf1, 0xf8, 0x2e, 0xbf, 0xf4, 0x09, 0x53, 0x7f, 0x1b, 0x7e, 0x40, 0x39, 0x45, + 0xa5, 0x09, 0xb7, 0x21, 0xe9, 0x95, 0xf5, 0x01, 0x1d, 0x50, 0xc9, 0xdc, 0x15, 0xbf, 0x14, 0xae, + 0xb2, 0x3d, 0xa0, 0x74, 0xe0, 0x92, 0x5d, 0xf9, 0xd5, 0x1b, 0x3f, 0xd9, 0xe5, 0xce, 0x88, 0x30, + 0x8e, 0x47, 0xbe, 0x06, 0xdc, 0x8f, 0x99, 0xe9, 0x07, 0x97, 0x3e, 0xa7, 0x02, 0x4b, 0x9f, 0x68, + 0x76, 0x35, 0xc6, 0x3e, 0x27, 0x01, 0x73, 0xa8, 0x17, 0xf7, 0xa3, 0x52, 0x9b, 0xf1, 0xf2, 0x1c, + 0xbb, 0x8e, 0x8d, 0x39, 0x0d, 0x14, 0xa2, 0xfe, 0x53, 0x28, 0x76, 0x70, 0xc0, 0xbb, 0x84, 0x3f, + 0x26, 0xd8, 0x26, 0x01, 0x5a, 0x87, 0x34, 0xa7, 0x1c, 0xbb, 0x65, 0xa3, 0x66, 0xec, 0x14, 0x4d, + 0xf5, 0x81, 0x10, 0xa4, 0x86, 0x98, 0x0d, 0xcb, 0x89, 0x9a, 0xb1, 0x53, 0x30, 0xe5, 0xef, 0xfa, + 0x10, 0x52, 0x42, 0x54, 0x48, 0x38, 0x9e, 0x4d, 0x2e, 0x42, 0x09, 0xf9, 0x21, 0xa8, 0xbd, 0x4b, + 0x4e, 0x98, 0x16, 0x51, 0x1f, 0xe8, 0x87, 0x90, 0x96, 0xfe, 0x97, 0x93, 0x35, 0x63, 0x27, 0xff, + 0xb0, 0xdc, 0x88, 0x25, 0x4a, 0xc5, 0xd7, 0xe8, 0x08, 0x7e, 0x2b, 0xf5, 0xd5, 0xcb, 0xed, 0x25, + 0x53, 0x81, 0xeb, 0x2e, 0x64, 0x5a, 0x2e, 0xed, 0x3f, 0x6d, 0xef, 0x47, 0x8e, 0x18, 0x13, 0x47, + 0xd0, 0x11, 0xac, 0xfa, 0x38, 0xe0, 0x16, 0x23, 0xdc, 0x1a, 0xca, 0x28, 0xa4, 0xd1, 0xfc, 0xc3, + 0xed, 0xc6, 0xed, 0x73, 0x68, 0x4c, 0x05, 0xab, 0xad, 0x14, 0xfd, 0x38, 0xb1, 0xfe, 0xfb, 0x34, + 0x2c, 0xeb, 0x64, 0xfc, 0x0c, 0x32, 0x3a, 0xad, 0xd2, 0x60, 0xfe, 0xe1, 0xfd, 0xb8, 0x46, 0xcd, + 0x6a, 0xec, 0x51, 0x8f, 0x11, 0x8f, 0x8d, 0x99, 0xd6, 0x17, 0xca, 0xa0, 0xef, 0x43, 0xb6, 0x3f, + 0xc4, 0x8e, 0x67, 0x39, 0xb6, 0xf4, 0x28, 0xd7, 0xca, 0xdf, 0xbc, 0xdc, 0xce, 0xec, 0x09, 0x5a, + 0x7b, 0xdf, 0xcc, 0x48, 0x66, 0xdb, 0x46, 0x9b, 0xb0, 0x3c, 0x24, 0xce, 0x60, 0xc8, 0x65, 0x5a, + 0x92, 0xa6, 0xfe, 0x42, 0x3f, 0x81, 0x94, 0x28, 0x88, 0x72, 0x4a, 0xda, 0xae, 0x34, 0x54, 0xb5, + 0x34, 0xc2, 0x6a, 0x69, 0x9c, 0x86, 0xd5, 0xd2, 0xca, 0x0a, 0xc3, 0x2f, 0xfe, 0xb1, 0x6d, 0x98, + 0x52, 0x02, 0xed, 0x41, 0xd1, 0xc5, 0x8c, 0x5b, 0x3d, 0x91, 0x36, 0x61, 0x3e, 0x2d, 0x55, 0x6c, + 0xcd, 0x26, 0x44, 0x27, 0x56, 0xbb, 0x9e, 0x17, 0x52, 0x8a, 0x64, 0xa3, 0x1d, 0x28, 0x49, 0x25, + 0x7d, 0x3a, 0x1a, 0x39, 0xdc, 0x92, 0x79, 0x5f, 0x96, 0x79, 0x5f, 0x11, 0xf4, 0x3d, 0x49, 0x7e, + 0x2c, 0x4e, 0xe0, 0xc7, 0x50, 0xf6, 0xc6, 0x23, 0x8b, 0x06, 0xce, 0xc0, 0xf1, 0xb0, 0x6b, 0xd9, + 0x98, 0x63, 0x8b, 0x0d, 0x71, 0x40, 0x58, 0x39, 0x23, 0x43, 0xda, 0xf0, 0xc6, 0xa3, 0x13, 0xcd, + 0xde, 0xc7, 0x1c, 0x77, 0x25, 0x13, 0xdd, 0x85, 0x9c, 0xc4, 0x4a, 0xdd, 0x59, 0xa9, 0x3b, 0x2b, + 0x08, 0x52, 0xeb, 0x3b, 0xb0, 0x1a, 0x95, 0x2b, 0x53, 0x90, 0x9c, 0x32, 0x3f, 0x21, 0x4b, 0xe0, + 0x03, 0x58, 0xf7, 0xc8, 0x05, 0xb7, 0x6e, 0xa3, 0x41, 0xa2, 0x91, 0xe0, 0x9d, 0x4d, 0x4b, 0x7c, + 0x0f, 0x56, 0xfa, 0xe1, 0xa9, 0x29, 0x6c, 0x5e, 0x62, 0x8b, 0x11, 0x55, 0xc2, 0xb6, 0x20, 0x8b, + 0x7d, 0x5f, 0x01, 0x0a, 0x12, 0x90, 0xc1, 0xbe, 0x2f, 0x59, 0xef, 0xc1, 0x9a, 0x4c, 0x4e, 0x40, + 0xd8, 0xd8, 0xe5, 0x5a, 0x49, 0x51, 0x62, 0x56, 0x05, 0xc3, 0x54, 0x74, 0x89, 0xfd, 0x0e, 0x14, + 0xc9, 0xb9, 0x63, 0x13, 0xaf, 0x4f, 0x14, 0x6e, 0x45, 0xe2, 0x0a, 0x21, 0x51, 0x82, 0xde, 0x85, + 0x92, 0x1f, 0x50, 0x9f, 0x32, 0x12, 0x58, 0xd8, 0xb6, 0x03, 0xc2, 0x58, 0x79, 0x55, 0xe9, 0x0b, + 0xe9, 0x4d, 0x45, 0xae, 0xff, 0x36, 0x01, 0x29, 0x91, 0x44, 0x54, 0x82, 0x24, 0xbf, 0x60, 0x65, + 0xa3, 0x96, 0xdc, 0x29, 0x98, 0xe2, 0x27, 0x1a, 0x42, 0xd9, 0xf1, 0x38, 0x09, 0x46, 0xc4, 0x76, + 0x30, 0x27, 0x16, 0xe3, 0xe2, 0x6f, 0x40, 0x29, 0x67, 0xba, 0x29, 0x76, 0x66, 0x6b, 0xa0, 0x1d, + 0x93, 0xe8, 0x0a, 0x01, 0x53, 0xe0, 0x75, 0x49, 0x6c, 0x3a, 0x73, 0xb9, 0xe8, 0x53, 0xc8, 0x86, + 0xfe, 0xeb, 0x6e, 0xae, 0xce, 0x6a, 0x3e, 0xd0, 0x88, 0x43, 0x87, 0x71, 0xad, 0x2f, 0x92, 0x42, + 0x1f, 0x43, 0x76, 0x44, 0x18, 0xc3, 0x03, 0xc2, 0xa2, 0x12, 0x9f, 0xd1, 0x70, 0xa4, 0x11, 0xa1, + 0x74, 0x28, 0x51, 0xff, 0xb7, 0x01, 0xd9, 0x50, 0x3d, 0xc2, 0x70, 0xc7, 0x1e, 0xfb, 0xae, 0xd3, + 0x17, 0xd1, 0x9e, 0x53, 0x4e, 0xac, 0xc8, 0x37, 0xd5, 0xb8, 0xef, 0xcc, 0x6a, 0xde, 0x0f, 0x05, + 0xce, 0x28, 0x27, 0xa1, 0xa6, 0xc7, 0x4b, 0xe6, 0x86, 0x3d, 0x8f, 0x81, 0x3c, 0xb8, 0xe7, 0x8a, + 0xae, 0xb4, 0xfa, 0xae, 0x43, 0x3c, 0x6e, 0x61, 0xce, 0x71, 0xff, 0xe9, 0xc4, 0x8e, 0xca, 0xee, + 0xfb, 0xb3, 0x76, 0x0e, 0x85, 0xd4, 0x9e, 0x14, 0x6a, 0x4a, 0x99, 0x98, 0xad, 0x2d, 0x77, 0x11, + 0xb3, 0x95, 0x86, 0x24, 0x1b, 0x8f, 0xea, 0x2f, 0x12, 0xb0, 0x31, 0xd7, 0x53, 0xf4, 0x21, 0x2c, + 0xcb, 0x48, 0xb1, 0x0e, 0x71, 0x73, 0xd6, 0xb4, 0xc0, 0x9b, 0x69, 0x81, 0x6a, 0x46, 0xf0, 0x9e, + 0xf6, 0xf4, 0xb5, 0xf0, 0x16, 0xfa, 0x00, 0x90, 0x1c, 0xfd, 0x22, 0x9b, 0x8e, 0x37, 0xb0, 0x7c, + 0xfa, 0x8c, 0x04, 0x7a, 0x3e, 0x95, 0x24, 0xe7, 0x4c, 0x32, 0x3a, 0x82, 0x3e, 0xd5, 0xaa, 0x1a, + 0x9a, 0x92, 0xd0, 0x49, 0xab, 0x2a, 0x60, 0x0b, 0x72, 0xd1, 0x1d, 0xa7, 0x87, 0xd2, 0x37, 0x9b, + 0x6b, 0x13, 0xb1, 0xfa, 0x5f, 0x12, 0xb0, 0xb5, 0x30, 0xa9, 0xa8, 0x0d, 0x6b, 0x7d, 0xea, 0x3d, + 0x71, 0x9d, 0xbe, 0xf4, 0x5b, 0x4e, 0x40, 0x9d, 0xa1, 0x7b, 0x0b, 0x0e, 0x47, 0x0e, 0x3c, 0xb3, + 0x14, 0x13, 0x93, 0x14, 0xd1, 0xb7, 0x62, 0xf6, 0x51, 0xcf, 0xd2, 0xe3, 0x39, 0x21, 0x63, 0x2a, + 0x28, 0xe2, 0x63, 0x35, 0xa4, 0x8f, 0x61, 0xbd, 0x77, 0xf9, 0x1c, 0x7b, 0xdc, 0xf1, 0x48, 0x6c, + 0x02, 0x95, 0x93, 0xb5, 0xe4, 0x4e, 0xfe, 0xe1, 0xdd, 0x39, 0x59, 0x0e, 0x31, 0xe6, 0xb7, 0x22, + 0xc1, 0xc9, 0x78, 0x5a, 0x90, 0xf8, 0xd4, 0x82, 0xc4, 0xbf, 0x8d, 0x7c, 0x1e, 0x42, 0x21, 0xde, + 0xa7, 0xa2, 0x2f, 0x63, 0xdd, 0x93, 0x9c, 0xdf, 0x97, 0x51, 0x9d, 0xde, 0xea, 0xea, 0xfa, 0x27, + 0xb0, 0x39, 0x7f, 0x9e, 0xa0, 0xef, 0xc2, 0x4a, 0x80, 0x9f, 0xa9, 0x61, 0x64, 0xb9, 0x0e, 0xe3, + 0x7a, 0x70, 0x15, 0x02, 0xfc, 0x4c, 0x22, 0x84, 0xf5, 0xfa, 0xcf, 0x21, 0x1b, 0xf6, 0x3c, 0xfa, + 0x04, 0x8a, 0x61, 0xbf, 0x4f, 0x04, 0xe6, 0x5e, 0x63, 0x5a, 0xc4, 0x2c, 0x84, 0x78, 0xa9, 0xeb, + 0x53, 0xc8, 0x68, 0x06, 0xfa, 0x36, 0x14, 0x3c, 0x3c, 0x22, 0xcc, 0xc7, 0x7d, 0x22, 0x2e, 0x44, + 0xb5, 0x40, 0xe4, 0x23, 0x5a, 0xdb, 0x16, 0xbb, 0x85, 0xb8, 0x7b, 0xc2, 0x25, 0x47, 0xfc, 0xae, + 0xff, 0x12, 0x36, 0xc5, 0xa4, 0x6d, 0x9e, 0x63, 0xc7, 0xc5, 0x3d, 0xc7, 0x75, 0xf8, 0xa5, 0xde, + 0x0d, 0xee, 0x42, 0x2e, 0xa0, 0x3a, 0x1a, 0x1d, 0x48, 0x36, 0xa0, 0x2a, 0x10, 0x61, 0xad, 0x4f, + 0xdd, 0xf1, 0xc8, 0x8b, 0x46, 0xaf, 0xe0, 0xe7, 0x15, 0x4d, 0x42, 0xea, 0xff, 0x49, 0x40, 0x4a, + 0x34, 0x1c, 0xfa, 0x08, 0x52, 0x22, 0x06, 0xe9, 0xd1, 0xca, 0xbc, 0x9d, 0xa5, 0xeb, 0x0c, 0x3c, + 0x62, 0x1f, 0xb1, 0xc1, 0xe9, 0xa5, 0x4f, 0x4c, 0x09, 0x8e, 0xad, 0x0c, 0x89, 0xa9, 0x95, 0x61, + 0x1d, 0xd2, 0x01, 0x1d, 0x7b, 0xb6, 0xec, 0xd4, 0xb4, 0xa9, 0x3e, 0xd0, 0x01, 0x64, 0xa3, 0x4d, + 0x20, 0xf5, 0xbf, 0x36, 0x81, 0x55, 0x71, 0xa0, 0x62, 0x4f, 0xd1, 0x04, 0x33, 0xd3, 0xd3, 0x0b, + 0xc1, 0x5b, 0x28, 0x36, 0xf4, 0x3e, 0xac, 0x4d, 0x26, 0x45, 0x78, 0xcf, 0xa9, 0xad, 0xa2, 0x14, + 0x31, 0xf4, 0x45, 0x37, 0x3d, 0x56, 0xd4, 0x92, 0x99, 0x91, 0x71, 0x4d, 0xc6, 0x4a, 0x5b, 0x6e, + 0x9b, 0xf7, 0x20, 0xc7, 0x9c, 0x81, 0x87, 0xf9, 0x38, 0x20, 0x7a, 0x8f, 0x98, 0x10, 0xea, 0xff, + 0x32, 0x60, 0x59, 0x6d, 0x2b, 0xb1, 0xbc, 0x19, 0xf3, 0xf3, 0x96, 0x58, 0x94, 0xb7, 0xe4, 0x9b, + 0xe7, 0xad, 0x09, 0x10, 0x39, 0x23, 0xae, 0xba, 0x05, 0x83, 0x41, 0xb9, 0xd8, 0x75, 0x06, 0xba, + 0xa7, 0x62, 0x42, 0x68, 0x1b, 0xf2, 0x6a, 0xb5, 0x55, 0x0b, 0x44, 0x5a, 0x86, 0x08, 0x8a, 0x24, + 0xd6, 0x87, 0xfa, 0xdf, 0x0d, 0xc8, 0x45, 0x0a, 0x50, 0x13, 0x8a, 0xa1, 0xe3, 0xd6, 0x13, 0x17, + 0x0f, 0x74, 0x71, 0xdd, 0x5f, 0xe8, 0xfd, 0x67, 0x2e, 0x1e, 0x98, 0x79, 0xed, 0xb0, 0xf8, 0x98, + 0x7f, 0x50, 0x89, 0x05, 0x07, 0x35, 0x55, 0x19, 0xc9, 0x37, 0xab, 0x8c, 0xa9, 0x33, 0x4c, 0xdd, + 0x3e, 0xc3, 0x2f, 0x93, 0x90, 0xed, 0xc8, 0x3d, 0x08, 0xbb, 0xff, 0x8f, 0x96, 0xb9, 0x0b, 0x39, + 0x9f, 0xba, 0x96, 0xe2, 0xa4, 0x24, 0x27, 0xeb, 0x53, 0xd7, 0x9c, 0xa9, 0x8b, 0xf4, 0x5b, 0xea, + 0xa7, 0xe5, 0xb7, 0x90, 0xb5, 0xcc, 0xad, 0xac, 0xa1, 0xae, 0xd8, 0xaf, 0xc3, 0x47, 0x51, 0x76, + 0xd1, 0xfe, 0x37, 0x7f, 0xc2, 0xb5, 0x0a, 0x37, 0x2f, 0xb7, 0xb3, 0xfb, 0x4d, 0xf5, 0x25, 0xf6, + 0x72, 0xfd, 0x40, 0x0a, 0xa0, 0xa0, 0xf2, 0xab, 0x27, 0xe1, 0x03, 0x91, 0x58, 0x69, 0xc1, 0x98, + 0x7d, 0xd5, 0x29, 0x0b, 0x5a, 0x87, 0xc6, 0x09, 0x09, 0xf5, 0xa8, 0xd0, 0xbb, 0x48, 0x79, 0x51, + 0x33, 0x98, 0x1a, 0x57, 0xff, 0x9d, 0x01, 0x30, 0xb9, 0xab, 0xc5, 0xfb, 0x86, 0x49, 0x17, 0xac, + 0x29, 0xcb, 0xd5, 0x45, 0x95, 0xa0, 0xed, 0x17, 0x58, 0xdc, 0xef, 0x3d, 0x28, 0x4e, 0x2a, 0x9c, + 0x91, 0xd0, 0x99, 0xea, 0x6b, 0xae, 0xec, 0x2e, 0xe1, 0x66, 0xe1, 0x3c, 0xf6, 0x55, 0xff, 0xb3, + 0x01, 0x39, 0xe9, 0xd3, 0x11, 0xe1, 0x78, 0xaa, 0x30, 0x8c, 0x37, 0x2f, 0x8c, 0xfb, 0x00, 0x4a, + 0x0d, 0x73, 0x9e, 0x13, 0x5d, 0xae, 0x39, 0x49, 0xe9, 0x3a, 0xcf, 0x09, 0xfa, 0x51, 0x94, 0xf0, + 0xe4, 0xeb, 0x13, 0xae, 0x07, 0x49, 0x98, 0xf6, 0x3b, 0x90, 0x11, 0xcf, 0x34, 0xf1, 0x64, 0x50, + 0xfb, 0xc4, 0xb2, 0x37, 0x1e, 0x9d, 0x5e, 0xb0, 0xfa, 0x6f, 0x20, 0x73, 0x7a, 0x21, 0x1f, 0xde, + 0xea, 0x5a, 0xa3, 0xfa, 0xb5, 0xa7, 0x2e, 0xc9, 0xac, 0x20, 0xc8, 0x37, 0xca, 0x9c, 0x1b, 0x12, + 0x35, 0xbe, 0xe1, 0x93, 0x5e, 0x3f, 0xe6, 0xdf, 0xfb, 0xab, 0x01, 0xf9, 0xd8, 0xd0, 0x41, 0x3f, + 0x80, 0x8d, 0xd6, 0xe1, 0xc9, 0xde, 0xe7, 0x56, 0x7b, 0xdf, 0xfa, 0xec, 0xb0, 0xf9, 0xc8, 0xfa, + 0xe2, 0xf8, 0xf3, 0xe3, 0x93, 0x5f, 0x1c, 0x97, 0x96, 0x2a, 0x9b, 0x57, 0xd7, 0x35, 0x14, 0xc3, + 0x7e, 0xe1, 0x3d, 0xf5, 0xe8, 0x33, 0x0f, 0xed, 0xc2, 0xfa, 0xb4, 0x48, 0xb3, 0xd5, 0x3d, 0x38, + 0x3e, 0x2d, 0x19, 0x95, 0x8d, 0xab, 0xeb, 0xda, 0x5a, 0x4c, 0xa2, 0xd9, 0x63, 0xc4, 0xe3, 0xb3, + 0x02, 0x7b, 0x27, 0x47, 0x47, 0xed, 0xd3, 0x52, 0x62, 0x46, 0x40, 0x5f, 0x13, 0xef, 0xc2, 0xda, + 0xb4, 0xc0, 0x71, 0xfb, 0xb0, 0x94, 0xac, 0xa0, 0xab, 0xeb, 0xda, 0x4a, 0x0c, 0x7d, 0xec, 0xb8, + 0x95, 0xec, 0x97, 0x7f, 0xa8, 0x2e, 0xfd, 0xe9, 0x8f, 0x55, 0x43, 0x44, 0x56, 0x9c, 0x1a, 0x3c, + 0xe8, 0x03, 0xb8, 0xd3, 0x6d, 0x3f, 0x3a, 0x3e, 0xd8, 0xb7, 0x8e, 0xba, 0x8f, 0xac, 0xd3, 0x5f, + 0x75, 0x0e, 0x62, 0xd1, 0xad, 0x5e, 0x5d, 0xd7, 0xf2, 0x3a, 0xa4, 0x45, 0xe8, 0x8e, 0x79, 0x70, + 0x76, 0x72, 0x7a, 0x50, 0x32, 0x14, 0xba, 0x13, 0x10, 0xb1, 0x9d, 0x4b, 0xf4, 0x03, 0xd8, 0x9a, + 0x83, 0x8e, 0x02, 0x5b, 0xbb, 0xba, 0xae, 0x15, 0x3b, 0x01, 0x51, 0xfd, 0x23, 0x25, 0x1a, 0x50, + 0x9e, 0x95, 0x38, 0xe9, 0x9c, 0x74, 0x9b, 0x87, 0xa5, 0x5a, 0xa5, 0x74, 0x75, 0x5d, 0x2b, 0x84, + 0x13, 0x56, 0xe0, 0x27, 0x91, 0xb5, 0xce, 0xbe, 0xba, 0xa9, 0x1a, 0x5f, 0xdf, 0x54, 0x8d, 0x7f, + 0xde, 0x54, 0x8d, 0x17, 0xaf, 0xaa, 0x4b, 0x5f, 0xbf, 0xaa, 0x2e, 0xfd, 0xed, 0x55, 0x75, 0xe9, + 0xd7, 0x1f, 0x0f, 0x1c, 0x3e, 0x1c, 0xf7, 0x1a, 0x7d, 0x3a, 0xda, 0x75, 0xf1, 0xf3, 0x4b, 0x97, + 0xd8, 0x03, 0x12, 0xc4, 0x7e, 0x7e, 0xd8, 0xa7, 0x81, 0xfe, 0x07, 0xd7, 0xee, 0xed, 0xff, 0x46, + 0xf5, 0x96, 0x25, 0xfd, 0xa3, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xc7, 0x48, 0xc1, 0x93, 0x4e, + 0x13, 0x00, 0x00, } func (m *PartSetHeader) Marshal() (dAtA []byte, err error) { @@ -1847,56 +1857,61 @@ func (m *Header) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.ProposerAddress) i = encodeVarintTypes(dAtA, i, uint64(len(m.ProposerAddress))) i-- - dAtA[i] = 0x72 + dAtA[i] = 0x7a } if len(m.EvidenceHash) > 0 { i -= len(m.EvidenceHash) copy(dAtA[i:], m.EvidenceHash) i = encodeVarintTypes(dAtA, i, uint64(len(m.EvidenceHash))) i-- - dAtA[i] = 0x6a + dAtA[i] = 0x72 } if len(m.LastResultsHash) > 0 { i -= len(m.LastResultsHash) copy(dAtA[i:], m.LastResultsHash) i = encodeVarintTypes(dAtA, i, uint64(len(m.LastResultsHash))) i-- - dAtA[i] = 0x62 + dAtA[i] = 0x6a } if len(m.AppHash) > 0 { i -= len(m.AppHash) copy(dAtA[i:], m.AppHash) i = encodeVarintTypes(dAtA, i, uint64(len(m.AppHash))) i-- - dAtA[i] = 0x5a + dAtA[i] = 0x62 } if len(m.ConsensusHash) > 0 { i -= len(m.ConsensusHash) copy(dAtA[i:], m.ConsensusHash) i = encodeVarintTypes(dAtA, i, uint64(len(m.ConsensusHash))) i-- - dAtA[i] = 0x52 + dAtA[i] = 0x5a } if len(m.NextValidatorsHash) > 0 { i -= len(m.NextValidatorsHash) copy(dAtA[i:], m.NextValidatorsHash) i = encodeVarintTypes(dAtA, i, uint64(len(m.NextValidatorsHash))) i-- - dAtA[i] = 0x4a + dAtA[i] = 0x52 } if len(m.ValidatorsHash) > 0 { i -= len(m.ValidatorsHash) copy(dAtA[i:], m.ValidatorsHash) i = encodeVarintTypes(dAtA, i, uint64(len(m.ValidatorsHash))) i-- - dAtA[i] = 0x42 + dAtA[i] = 0x4a } if len(m.DataHash) > 0 { i -= len(m.DataHash) copy(dAtA[i:], m.DataHash) i = encodeVarintTypes(dAtA, i, uint64(len(m.DataHash))) i-- - dAtA[i] = 0x3a + dAtA[i] = 0x42 + } + if m.NumOriginalDataShares != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.NumOriginalDataShares)) + i-- + dAtA[i] = 0x38 } if len(m.LastCommitHash) > 0 { i -= len(m.LastCommitHash) @@ -2948,6 +2963,9 @@ func (m *Header) Size() (n int) { if l > 0 { n += 1 + l + sovTypes(uint64(l)) } + if m.NumOriginalDataShares != 0 { + n += 1 + sovTypes(uint64(m.NumOriginalDataShares)) + } l = len(m.DataHash) if l > 0 { n += 1 + l + sovTypes(uint64(l)) @@ -3940,6 +3958,25 @@ func (m *Header) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumOriginalDataShares", wireType) + } + m.NumOriginalDataShares = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumOriginalDataShares |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field DataHash", wireType) } @@ -3973,7 +4010,7 @@ func (m *Header) Unmarshal(dAtA []byte) error { m.DataHash = []byte{} } iNdEx = postIndex - case 8: + case 9: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ValidatorsHash", wireType) } @@ -4007,7 +4044,7 @@ func (m *Header) Unmarshal(dAtA []byte) error { m.ValidatorsHash = []byte{} } iNdEx = postIndex - case 9: + case 10: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field NextValidatorsHash", wireType) } @@ -4041,7 +4078,7 @@ func (m *Header) Unmarshal(dAtA []byte) error { m.NextValidatorsHash = []byte{} } iNdEx = postIndex - case 10: + case 11: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ConsensusHash", wireType) } @@ -4075,7 +4112,7 @@ func (m *Header) Unmarshal(dAtA []byte) error { m.ConsensusHash = []byte{} } iNdEx = postIndex - case 11: + case 12: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType) } @@ -4109,7 +4146,7 @@ func (m *Header) Unmarshal(dAtA []byte) error { m.AppHash = []byte{} } iNdEx = postIndex - case 12: + case 13: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field LastResultsHash", wireType) } @@ -4143,7 +4180,7 @@ func (m *Header) Unmarshal(dAtA []byte) error { m.LastResultsHash = []byte{} } iNdEx = postIndex - case 13: + case 14: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field EvidenceHash", wireType) } @@ -4177,7 +4214,7 @@ func (m *Header) Unmarshal(dAtA []byte) error { m.EvidenceHash = []byte{} } iNdEx = postIndex - case 14: + case 15: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ProposerAddress", wireType) } diff --git a/proto/tendermint/types/types.proto b/proto/tendermint/types/types.proto index d50b872745..9347f20f8c 100644 --- a/proto/tendermint/types/types.proto +++ b/proto/tendermint/types/types.proto @@ -67,18 +67,19 @@ message Header { // hashes of block data bytes last_commit_hash = 6; // commit from validators from the last block - bytes data_hash = 7; // transactions + int64 num_original_data_shares = 7; // number of shares used in the original data square + bytes data_hash = 8; // transactions // hashes from the app output from the prev block - bytes validators_hash = 8; // validators for the current block - bytes next_validators_hash = 9; // validators for the next block - bytes consensus_hash = 10; // consensus params for current block - bytes app_hash = 11; // state after txs from the previous block - bytes last_results_hash = 12; // root hash of all results from the txs from the previous block + bytes validators_hash = 9; // validators for the current block + bytes next_validators_hash = 10; // validators for the next block + bytes consensus_hash = 11; // consensus params for current block + bytes app_hash = 12; // state after txs from the previous block + bytes last_results_hash = 13; // root hash of all results from the txs from the previous block // consensus info - bytes evidence_hash = 13; // evidence included in the block - bytes proposer_address = 14; // original proposer of the block + bytes evidence_hash = 14; // evidence included in the block + bytes proposer_address = 15; // original proposer of the block } // Data contains the set of transactions included in the block diff --git a/state/tx_filter_test.go b/state/tx_filter_test.go index 1ec8277a97..2a2ab23b47 100644 --- a/state/tx_filter_test.go +++ b/state/tx_filter_test.go @@ -25,7 +25,7 @@ func TestTxFilter(t *testing.T) { tx types.Tx isErr bool }{ - {types.Tx(tmrand.Bytes(2149)), false}, + {types.Tx(tmrand.Bytes(2139)), false}, {types.Tx(tmrand.Bytes(2150)), true}, {types.Tx(tmrand.Bytes(3000)), true}, } diff --git a/types/block.go b/types/block.go index 69c7d20a58..b575407e6b 100644 --- a/types/block.go +++ b/types/block.go @@ -36,7 +36,7 @@ const ( // MaxHeaderBytes is a maximum header size. // NOTE: Because app hash can be of arbitrary size, the header is therefore not // capped in size and thus this number should be seen as a soft max - MaxHeaderBytes int64 = 626 + MaxHeaderBytes int64 = 636 // MaxOverheadForBlock - maximum overhead to encode a block (up to // MaxBlockSizeBytes in size) not including it's parts except Data. @@ -228,7 +228,7 @@ func (b *Block) fillHeader() { // fillDataAvailabilityHeader fills in any remaining DataAvailabilityHeader fields // that are a function of the block data. func (b *Block) fillDataAvailabilityHeader() { - namespacedShares := b.Data.ComputeShares() + namespacedShares, dataSharesLen := b.Data.ComputeShares() shares := namespacedShares.RawShares() if len(shares) == 0 { // no shares -> no row/colum roots -> hash(empty) @@ -268,6 +268,7 @@ func (b *Block) fillDataAvailabilityHeader() { // return the root hash of DA Header b.DataHash = b.DataAvailabilityHeader.Hash() + b.NumOriginalDataShares = int64(dataSharesLen) } // nmtcommitment generates the nmt root of some namespaced data @@ -300,7 +301,7 @@ func (b *Block) PutBlock(ctx context.Context, nodeAdder format.NodeAdder) error } // recompute the shares - namespacedShares := b.Data.ComputeShares() + namespacedShares, _ := b.Data.ComputeShares() shares := namespacedShares.RawShares() // don't do anything if there is no data to put on IPFS @@ -645,6 +646,8 @@ type Header struct { // DataHash = root((rowRoot_1 || rowRoot_2 || ... ||rowRoot_2k || columnRoot1 || columnRoot2 || ... || columnRoot2k)) // Block.DataAvailabilityHeader for stores (row|column)Root_i // TODO ... DataHash tmbytes.HexBytes `json:"data_hash"` // transactions + // amount of data shares within a Block #specs:availableDataOriginalSharesUsed + NumOriginalDataShares int64 `json:"data_shares"` // hashes from the app output from the prev block ValidatorsHash tmbytes.HexBytes `json:"validators_hash"` // validators for the current block @@ -773,6 +776,7 @@ func (h *Header) Hash() tmbytes.HexBytes { bzbi, cdcEncode(h.LastCommitHash), cdcEncode(h.DataHash), + cdcEncode(h.NumOriginalDataShares), cdcEncode(h.ValidatorsHash), cdcEncode(h.NextValidatorsHash), cdcEncode(h.ConsensusHash), @@ -828,20 +832,21 @@ func (h *Header) ToProto() *tmproto.Header { } return &tmproto.Header{ - Version: h.Version, - ChainID: h.ChainID, - Height: h.Height, - Time: h.Time, - LastBlockId: h.LastBlockID.ToProto(), - ValidatorsHash: h.ValidatorsHash, - NextValidatorsHash: h.NextValidatorsHash, - ConsensusHash: h.ConsensusHash, - AppHash: h.AppHash, - DataHash: h.DataHash, - EvidenceHash: h.EvidenceHash, - LastResultsHash: h.LastResultsHash, - LastCommitHash: h.LastCommitHash, - ProposerAddress: h.ProposerAddress, + Version: h.Version, + ChainID: h.ChainID, + Height: h.Height, + Time: h.Time, + LastBlockId: h.LastBlockID.ToProto(), + ValidatorsHash: h.ValidatorsHash, + NextValidatorsHash: h.NextValidatorsHash, + ConsensusHash: h.ConsensusHash, + AppHash: h.AppHash, + DataHash: h.DataHash, + NumOriginalDataShares: h.NumOriginalDataShares, + EvidenceHash: h.EvidenceHash, + LastResultsHash: h.LastResultsHash, + LastCommitHash: h.LastCommitHash, + ProposerAddress: h.ProposerAddress, } } @@ -870,6 +875,7 @@ func HeaderFromProto(ph *tmproto.Header) (Header, error) { h.ConsensusHash = ph.ConsensusHash h.AppHash = ph.AppHash h.DataHash = ph.DataHash + h.NumOriginalDataShares = ph.NumOriginalDataShares h.EvidenceHash = ph.EvidenceHash h.LastResultsHash = ph.LastResultsHash h.LastCommitHash = ph.LastCommitHash @@ -1364,8 +1370,9 @@ func (msgs Messages) splitIntoShares() NamespacedShares { return shares } -// ComputeShares splits block data into shares of an original data square. -func (data *Data) ComputeShares() NamespacedShares { +// ComputeShares splits block data into shares of an original data square and +// returns them along with an amount of non-redundant shares. +func (data *Data) ComputeShares() (NamespacedShares, int) { // TODO(ismail): splitting into shares should depend on the block size and layout // see: https://github.com/lazyledger/lazyledger-specs/blob/master/specs/block_proposer.md#laying-out-transactions-and-messages @@ -1388,7 +1395,7 @@ func (data *Data) ComputeShares() NamespacedShares { intermRootsShares...), evidenceShares...), msgShares...), - tailShares...) + tailShares...), curLen } func getNextSquareNum(length int) int { diff --git a/types/block_test.go b/types/block_test.go index e2af83ecb7..00725aaedb 100644 --- a/types/block_test.go +++ b/types/block_test.go @@ -336,21 +336,22 @@ func TestHeaderHash(t *testing.T) { expectHash bytes.HexBytes }{ {"Generates expected hash", &Header{ - Version: tmversion.Consensus{Block: 1, App: 2}, - ChainID: "chainId", - Height: 3, - Time: time.Date(2019, 10, 13, 16, 14, 44, 0, time.UTC), - LastBlockID: makeBlockID(make([]byte, tmhash.Size), 6, make([]byte, tmhash.Size)), - LastCommitHash: tmhash.Sum([]byte("last_commit_hash")), - DataHash: tmhash.Sum([]byte("data_hash")), - ValidatorsHash: tmhash.Sum([]byte("validators_hash")), - NextValidatorsHash: tmhash.Sum([]byte("next_validators_hash")), - ConsensusHash: tmhash.Sum([]byte("consensus_hash")), - AppHash: tmhash.Sum([]byte("app_hash")), - LastResultsHash: tmhash.Sum([]byte("last_results_hash")), - EvidenceHash: tmhash.Sum([]byte("evidence_hash")), - ProposerAddress: crypto.AddressHash([]byte("proposer_address")), - }, hexBytesFromString("F740121F553B5418C3EFBD343C2DBFE9E007BB67B0D020A0741374BAB65242A4")}, + Version: tmversion.Consensus{Block: 1, App: 2}, + ChainID: "chainId", + Height: 3, + Time: time.Date(2019, 10, 13, 16, 14, 44, 0, time.UTC), + LastBlockID: makeBlockID(make([]byte, tmhash.Size), 6, make([]byte, tmhash.Size)), + LastCommitHash: tmhash.Sum([]byte("last_commit_hash")), + DataHash: tmhash.Sum([]byte("data_hash")), + NumOriginalDataShares: 4, + ValidatorsHash: tmhash.Sum([]byte("validators_hash")), + NextValidatorsHash: tmhash.Sum([]byte("next_validators_hash")), + ConsensusHash: tmhash.Sum([]byte("consensus_hash")), + AppHash: tmhash.Sum([]byte("app_hash")), + LastResultsHash: tmhash.Sum([]byte("last_results_hash")), + EvidenceHash: tmhash.Sum([]byte("evidence_hash")), + ProposerAddress: crypto.AddressHash([]byte("proposer_address")), + }, hexBytesFromString("3BA96EAE652191EDBEA84E130C32E94AD86A901B856EC7201B776669F72DE39F")}, {"nil header yields nil", nil, nil}, {"nil ValidatorsHash yields nil", &Header{ Version: tmversion.Consensus{Block: 1, App: 2}, @@ -428,20 +429,21 @@ func TestMaxHeaderBytes(t *testing.T) { timestamp := time.Date(math.MaxInt64, 0, 0, 0, 0, 0, math.MaxInt64, time.UTC) h := Header{ - Version: tmversion.Consensus{Block: math.MaxInt64, App: math.MaxInt64}, - ChainID: maxChainID, - Height: math.MaxInt64, - Time: timestamp, - LastBlockID: makeBlockID(make([]byte, tmhash.Size), math.MaxInt32, make([]byte, tmhash.Size)), - LastCommitHash: tmhash.Sum([]byte("last_commit_hash")), - DataHash: tmhash.Sum([]byte("data_hash")), - ValidatorsHash: tmhash.Sum([]byte("validators_hash")), - NextValidatorsHash: tmhash.Sum([]byte("next_validators_hash")), - ConsensusHash: tmhash.Sum([]byte("consensus_hash")), - AppHash: tmhash.Sum([]byte("app_hash")), - LastResultsHash: tmhash.Sum([]byte("last_results_hash")), - EvidenceHash: tmhash.Sum([]byte("evidence_hash")), - ProposerAddress: crypto.AddressHash([]byte("proposer_address")), + Version: tmversion.Consensus{Block: math.MaxInt64, App: math.MaxInt64}, + ChainID: maxChainID, + Height: math.MaxInt64, + Time: timestamp, + LastBlockID: makeBlockID(make([]byte, tmhash.Size), math.MaxInt32, make([]byte, tmhash.Size)), + LastCommitHash: tmhash.Sum([]byte("last_commit_hash")), + DataHash: tmhash.Sum([]byte("data_hash")), + NumOriginalDataShares: math.MaxInt64, + ValidatorsHash: tmhash.Sum([]byte("validators_hash")), + NextValidatorsHash: tmhash.Sum([]byte("next_validators_hash")), + ConsensusHash: tmhash.Sum([]byte("consensus_hash")), + AppHash: tmhash.Sum([]byte("app_hash")), + LastResultsHash: tmhash.Sum([]byte("last_results_hash")), + EvidenceHash: tmhash.Sum([]byte("evidence_hash")), + ProposerAddress: crypto.AddressHash([]byte("proposer_address")), } bz, err := h.ToProto().Marshal() @@ -479,11 +481,11 @@ func TestBlockMaxDataBytes(t *testing.T) { }{ 0: {-10, 1, 0, true, 0}, 1: {10, 1, 0, true, 0}, - 2: {841, 1, 0, true, 0}, - 3: {842, 1, 0, false, 0}, - 4: {843, 1, 0, false, 1}, - 5: {954, 2, 0, false, 1}, - 6: {1053, 2, 100, false, 0}, + 2: {851, 1, 0, true, 0}, + 3: {852, 1, 0, false, 0}, + 4: {853, 1, 0, false, 1}, + 5: {964, 2, 0, false, 1}, + 6: {1063, 2, 100, false, 0}, } for i, tc := range testCases { @@ -510,9 +512,9 @@ func TestBlockMaxDataBytesNoEvidence(t *testing.T) { }{ 0: {-10, 1, true, 0}, 1: {10, 1, true, 0}, - 2: {841, 1, true, 0}, - 3: {842, 1, false, 0}, - 4: {843, 1, false, 1}, + 2: {851, 1, true, 0}, + 3: {852, 1, false, 0}, + 4: {853, 1, false, 1}, } for i, tc := range testCases {