Fabric 1.0原始碼分析(36) Peer #EndorserClient(Endorser客戶端)

尹成發表於2018-05-20
# Fabric 1.0原始碼筆記 之 Peer #EndorserClient(Endorser客戶端)

## 1、EndorserClient概述

EndorserClient相關程式碼分佈如下:

* protos/peer/peer.pb.go,EndorserClient介面及實現。
* peer/common/common.go,EndorserClient相關工具函式。

## 2、EndorserClient介面定義

```go
type EndorserClient interface {
    //處理Proposal
    ProcessProposal(ctx context.Context, in *SignedProposal, opts ...grpc.CallOption) (*ProposalResponse, error)
}
//程式碼在protos/peer/peer.pb.go
```

## 3、EndorserClient介面實現

EndorserClient介面實現,即endorserClient結構體及方法。

```go
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工具函式

```go
//獲取Endorser客戶端
func GetEndorserClient() (pb.EndorserClient, error) {
    clientConn, err := peer.NewPeerClientConnection()
    endorserClient := pb.NewEndorserClient(clientConn)
    return endorserClient, nil
}
//程式碼在peer/common/common.go
```






網址:http://www.qukuailianxueyuan.io/



欲領取造幣技術與全套虛擬機器資料

區塊鏈技術交流QQ群:756146052  備註:CSDN

尹成學院微信:備註:CSDN





網址:http://www.qukuailianxueyuan.io/



欲領取造幣技術與全套虛擬機器資料

區塊鏈技術交流QQ群:756146052  備註:CSDN

尹成學院微信:備註:CSDN

相關文章