Block是区块链数据结构里面的一个最基本的元素。
•Header,即区块头,这里又包含了三项数据,包括:
•Number:Block Number,即区块号,用来标识每个区块。
•PreviousHash:前一个区块头的hash值
•DataHash:Data域的hash值,这里没有包含Metadata
•Data,即区块数据,这里包含的就是所有的Transaction数据
•Metadata,元数据就是由一个value和相应的签名组成,包括:
•Metadata[BlockMetadataIndex_SIGNATURES]:签名信息
•Metadata[BlockMetadataIndex_LAST_CONFIG]:Channel的最新配置区块索引
•Metadata[BlockMetadataIndex_TRANSACTIONS_FILTER]:交易是否合法的标记
•Metadata[BlockMetadataIndex_ORDERER]:Channel的排序服务信息
type Block struct {
Header *BlockHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
Data *BlockData `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"`
Metadata *BlockMetadata `protobuf:"bytes,3,opt,name=metadata" json:"metadata,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}