該項目在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
一、肯定Linux內核在3.10
及以上。
二、在待部署SDK服務器上安裝最新版Docker
及docker 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
項目微信交流羣:數據庫
Fabric交流互助2羣:服務器