区块链教程Fabric1.0源代码分析Peer EndorserClient(Endorser客户端)

  兄弟连区块链教程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

区块链,区块链教程
学习区块链主流开发语言就是Go语言,这是谷歌发布的第二款开源编程语言,可以在不损失应用程序性能的情...
0 声望
1 粉丝
0 条评论
推荐阅读
区块链教程Fabric1.0源代码分析Peer(Endorser服务端)
兄弟连区块链教程Fabric1.0源代码分析Peer(Endorser服务端),2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更...

兄弟连区块链阅读 1.5k

web3从入门到实战-NFT与代币
NFT是 non-fungible token 的意思,non-fungible 是指这个 token 是唯一的、非同质化(ERC-721)或半同质化(ERC-1155)、不能被替换的。让我们以比特币为例。比特币是可替代的,因为你可以用你的比特币换取另一...

MangoGoing阅读 1.5k

封面图
如何使用Alchemy开发NFT智能合约(ERC721)
使用Solidity开发智能合约并在区块链上部署可能一开始听起来有些吓人:Solidity、安全性、gas优化、开发环境和gas费用,这些只是你需要了解的一些事情,才能让你的代码托管在区块链上。不用担心,我们来帮你梳理...

一只路过的小码农cxy阅读 683

超级账本与区块链应用场景
行业应用的用户是有一定的范围的,一般限制在一个市场或某一个企业内部。这就要求应用具有身份认证和许可授权的功能。其次,企业往往需要数据在传输过程中不会被窃取。要求应用具有保护交易信息传输的设计。

YOLO阅读 669

Hyperledger Fabric 使用 CouchDB 和复杂智能合约开发
在上个实验中,我们已经实现了简单智能合约实现及客户端开发,但该实验中智能合约只有基础的增删改查功能,且其中的数据管理功能与传统 MySQL 比相差甚远。本文将在前面实验的基础上,将 Hyperledger Fabric 的默...

风色幻想阅读 617

Hyperledger Fabric 1.4 环境搭建详解
虚拟机的安装与配置本教程以Vmware Workstation 16 Pro和xw版本为例进行安装与配置讲解,如果已经安装好linux系统,请跳过这一步!

Redamancy阅读 600

区块链原理与技术
一、项目背景1.1 供应链+金融场景供应链(Supply Chain)是指生产及流通过程中,涉及将产品或服务提供给最终用户活动的上游与下游企业所形成的网链结构。 金融机构对不同企业的的信用评级不同,核心企业有很大的...

老大小跟班阅读 571

封面图
0 声望
1 粉丝
宣传栏