1. 前言
由于 fabric-sdk-java 存在普遍的上手难问题, 官方 Java 版 sdk 单元测试 demo 比较难理解, 对于想要通过使用 java-sdk 入门 fabric 的朋友来说, 这个是一个比较大的阻碍。 鉴于此, 本博文重新整理了下 Java 版 sdk 的使用, 在官方源码的基础上进行重新封装一层, 目的就是消除这道入门障碍, 让大家都可以使用 java-sdk 来拥抱 fabric。
fabric-sdk-server项目地址 当前项目版本只适合大家入门fabric, 对于支持 tls 以及 ca 等其他功能的适配, 由于个人时间及工作的原因, 无法在现有版本上进行支持,后续有机会可能会在新版本中发布。
2. 前置条件
- JDK 1.8, 下载地址
- 安装 redis 服务, 下载地址
- 已成功搭建 fabric 区块链网络, 区块链网络搭建可参考《 hyperledger fabric 1.1区块链网络环境部署及cli实操》
3. 区块链网络修改
1 | |
4. SDK 操作步骤
- 拉取 github 仓库指定版本代码到本地 - https://github.com/AnswerAIL/fabric-sdk-server.git
-
配置 com.hyperledger.fabric.sdk.common.Constants 类中 redis 服务的信息
-
配置 com.hyperledger.fabric.sdk.common.Config 类中 区块链网络的节点信息
- 替换掉 answer-fabric-sdk\src\test\resources 下的配置文件, 注意是 XXX/
test/resources- chaincodes/*
智能合约, 如果你测的是官方转账功能, 可不用替换 - channel-artifacts/*
通道配置信息及创世纪块等, 可直接删掉, 将工具生成的目录拷贝过来 - config.properties
官方sdk配置文件, 可不必替换 - crypto-config/*
证书签名密钥等文件, 可直接删掉, 将工具生成的目录拷贝过来 - policy/*
背书策略文件, 可不用替换
- chaincodes/*
说明: 考虑到方便大家上手, channel-artifacts 和 crypto-config 目录的文件采用完成替换模式, 即: 删除掉该项目这两个文件夹下的文件, 然后直接将你生成好的这两个目录原封不动的拷贝过来即可。 项目下的智能合约代码为官方转账功能代码, 即:chaincode_example02.go
最便捷的方式: 第4步只需替换 channel-artifacts 和 crypto-config 两个目录的文件即可。
- 使用以下测试用例即可通过sdk来操作区块链网络
- APITest.java
模拟 全流程 操作区块链网络 - BlockChainTest.java
查询区块 | 账本信息 - InvokeTest.java
模拟转账操作 - QueryTest.java
查询智能合约 - UpgradeTest.java
升级智能合约 - JoinPeerTest.java
加入新节点
- APITest.java
建议按如下顺序执行测试用例: APITest -> JoinPeerTest -> QueryTest -> InvokeTest -> QueryTest -> UpgradeTest -> QueryTest