1. 程式人生 > >Hyperledger Fabric(三)- fabric-sdk-java

Hyperledger Fabric(三)- fabric-sdk-java

一、 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 啟動說明

eclipse啟動說明。所以如果可以的話,暫時更推薦使用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

成功執行如圖所示:
image

2.6 執行測試用例

我們挑選一份最常用的End2endIT.java執行:
image

注意:每次進行測試都需要重新執行fabric.sh指令碼,建議以下指令對fabric環境進行清理,特別是在修改chaincode的情況下。

$ ./fabric.sh clean

2.7 構造自己的呼叫和查詢方法

可以按照自己的需要提取方法方便除錯:
image

image

三、 後話

體會到了文件的重要性,當然最終在有SDK的情況下對chaincode進行除錯方便了很多。除此之外這份測試用例還能被拿來做多節點的測試,可以說是很強大了。

四、 參考連結