Documentation ¶
Index ¶
- func BlockDataHash(data *pcommon.BlockData) []byte
- func BlockHeaderBytes(blockHeader *pcommon.BlockHeader) []byte
- func BlockHeaderHash(blockHeader *pcommon.BlockHeader) []byte
- func CheckTxID(txid string, nonce, creator []byte) error
- func ComputeTxID(nonce, creator []byte) string
- func CopyBlockMetadata(src *pcommon.Block, dst *pcommon.Block)
- func CreateChaincodeProposal(headerType pcommon.HeaderType, channelID string, ...) (*ppeer.Proposal, string, error)
- func CreateChaincodeProposalWithTransient(headerType pcommon.HeaderType, channelID string, ...) (*ppeer.Proposal, string, error)
- func CreateChaincodeProposalWithTxIDAndTransient(headerType pcommon.HeaderType, channelID, txid string, ...) (*ppeer.Proposal, string, error)
- func CreateChaincodeProposalWithTxIDNonceAndTransient(txid string, headerType pcommon.HeaderType, channelID string, ...) (*ppeer.Proposal, string, error)
- func CreateDeployProposalFromChaincodeDeploymentSpec(channelID string, chaincodeDeploymentSpec *ppeer.ChaincodeDeploymentSpec, ...) (*ppeer.Proposal, string, error)
- func CreateGetChaincodesProposal(channelID string, creator []byte) (*ppeer.Proposal, string, error)
- func CreateGetInstalledChaincodesProposal(creator []byte) (*ppeer.Proposal, string, error)
- func CreateInstallProposalFromChaincodeDeploymentSpec(chaincodePackage proto.Message, creator []byte) (*ppeer.Proposal, string, error)
- func CreateNonce() ([]byte, error)
- func CreateNonceOrPanic() []byte
- func CreateProposalFromChaincodeInvocationSpec(headerType pcommon.HeaderType, channelID string, ...) (*ppeer.Proposal, string, error)
- func CreateProposalFromChaincodeInvocationSpecAndTxid(txid, channelID string, headerType pcommon.HeaderType, ...) (*ppeer.Proposal, string, error)
- func CreateProposalResponse(headerBytes, chaincodeProposalBytes, result, event []byte, ...) (*ppeer.ProposalResponse, error)
- func CreateProposalResponseFailure(headerBytes, chaincodeProposalBytes, result, event []byte, ...) (*ppeer.ProposalResponse, error)
- func CreateSignedEnvelope(headerType pcommon.HeaderType, channelID string, signer Signer, ...) (*pcommon.Envelope, error)
- func CreateSignedEnvelopeWithTLSBinding(headerType pcommon.HeaderType, channelID string, signer Signer, ...) (*pcommon.Envelope, error)
- func CreateSignedTx(proposal *ppeer.Proposal, signer Signer, ...) (*pcommon.Envelope, error)
- func CreateUpgradeProposalFromChaincodeDeploymentSpec(channelID string, chaincodeDeploymentSpec *ppeer.ChaincodeDeploymentSpec, ...) (*ppeer.Proposal, string, error)
- func EnvelopeToConfigUpdate(configtx *pcommon.Envelope) (*pcommon.ConfigUpdateEnvelope, error)
- func ExtractChannelHeaderFromEnvelope(envelope *pcommon.Envelope) (*pcommon.ChannelHeader, error)
- func ExtractChannelIDFromEnvelope(envelope *pcommon.Envelope) (string, error)
- func ExtractEnvelope(block *pcommon.Block, index int) (*pcommon.Envelope, error)
- func ExtractEnvelopeOrPanic(block *pcommon.Block, index int) *pcommon.Envelope
- func GetActionFromEnvelope(encodedEnvelope []byte) (*ppeer.ChaincodeAction, error)
- func GetActionFromEnvelopeMsg(envelope *pcommon.Envelope) (*ppeer.ChaincodeAction, error)
- func GetBytesChaincodeActionPayload(chaincodeActionPayload *ppeer.ChaincodeActionPayload) ([]byte, error)
- func GetBytesChaincodeEvent(chaincodeEvent *ppeer.ChaincodeEvent) ([]byte, error)
- func GetBytesChaincodeProposalPayload(chaincodeProposalPayload *ppeer.ChaincodeProposalPayload) ([]byte, error)
- func GetBytesEnvelope(envelope *pcommon.Envelope) ([]byte, error)
- func GetBytesHeader(header *pcommon.Header) ([]byte, error)
- func GetBytesPayload(payload *pcommon.Payload) ([]byte, error)
- func GetBytesProposalPayloadForTx(chaincodeProposalPayload *ppeer.ChaincodeProposalPayload) ([]byte, error)
- func GetBytesProposalResponse(proposalResponse *ppeer.ProposalResponse) ([]byte, error)
- func GetBytesProposalResponsePayload(hash, result, event []byte, response *ppeer.Response, ...) ([]byte, error)
- func GetBytesResponse(response *ppeer.Response) ([]byte, error)
- func GetBytesSignatureHeader(signatureHeader *pcommon.SignatureHeader) ([]byte, error)
- func GetBytesTransaction(transaction *ppeer.Transaction) ([]byte, error)
- func GetChannelIDFromBlock(block *pcommon.Block) (string, error)
- func GetChannelIDFromBlockBytes(encoded []byte) (string, error)
- func GetConsenterMetadataFromBlock(block *pcommon.Block) (*pcommon.Metadata, error)
- func GetLastConfigIndexFromBlock(block *pcommon.Block) (uint64, error)
- func GetLastConfigIndexFromBlockOrPanic(block *pcommon.Block) uint64
- func GetMetadataFromBlock(block *pcommon.Block, index pcommon.BlockMetadataIndex) (*pcommon.Metadata, error)
- func GetMetadataFromBlockOrPanic(block *pcommon.Block, index pcommon.BlockMetadataIndex) *pcommon.Metadata
- func GetOrComputeTxIDFromEnvelope(envelopeBytes []byte) (string, error)
- func GetPayloads(transactionAction *ppeer.TransactionAction) (*ppeer.ChaincodeActionPayload, *ppeer.ChaincodeAction, error)
- func GetProposalHash1(header *pcommon.Header, chaincodeProposalPayloadBytes []byte) ([]byte, error)
- func GetProposalHash2(header *pcommon.Header, chaincodeProposalPayloadBytes []byte) ([]byte, error)
- func GetSignedProposal(proposal *ppeer.Proposal, signer Signer) (*ppeer.SignedProposal, error)
- func InitBlockMetadata(block *pcommon.Block)
- func InvokedChaincodeName(proposalBytes []byte) (string, error)
- func IsConfigBlock(block *pcommon.Block) bool
- func IsConfigTransaction(envelope *pcommon.Envelope) bool
- func LogMessageForSerializedIdentities(signedData []*SignedData) string
- func LogMessageForSerializedIdentity(encodedSerializedIdentity []byte) string
- func MakeChannelHeader(headerType pcommon.HeaderType, version int32, chainID string, epoch uint64) *pcommon.ChannelHeader
- func MakePayloadHeader(channelHeader *pcommon.ChannelHeader, signatureHeader *pcommon.SignatureHeader) *pcommon.Header
- func MakeSignatureHeader(serializedCreatorCertChain []byte, nonce []byte) *pcommon.SignatureHeader
- func Marshal(message proto.Message) ([]byte, error)
- func MarshalOrPanic(message proto.Message) []byte
- func MockSignedEndorserProposal1OrPanic(channelID string, chaincodeSpec *ppeer.ChaincodeSpec, ...) (*ppeer.SignedProposal, *ppeer.Proposal)
- func MockSignedEndorserProposal2OrPanic(channelID string, chaincodeSpec *ppeer.ChaincodeSpec, signer Signer) (*ppeer.SignedProposal, *ppeer.Proposal)
- func NewBlock(seqNum uint64, previousHash []byte) *pcommon.Block
- func NewConfigGroup() *pcommon.ConfigGroup
- func NewSignatureHeader(serializedIdentity []byte) (*pcommon.SignatureHeader, error)
- func NewSignatureHeaderOrPanic(serializedIdentity []byte) *pcommon.SignatureHeader
- func SetTxID(channelHeader *pcommon.ChannelHeader, signatureHeader *pcommon.SignatureHeader)
- func SignOrPanic(signer Signer, msg []byte) []byte
- func Unmarshal(encoded []byte, message proto.Message) error
- func UnmarshalBlock(encoded []byte) (*pcommon.Block, error)
- func UnmarshalBlockOrPanic(encoded []byte) *pcommon.Block
- func UnmarshalChaincodeAction(encoded []byte) (*ppeer.ChaincodeAction, error)
- func UnmarshalChaincodeActionPayload(encoded []byte) (*ppeer.ChaincodeActionPayload, error)
- func UnmarshalChaincodeDeploymentSpec(encoded []byte) (*ppeer.ChaincodeDeploymentSpec, error)
- func UnmarshalChaincodeEvent(encoded []byte) (*ppeer.ChaincodeEvent, error)
- func UnmarshalChaincodeHeaderExtension(encoded []byte) (*ppeer.ChaincodeHeaderExtension, error)
- func UnmarshalChaincodeID(encoded []byte) (*ppeer.ChaincodeID, error)
- func UnmarshalChaincodeInvocationSpec(encoded []byte) (*ppeer.ChaincodeInvocationSpec, error)
- func UnmarshalChaincodeProposalPayload(encoded []byte) (*ppeer.ChaincodeProposalPayload, error)
- func UnmarshalChannelHeader(encoded []byte) (*pcommon.ChannelHeader, error)
- func UnmarshalEnvelope(encoded []byte) (*pcommon.Envelope, error)
- func UnmarshalEnvelopeOfType(envelope *pcommon.Envelope, headerType pcommon.HeaderType, ...) (*pcommon.ChannelHeader, error)
- func UnmarshalEnvelopeOrPanic(encoded []byte) *pcommon.Envelope
- func UnmarshalHeader(encoded []byte) (*pcommon.Header, error)
- func UnmarshalIdentifierHeader(encoded []byte) (*pcommon.IdentifierHeader, error)
- func UnmarshalPayload(encoded []byte) (*pcommon.Payload, error)
- func UnmarshalPayloadOrPanic(encoded []byte) *pcommon.Payload
- func UnmarshalProposal(encoded []byte) (*ppeer.Proposal, error)
- func UnmarshalProposalResponse(encoded []byte) (*ppeer.ProposalResponse, error)
- func UnmarshalProposalResponsePayload(encoded []byte) (*ppeer.ProposalResponsePayload, error)
- func UnmarshalResponse(encoded []byte) (*ppeer.Response, error)
- func UnmarshalSerializedIdentity(encoded []byte) (*pmsp.SerializedIdentity, error)
- func UnmarshalSignatureHeader(encoded []byte) (*pcommon.SignatureHeader, error)
- func UnmarshalSignatureHeaderOrPanic(encoded []byte) *pcommon.SignatureHeader
- func UnmarshalTransaction(encoded []byte) (*ppeer.Transaction, error)
- type BlockVerifierFunc
- type SignedData
- type Signer
- type VerifierBuilder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BlockDataHash ¶
BlockDataHash 计算区块内每个交易的哈希值。
func BlockHeaderBytes ¶
func BlockHeaderBytes(blockHeader *pcommon.BlockHeader) []byte
BlockHeaderBytes
fabric 将区块头中区块编号、区块交易哈希和上一个区块的哈希值组装到 asn1Header 结构体中, 然后对其进行 asn.1 编码,编码后得到的字节数组作为区块头的字节表示形式。
mayy 直接计算区块头的 protobuf 编码值,弃用 fabric 的做法。
func BlockHeaderHash ¶
func BlockHeaderHash(blockHeader *pcommon.BlockHeader) []byte
BlockHeaderHash 计算区块头的 sha256 哈希值。
func ComputeTxID ¶
ComputeTxID 根据给定的随机 nonce 值以及创造者的身份 creator 计算 txID。
func CopyBlockMetadata ¶
CopyBlockMetadata 将区块中的元数据拷贝到目标区块中。
func CreateChaincodeProposal ¶
func CreateChaincodeProposal(headerType pcommon.HeaderType, channelID string, chaincodeInvocationSpec *ppeer.ChaincodeInvocationSpec, creator []byte) (*ppeer.Proposal, string, error)
func CreateNonce ¶
CreateNonce 产生一个 24 字节长度伪随机字节数组,当产生的数组长度不为 24 时,或者产生其他错误时,该方法会返回一个错误。
func CreateNonceOrPanic ¶
func CreateNonceOrPanic() []byte
CreateNonceOrPanic 产生一个 24 字节长度伪随机字节数组,当产生的数组长度不为 24 时,或者产生其他错误时, 该方法会 panic。
func CreateProposalFromChaincodeInvocationSpec ¶
func CreateProposalFromChaincodeInvocationSpec(headerType pcommon.HeaderType, channelID string, chaincodeInvocationSpec *ppeer.ChaincodeInvocationSpec, creator []byte) (*ppeer.Proposal, string, error)
func CreateProposalFromChaincodeInvocationSpecAndTxid ¶
func CreateProposalFromChaincodeInvocationSpecAndTxid(txid, channelID string, headerType pcommon.HeaderType, chaincodeInvocationSpec *ppeer.ChaincodeInvocationSpec, creator []byte) (*ppeer.Proposal, string, error)
func CreateProposalResponse ¶
func CreateProposalResponse(headerBytes, chaincodeProposalBytes, result, event []byte, response *ppeer.Response, chaincodeId *ppeer.ChaincodeID, signer Signer) (*ppeer.ProposalResponse, error)
func CreateSignedEnvelope ¶
func CreateSignedTx ¶
func EnvelopeToConfigUpdate ¶
func EnvelopeToConfigUpdate(configtx *pcommon.Envelope) (*pcommon.ConfigUpdateEnvelope, error)
EnvelopeToConfigUpdate 将 Envelope 中的负载 Payload 反序列化得到 ConfigUpdateEnvelope 结构体消息。
func ExtractChannelHeaderFromEnvelope ¶
func ExtractChannelHeaderFromEnvelope(envelope *pcommon.Envelope) (*pcommon.ChannelHeader, error)
ExtractChannelHeaderFromEnvelope 从 Envelope 的负载 Payload 的头部中提取出 ChannelHeader。
func ExtractChannelIDFromEnvelope ¶
ExtractChannelIDFromEnvelope 从 Envelope 的负载 Payload 的头部中提取出链 ID。
func ExtractEnvelope ¶
ExtractEnvelope 给定一个区块和某个交易数据的索引,将交易数据的原始字节数组反编译成 Envelope 结构体并返回。 交易数据在区块中的索引号必须是合法的,不然会返回错误。
func ExtractEnvelopeOrPanic ¶
ExtractEnvelopeOrPanic 给定一个区块和某个交易数据的索引,将交易数据的原始字节数组反编译成 Envelope 结构体并返回, 如果反序列化失败,则会直接 panic。
func GetActionFromEnvelope ¶
func GetActionFromEnvelope(encodedEnvelope []byte) (*ppeer.ChaincodeAction, error)
func GetActionFromEnvelopeMsg ¶
func GetActionFromEnvelopeMsg(envelope *pcommon.Envelope) (*ppeer.ChaincodeAction, error)
func GetBytesChaincodeActionPayload ¶
func GetBytesChaincodeActionPayload(chaincodeActionPayload *ppeer.ChaincodeActionPayload) ([]byte, error)
GetBytesChaincodeActionPayload 计算给定的 ChaincodeActionPayload 结构体消息经序列化后的 protobuf 字节数组。
func GetBytesChaincodeEvent ¶
func GetBytesChaincodeEvent(chaincodeEvent *ppeer.ChaincodeEvent) ([]byte, error)
GetBytesChaincodeEvent 计算给定的 ChaincodeEvent 结构体消息经序列化后的 protobuf 字节数组。
func GetBytesChaincodeProposalPayload ¶
func GetBytesChaincodeProposalPayload(chaincodeProposalPayload *ppeer.ChaincodeProposalPayload) ([]byte, error)
GetBytesChaincodeProposalPayload 计算给定的 ChaincodeProposalPayload 结构体消息经序列化后的 protobuf 字节数组。
func GetBytesEnvelope ¶
GetBytesEnvelope 计算给定的 Envelope 结构体消息经序列化后的 protobuf 字节数组。
func GetBytesHeader ¶
GetBytesHeader 计算给定的 Header 结构体消息经序列化后的 protobuf 字节数组。
func GetBytesPayload ¶
GetBytesPayload 计算给定的 Payload 结构体消息经序列化后的 protobuf 字节数组。
func GetBytesProposalPayloadForTx ¶
func GetBytesProposalPayloadForTx(chaincodeProposalPayload *ppeer.ChaincodeProposalPayload) ([]byte, error)
GetBytesProposalPayloadForTx 方法将 ChaincodeProposalPayload 消息结构体中的 TransientMap 设置成空, 然后对其进行序列化,将序列化结果进行返回。
func GetBytesProposalResponse ¶
func GetBytesProposalResponse(proposalResponse *ppeer.ProposalResponse) ([]byte, error)
GetBytesProposalResponse 计算给定的 ProposalResponse 结构体消息经序列化后的 protobuf 字节数组。
func GetBytesProposalResponsePayload ¶
func GetBytesProposalResponsePayload(hash, result, event []byte, response *ppeer.Response, chaincodeId *ppeer.ChaincodeID) ([]byte, error)
GetBytesProposalResponsePayload 给定链码执行结果 result、 事件 event、响应 response 和 链码 id,组装出一个 ChaincodeAction 结构体消息,并对它进行序列化,得到字节数组,然后随给定的哈希值 hash,组装出一个 ProposalResponsePayload 结构体消息,最后返回对此结构体消息进行序列化后的 protobuf 字节数组。
func GetBytesResponse ¶
GetBytesResponse 计算给定的 Response 结构体消息经序列化后的 protobuf 字节数组。
func GetBytesSignatureHeader ¶
func GetBytesSignatureHeader(signatureHeader *pcommon.SignatureHeader) ([]byte, error)
GetBytesSignatureHeader 计算给定的 SignatureHeader 结构体消息经序列化后的 protobuf 字节数组。
func GetBytesTransaction ¶
func GetBytesTransaction(transaction *ppeer.Transaction) ([]byte, error)
GetBytesTransaction 计算给定的 Transaction 结构体消息经序列化后的 protobuf 字节数组。
func GetChannelIDFromBlock ¶
GetChannelIDFromBlock 提取给定的区块中的第一条交易数据,交易数据中含有通道信息, 进而可以提取出通道 ID。
func GetChannelIDFromBlockBytes ¶
GetChannelIDFromBlockBytes 提取给定的区块中的第一条交易数据,交易数据中含有通道信息, 进而可以提取出通道 ID。
func GetConsenterMetadataFromBlock ¶
GetConsenterMetadataFromBlock 区块元数据中的第一条元数据,即签名背书数据中含有共识者的元数据。
- Block.Metadata.Metadata[0] -> Metadata;
- Metadata.Value -> OrdererBlockMetadata;
- OrdererMetadata.ConsenterMetadata -> Metadata
func GetLastConfigIndexFromBlock ¶
GetLastConfigIndexFromBlock 区块元数据中的第一条数据,即签名背书数据中含有排序节点的元数据, 在此元数据中存有最后一个配置区块的索引位置。
- Block.Metadata.Metadata[0] -> Metadata;
- Metadata.Value -> OrdererBlockMetadata.LastConfig.Index
LastConfig block 是指最新产生的配置区块,它记录了最近一次的网络配置更改。网络配置包括了参与 网络的组织、节点、通道和链代码等信息。当网络的配置发生变化时(例如添加或删除组织、节点或通道), 会生成一个配置交易,该交易被打包成一个 config 区块并广播到网络中。网络的参与者可以通过查询 LastConfig block 获取最新的网络配置信息,从而了解网络的状态和拓扑结构。当新的节点加入网络或 者网络配置发生变化时,其他节点可以通过检查 LastConfig block 来同步最新的配置信息,确保网络的 一致性和正确性。
func GetLastConfigIndexFromBlockOrPanic ¶
GetLastConfigIndexFromBlockOrPanic 区块元数据中的第一条数据,即签名背书数据中含有排序节点的元数据, 在此元数据中存有最后一个配置区块的索引位置。
- Block.Metadata.Metadata[0] -> Metadata;
- Metadata.Value -> OrdererBlockMetadata.LastConfig.Index
LastConfig block 是指最新产生的配置区块,它记录了最近一次的网络配置更改。网络配置包括了参与 网络的组织、节点、通道和链代码等信息。当网络的配置发生变化时(例如添加或删除组织、节点或通道), 会生成一个配置交易,该交易被打包成一个 config 区块并广播到网络中。网络的参与者可以通过查询 LastConfig block 获取最新的网络配置信息,从而了解网络的状态和拓扑结构。当新的节点加入网络或 者网络配置发生变化时,其他节点可以通过检查 LastConfig block 来同步最新的配置信息,确保网络的 一致性和正确性。
func GetMetadataFromBlock ¶
func GetMetadataFromBlock(block *pcommon.Block, index pcommon.BlockMetadataIndex) (*pcommon.Metadata, error)
GetMetadataFromBlock 根据给定的元数据索引位置,从给定的区块中获取对应的元数据。
func GetMetadataFromBlockOrPanic ¶
func GetMetadataFromBlockOrPanic(block *pcommon.Block, index pcommon.BlockMetadataIndex) *pcommon.Metadata
GetMetadataFromBlockOrPanic 根据给定的元数据索引位置,从给定的区块中获取对应的元数据,如果出错,则会 panic。
func GetPayloads ¶
func GetPayloads(transactionAction *ppeer.TransactionAction) (*ppeer.ChaincodeActionPayload, *ppeer.ChaincodeAction, error)
func GetProposalHash1 ¶
func GetProposalHash2 ¶
func GetSignedProposal ¶
func InitBlockMetadata ¶
InitBlockMetadata 初始化区块的元数据字段,确保每种类型的元数据不为 nil,为 nil 的用 []byte{} 赋值。
包括以下类型的元数据:
- SIGNATURES
- TRANSACTIONS_FILTER
- COMMIT_HASH
func InvokedChaincodeName ¶
InvokedChaincodeName 给定一个提案的 protobuf 序列化字节数组,对其进行反序列化,提取调用的链码名。
func IsConfigBlock ¶
IsConfigBlock 判断给定的区块是否是用来存储系统配置信息的区块。判断规则如下:
- 如果区块的数据内容是空的,则不是配置块;
- 如果区块中包含的交易条数不等于 1,则不是配置块;
- 如果区块中唯一的那条交易的负载的头部信息是空的,则不是配置块;
- 判断交易头中通道头的类型是否等于 HeaderType_CONFIG,如果等于,则是配置块,否则不是。
func IsConfigTransaction ¶
IsConfigTransaction 判断给定的交易是否是用来存储系统配置信息的交易。判断规则如下:
- 如果交易的负载的头部信息是空的,则不是配置块;
- 判断交易头中通道头的类型是否等于 HeaderType_CONFIG 或 HeaderType_ORDERER_TRANSACTION,如果等于,则是配置块,否则不是。
func LogMessageForSerializedIdentities ¶
func LogMessageForSerializedIdentities(signedData []*SignedData) string
func MakeChannelHeader ¶
func MakeChannelHeader(headerType pcommon.HeaderType, version int32, chainID string, epoch uint64) *pcommon.ChannelHeader
MakeChannelHeader 创建一个通道头。
func MakePayloadHeader ¶
func MakePayloadHeader(channelHeader *pcommon.ChannelHeader, signatureHeader *pcommon.SignatureHeader) *pcommon.Header
MakePayloadHeader 创建负载 Payload 的头,负载的头由两部分组成,一个是通道头 ChannelHeader,另一个是签名头 SignatureHeader, 通道头与签名头分别是 ChannelHeader 和 SignatureHeader 两个结构体消息序列化后产生的字节数组。
func MakeSignatureHeader ¶
func MakeSignatureHeader(serializedCreatorCertChain []byte, nonce []byte) *pcommon.SignatureHeader
MakeSignatureHeader 创建一个签名头。
func Marshal ¶
Marshal 此方法直接调用 google.golang.org/protobuf/proto 包的 Marshal 方法,对 proto.Message 类型的消息结构体 进行序列化,得到一串字节数组,如果序列化失败,则会返回错误。
func MarshalOrPanic ¶
MarshalOrPanic 此方法直接调用 google.golang.org/protobuf/proto 包的 Marshal 方法,对 proto.Message 类型的消 息结构体进行序列化,得到一串字节数组,如果序列化失败,则会 panic。
func MockSignedEndorserProposal1OrPanic ¶
func MockSignedEndorserProposal1OrPanic(channelID string, chaincodeSpec *ppeer.ChaincodeSpec, creator, signature []byte) (*ppeer.SignedProposal, *ppeer.Proposal)
func MockSignedEndorserProposal2OrPanic ¶
func MockSignedEndorserProposal2OrPanic(channelID string, chaincodeSpec *ppeer.ChaincodeSpec, signer Signer) (*ppeer.SignedProposal, *ppeer.Proposal)
func NewSignatureHeader ¶
func NewSignatureHeader(serializedIdentity []byte) (*pcommon.SignatureHeader, error)
NewSignatureHeader 此方法以一个能够代表“身份”信息的结构体消息序列化后产生的字节数组作为参数,然后 随机产生一个随机值 nonce,之后将身份结构体消息序列化后得到的字节数组和 nonce 组装成 SignatureHeader 结构体消息。
func NewSignatureHeaderOrPanic ¶
func NewSignatureHeaderOrPanic(serializedIdentity []byte) *pcommon.SignatureHeader
NewSignatureHeaderOrPanic 此方法以一个能够代表“身份”信息的结构体消息序列化后产生的字节数组作为参数,然后 随机产生一个随机值 nonce,之后将身份结构体消息序列化后得到的字节数组和 nonce 组装成 SignatureHeader 结构 体消息。如果在产生随机值的时候出错了,则此方法会 panic。
func SetTxID ¶
func SetTxID(channelHeader *pcommon.ChannelHeader, signatureHeader *pcommon.SignatureHeader)
SetTxID 根据给定的签名头中的随机值 nonce 和创造者 creator 计算交易的哈希值,并将其作为 通道头中的交易 id。
func SignOrPanic ¶
func Unmarshal ¶
Unmarshal 此方法直接调用 google.golang.org/protobuf/proto 包的 Unmarshal 方法,对给定的经过序列化后的字节数组 进行反序列化,得到一个结构体消息,如果反序列化失败,则会返回错误。
func UnmarshalBlockOrPanic ¶
func UnmarshalChaincodeAction ¶
func UnmarshalChaincodeAction(encoded []byte) (*ppeer.ChaincodeAction, error)
func UnmarshalChaincodeActionPayload ¶
func UnmarshalChaincodeActionPayload(encoded []byte) (*ppeer.ChaincodeActionPayload, error)
func UnmarshalChaincodeDeploymentSpec ¶
func UnmarshalChaincodeDeploymentSpec(encoded []byte) (*ppeer.ChaincodeDeploymentSpec, error)
func UnmarshalChaincodeEvent ¶
func UnmarshalChaincodeEvent(encoded []byte) (*ppeer.ChaincodeEvent, error)
func UnmarshalChaincodeHeaderExtension ¶
func UnmarshalChaincodeHeaderExtension(encoded []byte) (*ppeer.ChaincodeHeaderExtension, error)
func UnmarshalChaincodeID ¶
func UnmarshalChaincodeID(encoded []byte) (*ppeer.ChaincodeID, error)
func UnmarshalChaincodeInvocationSpec ¶
func UnmarshalChaincodeInvocationSpec(encoded []byte) (*ppeer.ChaincodeInvocationSpec, error)
func UnmarshalChaincodeProposalPayload ¶
func UnmarshalChaincodeProposalPayload(encoded []byte) (*ppeer.ChaincodeProposalPayload, error)
func UnmarshalChannelHeader ¶
func UnmarshalChannelHeader(encoded []byte) (*pcommon.ChannelHeader, error)
func UnmarshalEnvelopeOfType ¶
func UnmarshalEnvelopeOfType(envelope *pcommon.Envelope, headerType pcommon.HeaderType, message proto.Message) (*pcommon.ChannelHeader, error)
UnmarshalEnvelopeOfType 给定一个 Envelope,将其中的 Payload 字节数组反序列化成 Payload 结构体,如果得到的负载的通道头 ChannelHeader 的类型与给定的头类型(第二个参数)不一样,则返回错误,不然继续将 Payload 中的数据部分 Data 反序列化成另一 个结构体,并返回通道头的结构体消息。
func UnmarshalIdentifierHeader ¶
func UnmarshalIdentifierHeader(encoded []byte) (*pcommon.IdentifierHeader, error)
func UnmarshalPayloadOrPanic ¶
func UnmarshalProposalResponse ¶
func UnmarshalProposalResponse(encoded []byte) (*ppeer.ProposalResponse, error)
func UnmarshalProposalResponsePayload ¶
func UnmarshalProposalResponsePayload(encoded []byte) (*ppeer.ProposalResponsePayload, error)
func UnmarshalSerializedIdentity ¶
func UnmarshalSerializedIdentity(encoded []byte) (*pmsp.SerializedIdentity, error)
func UnmarshalSignatureHeader ¶
func UnmarshalSignatureHeader(encoded []byte) (*pcommon.SignatureHeader, error)
func UnmarshalSignatureHeaderOrPanic ¶
func UnmarshalSignatureHeaderOrPanic(encoded []byte) *pcommon.SignatureHeader
func UnmarshalTransaction ¶
func UnmarshalTransaction(encoded []byte) (*ppeer.Transaction, error)
Types ¶
type BlockVerifierFunc ¶
type BlockVerifierFunc func(header *pcommon.BlockHeader, metadata *pcommon.BlockMetadata) error
func BlockSignatureVerifier ¶
func BlockSignatureVerifier(bftEnabled bool, consenters []*pcommon.Consenter, policy policy) BlockVerifierFunc
BlockSignatureVerifier 构造验证区块中签名的方法。
TODO:为什么要有这么一句判断:if bftEnabled && len(mdSignature.SignatureHeader) == 0 && len(mdSignature.IdentifierHeader) > 0 {...}
type SignedData ¶
SignedData 结构体封装了用于验证签名的三元组:数据(Data)、身份(Identity)和签名(Signature)。 在大多数密码方案中,Data 通常包含签名者的身份和一个随机数。
func ConfigUpdateEnvelopeAsSignedData ¶
func ConfigUpdateEnvelopeAsSignedData(configUpdateEnvelope *pcommon.ConfigUpdateEnvelope) ([]*SignedData, error)
func EnvelopeAsSignedData ¶
func EnvelopeAsSignedData(envelope *pcommon.Envelope) ([]*SignedData, error)
type VerifierBuilder ¶
type VerifierBuilder func(block *pcommon.Block) BlockVerifierFunc