40.Fabric 1.0源代码分析(40) Proposal(提案)
Fabric 1.0源代码笔记 之 Proposal(提案)1、Proposal概述Proposal,即向Endorser发起的提案。Proposal代码分布在protos/utils、protos/peer目录下,目录结构如下:protos/utils目录:proputils.go,Proposal工具函数。txutils.go,Proposal工具函数。protos/peer目录...
·
Fabric 1.0源代码笔记 之 Proposal(提案)
1、Proposal概述
Proposal,即向Endorser发起的提案。
Proposal代码分布在protos/utils、protos/peer目录下,目录结构如下:
protos/utils目录:
proputils.go,Proposal工具函数。
txutils.go,Proposal工具函数。
protos/peer目录:
proposal.pb.go,Proposal相关结构体定义。
2、Proposal相关结构体定义
2.1、SignedProposal定义
type SignedProposal struct {
ProposalBytes []byte //Proposal序列化,即type Proposal struct
Signature []byte //signer.Sign(ProposalBytes)
}
//代码在protos/peer/proposal.pb.go
2.2、Proposal定义
type Proposal struct {
Header []byte //Header序列化,即type Header struct
Payload []byte //ChaincodeProposalPayload序列化,即type ChaincodeProposalPayload struct
Extension []byte //扩展
}
//代码在protos/peer/proposal.pb.go
Header更详细内容,参考:Fabric 1.0源代码笔记 之 Tx(Transaction 交易)
2.3、ChaincodeProposalPayload定义
type ChaincodeProposalPayload struct {
Input []byte //ChaincodeInvocationSpec序列化,即type ChaincodeInvocationSpec struct
TransientMap map[string][]byte //瞬态映射
}
//代码在protos/peer/proposal.pb.go
ChaincodeInvocationSpec更详细内容,参考:[Fabric 1.0源代码笔记 之 Chaincode(链码)
3、ProposalResponse结构体定义
3.1、ProposalResponse定义
type ProposalResponse struct {
Version int32
Timestamp *google_protobuf1.Timestamp
Response *Response //type Response struct,peer.Response{Status: 200, Message: "OK"}}
Payload []byte
Endorsement *Endorsement //type Endorsement struct
}
//代码在protos/peer/proposal_response.pb.go
3.2、Response定义
type Response struct { //peer.Response{Status: 200, Message: "OK"}}
Status int32
Message string
Payload []byte
}
//代码在protos/peer/proposal_response.pb.go
3.3、Endorsement定义
type Endorsement struct {
Endorser []byte //bccspmsp.signer
Signature []byte
}
//代码在protos/peer/proposal_response.pb.go
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献8条内容
所有评论(0)