區塊鏈教程Fabric1.0原始碼分析Peer EndorserClient(Endorser
阿新 • • 發佈:2018-11-06
區塊鏈教程Fabric1.0原始碼分析Peer EndorserClient(Endorser客戶端),2018年下半年,區塊鏈行業正逐漸褪去發展之初的浮躁、迴歸理性,表面上看相關人才需求與身價似乎正在回落。但事實上,正是初期泡沫的漸退,讓人們更多的關注點放在了區塊鏈真正的技術之上。
Fabric 1.0原始碼筆記 之 Peer #EndorserClient(Endorser客戶端)
1、EndorserClient概述
EndorserClient相關程式碼分佈如下:
- protos/peer/peer.pb.go,EndorserClient介面及實現。
- peer/common/common.go,EndorserClient相關工具函式。
2、EndorserClient介面定義
type EndorserClient interface {
//處理Proposal
ProcessProposal(ctx context.Context, in *SignedProposal, opts ...grpc.CallOption) (*ProposalResponse, error)
}
//程式碼在protos/peer/peer.pb.go
3、EndorserClient介面實現
EndorserClient介面實現,即endorserClient結構體及方法。
type endorserClient struct { cc *grpc.ClientConn } func NewEndorserClient(cc *grpc.ClientConn) EndorserClient { return &endorserClient{cc} } func (c *endorserClient) ProcessProposal(ctx context.Context, in *SignedProposal, opts ...grpc.CallOption) (*ProposalResponse, error) { out := new(ProposalResponse) err := grpc.Invoke(ctx, "/protos.Endorser/ProcessProposal", in, out, c.cc, opts...) return out, nil } //程式碼在protos/peer/peer.pb.go
4、EndorserClient工具函式
//獲取Endorser客戶端
func GetEndorserClient() (pb.EndorserClient, error) {
clientConn, err := peer.NewPeerClientConnection()
endorserClient := pb.NewEndorserClient(clientConn)
return endorserClient, nil
}
//程式碼在peer/common/common.go
感謝關注兄弟連區塊鏈教程分享!