fabric-sdk-container v1.0-beta 新增支持多服務節點


HyperLedger/Fabric SDK Docker Image

該項目在github上的地址是:https://github.com/aberic/fabric-sdk-container (感謝Star)。 

這是一個基於fabric-sdk-java的項目,該項目的主要目的是簡化HyperLedger/Fabric開發人員在SDK應用層上的工作流程,使得開發和部署更加簡單。 

該項目使用方便,只需要部署有Docker及docker compose環境即可輕松調用Fabric網絡接口,包括執行、查詢智能合約,以及trace相關的溯源接口。 

版本說明

0.x系列的版本主要是非Docker應用方面的項目,即相互交流的源碼層項目。
1.x及以上系列的版本均Docker項目,幫助開發人員快速部署SDK應用,減少開發環節,從而實現業務的快速落地。
提供鏈接的為已發布版本,未提供連接的為待實現版本。

目前主要版本如下列表所示:
v0.1:無數據庫版,適合輕量級的Fabric平台應用。 
v0.2:含關系型數據庫版,適合單服務管理多Fabric網絡。 
v1.0-alpha:提供Docker容器服務,方便SDK快速部署。此版本為單排序服務及單節點服務配置,符合絕大部分需求。 
v1.0-beta:新增支持多服務節點。 
v1.0-RC:新增通過SDK加入通道、安裝合約、實例化合約以及升級合約等功能。 

使用sdk-container

1、確定Linux內核在3.10及以上。 
2、在待部署SDK服務器上安裝最新版Dockerdocker compose環境。 
3、執行docker pull aberic/fabric-sdk:1.0-beta下載鏡像。 
4、在docker-sdk.yaml文件中配置好Fabric網絡中所期望連接的排序服務及節點服務參數,這兩類服務各允許設置一台,后續的版本中會增加使用SDK多服務網絡方案。 
5、執行docker-compose -f docker-sdk.yaml up啟動SDK鏡像服務,如果不需要觀察日志,則在命令最后追加-d即可。 
6、服務啟動完成后,參考下面的API介紹以便更快投入使用。 

docker-sdk.yaml說明 
關於docker-sdk.yaml編排文件中的參數,主要來自兩個地方,一是二進制生成的證書文件目錄crypto-config(點擊鏈接自行學習二進制文件生成指定證書文件以及參考crypto-config文件配置),二是在當前Fabric網絡中創建的通道以及通道中創建的智能合約信息。 

首先參考crypto-config,在該文件中定義的參數與docker-sdk.yaml中關於排序服務以及節點服務的信息相對應。 

相對其他配置如通道及合約的也是如上對應,具體參數釋義如下表所示: 

Environment Description map
ORG_NAME 節點所屬組織名稱 參見crypto-config文件中 -> PeerOrgs-Name
ORG_TLS 節點是否開啟TLS 根據自身創建網絡情況選擇true或false
ORG_USERNAME 節點所屬組織用戶名稱 參見crypto-config目錄下的兩個用戶,默認配置中選擇的Admin
ORG_CRYPTO_CONFIG_DIR 映射到容器中的crypto-config目錄 crypto-config目錄
ORG_MSP_ID 節點所屬組織ID 參見configtx文件中 -> Organizations-&Org1-Name
ORG_DOMAIN_NAME 節點所屬組織域名名稱 參見crypto-config文件中 -> PeerOrgs-Domain
ORG_ORDERER_DOMAIN_NAME 節點所屬排序服務域名名稱 參見crypto-config文件中 -> OrdererOrgs-Domain
ORG_CHANNEL_NAME 自行創建的通道名稱 如:peer channel create -o orderer.example.com:7050 -c mychannel -t 50 -f ./channel-artifacts/mychannel.tx 命令所創建的mychannel
ORG_CHAINCODE_NAME 智能合約名稱 如:peer chaincode install -n testcc -p github.com/hyperledger/fabric/aberic/chaincode/go/chaincode_example02 -v 1.0命令所創建的testcc
ORG_CHAINCODE_PATH 智能合約路徑 如:peer chaincode install -n testcc -p github.com/hyperledger/fabric/aberic/chaincode/go/chaincode_example02 -v 1.0命令中的github.com/hyperledger/fabric/aberic/chaincode/go/chaincode_example02
ORG_CHAINCODE_VERSION 智能合約版本 如:peer chaincode install -n testcc -p github.com/hyperledger/fabric/aberic/chaincode/go/chaincode_example02 -v 1.0命令中的1.0
ORG_PROPOSAL_WAIT_TIME 單個提案請求超時時間以毫秒為單位 默認90000
ORG_INVOKE_WAIT_TIME 事務等待時間以秒為單位 默認120
ORDERER_NAME 排序服務名稱 參見configtx文件中 -> Orderer-Addresses
ORDERER_LOCATION 排序服務訪問路徑 根據自身設置實際情況修改,一般為grpc://host:port的格式
PEER_NAME 節點服務域名名稱 參見crypto-config目錄下的節點域名列表
PEER_EVENT_HUB_NAME 節點服務事件域名名稱 同上
PEER_LOCATION 節點服務路徑 根據自身設置實際情況修改,一般為grpc://host:port的格式
PEER_EVENT_HUB_LOCATION 節點服務事件路徑 根據自身設置實際情況修改,一般為grpc://host:port的格式
PEER_IS_EVENT_LISTENER 節點所屬組織名稱 根據自身需求選擇是否監聽回調服務

docker-sdk.yaml中的image: aberic/fabric-sdk,可以指定其版本號,默認是latest。 
docker-sdk.yaml中volumes的掛載與ORG_CRYPTO_CONFIG_DIR變量相關,volumes使用方法請學習compose相關知識。 
docker-sdk.yaml中的ports,后一個為容器中端口號,不用修改,冒號前的可以指定為自身服務器未占用的端口號,最終調用sdk接口時通過冒號前指定的端口號即可。 

API入口文檔

Method REST API Description
POST /sdk/chaincode 執行、查詢
POST /sdk/trace 在指定頻道內根據transactionID查詢區塊、在指定頻道內根據hash查詢區塊、在指定頻道內根據區塊高度查詢區塊以及查詢當前頻道的鏈信息,包括鏈長度、當前最新區塊hash以及當前最新區塊的上一區塊hash
POST /sdk/org/add 新增組織信息
POST /sdk/orderer/add 新增排序服務器信息
POST /sdk/peer/add 新增節點服務器信息

該版本目前為即上即用的版本,僅提供單排序服務及單節點服務,因此API文檔中未提供安裝、實例化及升級操作,但在后續更新中,會支持安裝、實例化及升級的功能。如果有PAAS服務的需要,可以自行參考v0.2中的方案來解決。 

 

API方法示例參考:HyperLedger/Fabric SDK使用Docker容器鏡像快速部署上線

代碼簡要說明參考:HyperLedger/Fabric JAVA-SDK with 1.1

 

項目微信交流群:

 

Fabric交流互助2群:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM