基于Spring的Fabric区块链Gateway,简化区块链开发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Spring的Fabric区块链Gateway,简化区块链开发相关的知识,希望对你有一定的参考价值。

参考技术A 学习Hyperledger Fabric有一阵子了,从网络搭建、SDK调用到基于Spring的Gateway的开发,一路走来,感觉还是有不少的坑。最近,终于有空,将这些东西整理出来,希望能帮到同路的小伙伴们。详细文档地址: https://ecsoya.github.io/fabric/ 。

前一阵子,曾整理过一篇文章,详细的介绍了Fabirc网络的搭建和部署,小伙伴们请自行查阅:推荐几个开源项目,教你快速搭建Hyperledger Fabric区块链网络

1. Java SDK: GitHub - hyperledger/fabric-sdk-java

2. Gateway: GitHub - hyperledger/fabric-gateway-java

这是我基于官方的Gateway项目,结合Spring MVC做出的一套框架。主要是将Chaincode的函数调用,包装成了Spring的服务。

1. 项目地址: GitHub - ecsoya/spring-fabric-gateway

2. 详细文档: https://ecsoya.github.io/fabric/pages/gateway.html

3. Maven地址:

一个精简版的Fabric区块链浏览器。

1. 项目地址: GitHub - ecsoya/spring-fabric-gateway

2. 详细文档: https://ecsoya.github.io/fabric/pages/explorer.html

3. Maven地址:

以上的项目,包含官方的SDK和Gateway,都离不开 Fabric 网络配置文件的支持。

所谓的配置文件,就是将所有的组织、Peer和其相关的证书,全部配置到一个JSON文件或YAML文件中,方便在项目中读取。

详细文档: https://ecsoya.github.io/fabric/pages/network-config.html

1. 文档: https://ecsoya.github.io/fabric/pages/demo.html

2. 源码: GitHub - ecsoya/fabric-demo

Hyperledger Fabric 2.x Java区块链应用

在上一篇文章中 《Hyperledger Fabric 2.x 自定义智能合约》 分享了智能合约的安装并使用 cli 客户端进行合约的调用;本文将使用 Java 代码基于 fabric-gateway-java 进行区块链网络的访问与交易,并集成 SpringBoot 框架。

Fabric Gateway SDK 实现Fabric的编程模型,提供了一系列简单的API给应用程序与Fabric区块链网络进行交互;

网络拓扑图:

file

应用程序将各自的网络交互委托给其网关,每个网关都了解网络信道拓扑,包括组织的多个Peer节点和排序节点,使应用程序专注于业务逻辑;Peer节点可以使用gossip协议在组织内部和组织之间相互通信。

 

添加网关sdk的依赖:

工程的目录结构如下图所示:

file

 

ordererpeer 节点的证书文件复制进来。

证书文件从 fabric-samplestest-network 目录中复制 ordererOrganizationspeerOrganizations 文件夹:

file

 

内容如下:

的配置

 

中添加以下内容,用于访问网关的相关配置:

分别构建网关、通道和合约的Bean对象,代码如下:

创建controller类,注入Contract对象调用合约方法:

调用接口 getUser

gitee:https://gitee.com/zlt2000/my-fabric-application-java

github:https://github.com/zlt2000/my-fabric-application-java

文章推荐

Dubbo想要个网关怎么办?试试整合Spring Cloud Gateway

Spring Security基于Oauth2的SSO单点登录怎样做?一个注解搞定

微服务业务监控和行为分析怎么做?试试日志埋点

Spring Cloud异步场景分布式事务怎样做?试试RocketMQ

Spring Cloud同步场景分布式事务怎样做?试试Seata

以上是关于基于Spring的Fabric区块链Gateway,简化区块链开发的主要内容,如果未能解决你的问题,请参考以下文章

WDK第七周_基于Fabric的区块链系统开发

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

基于hyperleger fabric区块链的校园化妆品交易平台搭建

基于区块链/Hyperledger Fabric与IPFS的电子病历数据传输系统搭建流程

《区块链原理设计与应用》 – 基于超级账本 Fabric 2.x(学习分享2.2-Fabric V1.x 与V2.0)

基于区块链/Hyperledger Fabric的商品交易溯源系统搭建步骤