基于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区块链网络进行交互;
网络拓扑图:
应用程序将各自的网络交互委托给其网关,每个网关都了解网络信道拓扑,包括组织的多个Peer节点和排序节点,使应用程序专注于业务逻辑;Peer节点可以使用gossip协议在组织内部和组织之间相互通信。
添加网关sdk的依赖:
工程的目录结构如下图所示:
把
orderer
和peer
节点的证书文件复制进来。证书文件从
fabric-samples
的test-network
目录中复制ordererOrganizations
与peerOrganizations
文件夹:内容如下:
的配置
中添加以下内容,用于访问网关的相关配置:
分别构建网关、通道和合约的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,简化区块链开发的主要内容,如果未能解决你的问题,请参考以下文章
基于hyperleger fabric区块链的校园化妆品交易平台搭建
基于区块链/Hyperledger Fabric与IPFS的电子病历数据传输系统搭建流程