Proposal,即向Endorser发起的提案。
Proposal代码分布在protos/utils、protos/peer目录下,目录结构如下:
protos/utils目录:
????proputils.go,Proposal工具函数。
????txutils.go,Proposal工具函数。
protos/peer目录:
????proposal.pb.go,Proposal相关结构体定义。
2.1、SignedProposal定义
type SignedProposal struct {
????ProposalBytes []byte //Proposal序列化,即type Proposal struct
????Signature []byte //signer.Sign(ProposalBytes)
}
//代码在protos/peer/proposal.pb.go
type Proposal struct {
????Header []byte //Header序列化,即type Header struct
????Payload []byte //ChaincodeProposalPayload序列化,即type ChaincodeProposalPayload struct
????Extension []byte //扩展
}
//代码在protos/peer/proposal.pb.go
type ChaincodeProposalPayload struct {
????Input []byte //ChaincodeInvocationSpec序列化,即type ChaincodeInvocationSpec struct
????TransientMap map[string][]byte //瞬态映射
}
//代码在protos/peer/proposal.pb.go
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
type Response struct { //peer.Response{Status: 200, Message: "OK"}}
????Status int32
????Message string
????Payload []byte
}
//代码在protos/peer/proposal_response.pb.go
type Endorsement struct {
????Endorser []byte //bccspmsp.signer
????Signature []byte
}
//代码在protos/peer/proposal_response.pb.go
区块链教程Fabric1.0源代码分析Proposal(提案)
原文:http://blog.51cto.com/14041296/2313978