区块链之超级账本Fabric 基于SDK应用开发

这篇具有很好参考价值的文章主要介绍了区块链之超级账本Fabric 基于SDK应用开发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Fabric 应用开发模型

Fabric开发包含客户端应用和智能合约(chaincode)开发
chaincode开发完成之后被部署到区块链网络的Peer节点上面。通过chaincode来操作账本,当调用一个交易transaction时,实际上是在调用chaincode中的一个函数方法,它实现业务逻辑,并对账本进行get, put, delete操作。
客户端应用提供用户交互界面,调用fabric SDK,完成区块链的操作和交易
本次培训侧重客户端应用的开发

区块链之超级账本Fabric 基于SDK应用开发

二、Fabric SDK接口介绍
Fabric提供了SDK给应用程序调用,SDK包含了交易处理,成员管理,区块链查询和事件处理等接口

Fabric SDK具有以下特点: 底层接口调用很多都是异步返回,采用gRPC协议,能够很好的双向传输数据

gRPC结合Protocol Buffer能减少传输数据量,提高网络传输性能

支持语言有Go、Java、JavaScript、Python。本次配置我们以Java语言开发为例

和内部模块采用相同的接口,减少端口开放性,减少安全风险

整个Fabric网络,除了fabric-ca采用HTTP协议,其他都是GRPC协议

Fabric SDK接口模块
Fabric SDK定了两种模块的接口;一种访问fabric-ca接口,一种访问fabric网络接口,其中fabric-ca是可选的,可以选用其他成熟的第三方CA系统替换

Fabric SDK 提供的模块如下:
HFClient 模块:应用程序入口,提供通道管理,链码管理,数据存储,密码学相关的功能。每个HFC实例对应一个区块链网络,包含记账节点,排序节点等。如果应用层需要访问多个网络,可以建立多个HFC的实例

Config 模块:初始化HFC时需要离线获取配置信息,Config模块包含可信的根证书,排序服务节点证书和IP地址,记账节点证书和IP地址等。配置模块读取后传递给HFC

Channel 模块:对应通道实例,通道在配置了order和peer之后需要初始化,初始化的时候给order服务节点发送获取配置区块请求

Peer 模块:Peer节点是HFC模块发送背书请求、交易查询的节点。Peer实例包含了节点名称、地址、角色、注册证书等信息

Order模块:Order节点是HFC模块发送交易排序的节点。Order实例包含了排序服务节点的地址信息,定义了发送原子广播请求和获取区块的接口
User模块:代表了已经完成注册证书和签名密钥的实体,注册证书必须由区块链网络信任的CA颁发

用户身份(User Identity) 和 节点身份(Peer Identity)是有区别的,在SDK里面,用户身份可以访问秘钥信息,可以进行签名。而节点身份不能访问秘钥,只能验证签名

三、Fabric 应用开发流程

Fabric应用开发流程具有通用性 一般步骤如下:
1.在排序节点上创建通道
2.用户登记与注册
3.Peer节点加入通道
4.通过Peer节点安装实例化链码
5.发起交易并生成区块

发起交易如下图所示:
区块链之超级账本Fabric 基于SDK应用开发

> 四、Fabric 应用开发流程

如果应用层直接和Fabric SDK打交道,流程并不简单,同时会有大量的冗余代码,一般情况下在应用层和Fabric SDK中间还会为区块链包装一个Framework,,简化应用层和区块链对接的难度,对应用层来说不用关心区块链底层的逻辑和流程

区块链之超级账本Fabric 基于SDK应用开发

Fabric 源码介绍:
区块链之超级账本Fabric 基于SDK应用开发
区块链之超级账本Fabric 基于SDK应用开发
Fabric-CA 源码介绍:

api:CA 接口相关代码实现

cmd/fabric-ca-client: CA客户端相关代码实现

cmd/fabric-ca-server:CA服务端相关代码实现的功能的实现

lib/metadata::数据库操作代码实现

区块链之超级账本Fabric 基于SDK应用开发
五、Fabric应用开发注意事项

理解Fabric的运行,交易流程再开始应用开发,否则会摸不着门道

需要特别注意Fabric的配置选项,有加密,超时等

几乎每一个SDK或多或少的都会存在一些BUG,有些BUG大部分是SDK自身的,有些是Fabric的问题,那么遇到这些问题后,我们可以根据交易的流程来判断出哪一步出了问题,然后可以在每个节点修改日志级别来得到错误信息。再定位到SDK当中的某一行代码来进行调试

需要注意SDK版本和Fabric平台版本的匹配,不同版本会出现不兼容现象

建议初学者从Fabric自带的E2E例子开始学习会事半功倍文章来源地址https://www.toymoban.com/news/detail-414981.html

到了这里,关于区块链之超级账本Fabric 基于SDK应用开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包