- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
- API参考
- SDK参考
- 常见问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
Gateway Java Demo
本节提供一个基于Fabric Gateway Java的Demo,Fabric Gateway Java对Java SDK进行了封装,简化了代码量,帮助用户开发自己的Java客户端应用程序。
![](https://support.huaweicloud.com/devg-bcs/public_sys-resources/note_3.0-zh-cn.png)
本Demo仅适用于Hyperledger Fabric增强版的区块链实例。
准备工作
- 开通CloudIDE(或者用户自己准备JDK、maven和eclipse/IntelliJ IDEA)。
CloudIDE是软件开发生产线 CodeArts的云端开发环境服务,向开发者提供按需配置、快速获取的工作空间(包含编辑器和运行环境)。
在CloudIDE上创建一个空的Java工程,如图1所示。
- 下载Java SDK示例源码,获取方法:登录区块链服务管理控制台,进入“应用案例”,在“Java示例Demo-Java SDK Demo”下方,单击“App_Gateway_Java_Demo”中Java项目源码的“下载”按钮。
- 购买区块链实例、安装链代码及实例化链代码操作,请参见《快速入门》。
部署应用
- 下载SDK和证书。
- 在“实例管理”页面,选择“Hyperledger Fabric增强版”页签,单击对应实例卡片上的“获取客户端配置”。
- 勾选“SDK文件”,SDK配置参数如下:
参数名称
说明
链代码名称
chaincodedemo
证书存放路径
/home/user/gatewayjavademo/config
通道名称
channel
组织&Peer节点
选择通道中所有节点组织
勾选“共识节点证书”。
勾选“Peer节点证书”,指定节点组织选择organization,勾选“管理员证书”。
- 单击“下载”,下载SDK配置文件、demo-orderer组织的管理员证书和organization组织的管理员证书。
- 复制并解压。
- 先下载工程源代码gatewayjavademo.zip文件并解压。
获取方法:登录区块链服务管理控制台,进入“应用案例”,在“Java示例Demo-Java SDK Demo”下方,单击“App_Gateway_Java_Demo”中Java项目源码的“下载”按钮。
- 将1步骤中的zip文件解压,把configs文件夹中的orderer文件夹、peer文件夹、sdk-config.json、sdk-config.yaml文件全部复制到gatewayjavademo目录下的config目录下。然后再将gatewayjavademo目录压缩成gatewayjavademo.zip包。
- 先下载工程源代码gatewayjavademo.zip文件并解压。
- 部署应用。
- 将新压缩的gatewayjavademo工程源代码gatewayjavademo.zip文件上传到CloudIDE开发环境中。
- 打开工程后等待一会,会自动下载工程依赖的包,然后按下图操作执行Run,就会得到预期结果。
- gatewayjavademo工程中config目录下demo-channel-sdk-config.yaml文件,必须与gatewayjavademo/src/main/java/handler/Main.java和MainForMultiTask文件中helper.setConfigCtx("config/demo-channel-sdk-config.yaml")代码路径相同,保证可以正常运行Main.java。
- 客户端app交易的时候,如果指定了未实例化的组织和peer,那么首次交易会超时失败,请您重新运行即可正常交易。
每次成功执行Main.java,将会执行basicTransactionSample、commitListenerSample、contractListenerSample、blockListenerSample四个方法,向区块链存入多对键值对;可以通过区块链浏览器可以查看交易记录。
- 将新压缩的gatewayjavademo工程源代码gatewayjavademo.zip文件上传到CloudIDE开发环境中。
常用接口
使用Fabric-Gateway-Java发起交易和查询,主要用到Network和Contract两类的接口,更多的api接口请参考Fabric官网。
- Network
主要有以下常用的接口:
接口名称
描述
参数值
返回值
getContract
获取Contract实例的接口
String chaincodeId
Contract
addBlockListener
设置监听器的接口,监听区块事件
Consumer<org.hyperledger.fabric.sdk.BlockEvent> listener
Consumer<org.hyperledger.fabric.sdk.BlockEvent>
getChannel
获取与network相关联channel的接口
/
org.hyperledger.fabric.sdk.Channel
removeBlockListener
移除监听器的接口
Consumer<org.hyperledger.fabric.sdk.BlockEvent> listener
void
- Contract
主要有以下常用的接口:
接口名称
描述
参数值
返回值
submitTransaction
发起交易的接口,需要输入调用方法与参数
String name, String... args
byte[]
evaluateTransaction
发起查询的接口,需要输入调用方法与参数
String name, String... args
byte[]
createTransaction
创建交易的接口,需要submit以发起交易
String name
Transaction
addContractListener
设置监听器的接口,监听已经提交的交易发出的事件
Consumer<ContractEvent> listener
Consumer<ContractEvent> listener
removeContractListener
移除监听器的接口
Consumer<ContractEvent> listener
void