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相關的溯源接口。 

html

版本說明

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加入通道、安裝合約、實例化合約以及升級合約等功能。 

java

使用sdk-container

一、肯定Linux內核在3.10及以上。 
二、在待部署SDK服務器上安裝最新版Dockerdocker compose環境。 
三、執行docker pull aberic/fabric-sdk:1.0-beta下載鏡像。 
四、在docker-sdk.yaml文件中配置好Fabric網絡中所指望鏈接的排序服務及節點服務參數,這兩類服務各容許設置一臺,後續的版本中會增長使用SDK多服務網絡方案。 
五、執行docker-compose -f docker-sdk.yaml up啓動SDK鏡像服務,若是不須要觀察日誌,則在命令最後追加-d便可。 
六、服務啓動完成後,參考下面的API介紹以便更快投入使用。 

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

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

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

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入口文檔github

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中的方案來解決。 docker

 

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

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

 

項目微信交流羣:數據庫

 

Fabric交流互助2羣:服務器

相關文章
相關標籤/搜索