本文是区块链浏览器系列的第二篇。

上一篇介绍了交易块中的数据结构,这一篇介绍区块链网络中的配置块数据结构。

这两种区块中数据结构内容的区别主要Payload结构体中的Data域中的内容,接下来将以类图的形式来解析Data域包含的信息:

classDiagram
class Payload{
Header *Header
Data []byte
}
class Header{
ChannelHeader []byte
SignatureHeader []byte
}
class ChannelHeader{
Type int32
Version int32
Timestamp *timestamp.Timestamp
TxId string
Epoch uint64
Extension []byte
TlsCertHash []byte
}
class SignatureHeader{
Creator []byte
Nonce []byte
}
class SerializedIdentity{
Mspid string
IdBytes []byte
}
class Certificate{
crypto/x509.Certificate
}

class ConfigEnvelope{
Config *Config
LastUpdate *Envelope
}
class Config{
Sequence uint64
ChannelGroup *ConfigGroup
}
class Envelope{
Payload []byte
Signature []byte
}
class ConfigGroup{
Version uint64
Groups map[string]*ConfigGroup
Values map[string]*ConfigValue
Policies map[string]*ConfigPolicy
ModPolicy string
}
class ConfigValue{
Version uint64
Value []byte
ModPolicy string
}
class ConfigPolicy{
Version uint64
Policy *Policy
ModPolicy string
}
class Policy{
Type int32
Value []byte
}

Payload --* Header
Header --* ChannelHeader
Header --* SignatureHeader
SignatureHeader --* SerializedIdentity
SerializedIdentity --* Certificate

Payload --* ConfigEnvelope
ConfigEnvelope --* Config
ConfigEnvelope --* Envelope

Config --* ConfigGroup
ConfigGroup --* ConfigGroup
ConfigGroup --* ConfigValue
ConfigGroup --* ConfigPolicy

ConfigPolicy --* Policy


声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin92
Github: mengbin92
cnblogs: 恋水无意