Hyperledger Fabric(三)- fabric-sdk-java
阿新 • • 發佈:2019-01-23
一、 Fabric SDK
目前最新的Hyperledger Fabric的官方文件(v1.1.0-preview)上,對於Fabric SDK的描述仍少的可憐,僅是簡單的幾句描述,再加上兩個github連結:
其實通過Hyperledger在github上的專案我們可以看到,Hyperledger Fabric還提供了另外三種SDK:
其中,當然是官方文件提到的fabric-sdk-node
以及fabric-sdk-java
的star更多,使用更 方便 。方便是不可能的,這輩子都不可能的。
官方僅僅是給出了一份 完善 較為完善的nodejs文件,和一份可以說根本不算文件的java 啟動說明
fabric-sdk-node
,嗯然後今天我用到的是fabric-sdk-java
。
二、 fabric-java-sdk
由於沒有文件,那麼最好的使用方法就是檢視測試用例,先將測試用例跑通。測試用例中已經準備好了一套fabric的配置,只需在滿足Prerequisites的基礎上執行即可。
2.1 Prerequisites
- JDK 1.8+
- Apache Maven
- IDEA / eclipse
2.2 下載專案
$ git clone https://github.com/hyperledger/fabric-sdk-java
2.3 匯入專案
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
成功執行如圖所示:
2.6 執行測試用例
我們挑選一份最常用的End2endIT.java
執行:
注意:每次進行測試都需要重新執行fabric.sh指令碼,建議以下指令對fabric環境進行清理,特別是在修改chaincode的情況下。
$ ./fabric.sh clean
2.7 構造自己的呼叫和查詢方法
可以按照自己的需要提取方法方便除錯:
三、 後話
體會到了文件的重要性,當然最終在有SDK的情況下對chaincode進行除錯方便了很多。除此之外這份測試用例還能被拿來做多節點的測試,可以說是很強大了。