HyperLedger/Fabric 快速上手优化版 fabric-sdk-java
文章目录
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. 区块链网络修改
############################################################ # 关闭每次重启fabric网络时重新生成通道及加密配置文件信息(建议) ############################################################ # 首次启动 network_setup.sh 脚本后, 修改以下代码, 重启 Fabric 服务 vim network_setup.sh # 删除 network_setup.sh 脚本中的以下代码 # function networkUp -> source generateArtifacts.sh $CH_NAME # 删除 else 整个片段的代码 # function networkDown -> rm -rf channel-artifacts/*.block channel-artifacts/*.tx crypto-config ############################################################ # 注释掉tls配置(必须) ############################################################ cd fabric/examples/e2e_cli vim base/peer-base.yaml CORE_PEER_TLS_ENABLED=true # 改为 CORE_PEER_TLS_ENABLED=false vim base/docker-compose-base.yaml ORDERER_GENERAL_TLS_ENABLED=true # 改为 ORDERER_GENERAL_TLS_ENABLED=false vim docker-compose-cli.yaml CORE_PEER_TLS_ENABLED=true # 改为 CORE_PEER_TLS_ENABLED=false ############################################################ # 注释掉 script.sh 脚本中原有通过 cli 命令行操作区块链网络的相关代码 ############################################################ cd fabric/examples/e2e_cli vim scripts/script.sh # 注释块起始位置(包含以下部分) ## Create channel echo "Creating channel..." createChannel # 注释块截至位置(包含以下部分) #Query on chaincode on Peer3/Org2, check if the result is 90 echo "Querying chaincode on org2/peer3..." chaincodeQuery 3 90 ############################################################ # 启动区块链网络, 先关闭再启动, 或 直接 restart ############################################################ bash network_setup.sh down bash network_setup.sh up
4. SDK 操作步骤
-
拉取 github 仓库指定版本代码到本地 - https://github.com/AnswerAIL/fabric-sdk-server.git
- fabric-sdk-server release 1.1
-
配置 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/*
背书策略文件, 可不用替换
说明: 考虑到方便大家上手, 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 -> JoinPeerTest -> QueryTest -> InvokeTest -> QueryTest -> UpgradeTest -> QueryTest
5. 相关网址
- 六、hyperledger fabric 投票应用(java-sdk)
- Hyperledger Fabric 1.0 从零开始(十二)——fabric-sdk-java应用
- hyperledger/fabric sdk-java编译
- Hyperledger Fabric(三)- fabric-sdk-java
- Hyperledger Fabric SDK 示例fabric-samples-《balance-transfer》之四《安装chaincode》
- Hyperledger Fabric SDK 示例fabric-samples-《balance-transfer》之十《查询链信息》
- 四、hyperledger fabric node sdk调用链码(fabcar)
- Hyperledger Fabric SDK 示例fabric-samples-《balance-transfer》之十一《查询已经安装/实例化的chaincode》
- HyperLeger Fabric SDK开发(七)——ledger
- HyperLeger Fabric SDK开发(七)——ledger
- vmware workstation12+ubuntu16版本快速启动hyperledger fabric1.0网络
- 快速搭建一个Hyperledger Fabric 1.0的环境(目前很多环境搭建方法都会中途挂掉,这个亲测有效!)
- Hyperledger Fabric SDK 示例fabric-samples-《balance-transfer》之六《执行chaincode》
- hyperledger/fabric-sdk-node测试运行
- Hyperledger Fabric SDK 示例fabric-samples-《balance-transfer》之三《加入到Channel》
- Hyperledger Fabric SDK 示例fabric-samples-《balance-transfer》之九《查询指定的交易信息》
- Hyperledger Fabric Client SDK for Go 下载与配置
- Hyperledger Fabric 1.0 快速部署
- Hyperledger Fabric SDK 示例fabric-samples-《balance-transfer》之七《查询chaincode》
- Hyperledger Fabric V1.0– 开发者快速入门