Hyperledger Fabric(三)- fabric-sdk-java


一、 Fabric SDK

目前最新的Hyperledger Fabric的官方文档(v1.1.0-preview)上,对于Fabric SDK的描述仍少的可怜,仅是简单的几句描述,再加上两个github链接:

  • fabric-sdk-node
  • fabric-sdk-java

其实通过Hyperledger在github上的项目我们可以看到,Hyperledger Fabric还提供了另外三种SDK:

  • fabric-sdk-go
  • fabric-sdk-py
  • fabric-sdk-rest

其中,当然是官方文档提到的fabric-sdk-node以及fabric-sdk-java的star更多,使用更 方便 。方便是不可能的,这辈子都不可能的。
官方仅仅是给出了一份 完善 较为完善的nodejs文档,和一份可以说根本不算文档的java 启动说明 eclipse启动说明。所以如果可以的话,暂时更推荐使用fabric-sdk-node,嗯然后今天我用到的是fabric-sdk-java


二、 fabric-java-sdk

由于没有文档,那么最好的使用方法就是查看测试用例,先将测试用例跑通。测试用例中已经准备好了一套fabric的配置,只需在满足Prerequisites的基础上运行即可。

2.1 Prerequisites

  • JDK 1.8+
  • Apache Maven
  • IDEA / eclipse
  • Prerequisites

2.2 下载项目

$ git clone https://github.com/hyperledger/fabric-sdk-java

2.3 导入项目

Intellij IDEA:以maven工程导入项目,导入依赖。
eclipse:详见fabric-sdk-java/docs/EclipseSetup.md。

2.4 第三方依赖

Fabric SDK依赖于少量第三方库,在运行前在根目录位置执行以下指令,得到依赖列表:

$ mvn dependency:tree

或者是

$ mvn dependency:list

2.5 运行fabric

$ cd fabric-sdk-java/src/test/fixture/sdkintegration

$ ./fabric up
  • 如果出现ERROR: mainfest for hyperledger/fabric-orderer:latest not found
    则将fabric-sdk-java/src/test/fixture/sdkintegration/.env做如下修改
#Image tags:
IMAGE_TAG_FABRIC=:x86_64-1.0.1
IMAGE_TAG_FABRIC_CA=:x86_64-1.0.1
#IMAGE_TAG_FABRIC=
#IMAGE_TAG_FABRIC_CA=
  • 如果提示:Pemmision denied
    则给fabric.sh赋权
$ chmod +x fabric.sh

成功运行如图所示:
Hyperledger Fabric(三)- fabric-sdk-java_第1张图片

2.6 运行测试用例

我们挑选一份最常用的End2endIT.java运行:
Hyperledger Fabric(三)- fabric-sdk-java_第2张图片

注意:每次进行测试都需要重新运行fabric.sh脚本,建议以下指令对fabric环境进行清理,特别是在修改chaincode的情况下。

$ ./fabric.sh clean

2.7 构造自己的调用和查询方法

可以按照自己的需要提取方法方便调试:
Hyperledger Fabric(三)- fabric-sdk-java_第3张图片
Hyperledger Fabric(三)- fabric-sdk-java_第4张图片

三、 后话

体会到了文档的重要性,当然最终在有SDK的情况下对chaincode进行调试方便了很多。除此之外这份测试用例还能被拿来做多节点的测试,可以说是很强大了。

四、 参考链接

  1. fabric-sdk-java

你可能感兴趣的:(Fabric)