該項目在github上的地址是:https://github.com/aberic/fabric-sdk-container (感謝Star)。
這是一個基於fabric-sdk-java的項目,該項目的主要目的是簡化HyperLedger/Fabric開發人員在SDK應用層上的工做流程,使得開發和部署更加簡單。
該項目使用方便,只須要你的服務器上部署有Docker及docker compose環境便可,經過docker-compose的啓動命令啓動YAML編排文件便可快速上手使用。
因爲日誌管理和性能調試方面的工做還未完成,目前該項目僅爲1.0-alpha版本,後續的開發中將會着重處理日誌及可配置性能方面的內容,若是這能讓你感興趣,歡迎star。
html
0.x系列的版本主要是非Docker應用方面的項目,即相互交流的源碼層項目。
1.x及以上系列的版本均Docker項目,幫助開發人員快速部署SDK應用,減小開發環節,從而實現業務的快速落地。
目前主要版本以下列表所示:
v0.1:無數據庫版,適合輕量級的Fabric平臺應用。
v0.2:含關係型數據庫版,適合單服務管理多Fabric網絡。
v1.0-alpha:提供Docker容器服務,方便SDK快速部署。
java
一、肯定Linux內核在3.10
及以上。
二、在待部署SDK服務器上安裝最新版Docker
及docker compose
環境。
三、執行docker pull aberic/fabric-sdk
下載鏡像。
四、在docker-sdk.yaml
文件中配置好Fabric網絡中所指望鏈接的排序服務及節點服務參數,這兩類服務各容許設置一臺,後續的版本中會增長使用SDK多服務網絡方案。
五、執行docker-compose -f docker-sdk.yaml up
啓動SDK鏡像服務,若是不須要觀察日誌,則在命令最後追加-d
便可。
六、服務啓動完成後,參考下面的API介紹以便更快投入使用。
API入口文檔git
Method | REST API | Description |
---|---|---|
POST | /sdk/chaincode | 執行、查詢 |
POST | /sdk/trace | 在指定頻道內根據transactionID查詢區塊、在指定頻道內根據hash查詢區塊、在指定頻道內根據區塊高度查詢區塊以及查詢當前頻道的鏈信息,包括鏈長度、當前最新區塊hash以及當前最新區塊的上一區塊hash |
POST | /sdk/org/set | 設置組織信息 |
POST | /sdk/orderer/set | 設置排序服務器信息 |
POST | /sdk/peer/set | 設置節點服務器信息 |
該版本目前爲即上即用的版本,僅提供單排序服務及單節點服務,所以API文檔中未提供安裝、實例化及升級操做,但在後續更新中,會支持安裝、實例化及升級的功能。若是有PAAS服務的須要,能夠自行參考v0.2中的方案來解決。 github
{
"intent": "invoke",
"array": [
"set",
"A",
"0"
]
}
{
"intent": "query",
"array": [
"get"
]
}
intent是指對智能合約進行操做的意圖。
array是調用合約傳入的參數,在用go編寫智能合約的時候,智能合約所接收的參數爲一個字符串數組,其中字符串數組的第一個參數是智能合約的方法名。這裏的array所傳入的參數就是智能合約所接收的數組參數。spring
{
"intent": "queryBlockByTransactionID",
"traceId": "08b5db91c7723cb61651a4af1034633a2833031a1cdb4415df0d8f6727020a4f"
}
{
"intent": "queryBlockByHash",
"traceId": "8f63d99744752a89a49fcee560a43c271b7f12e37dfaa3489da028b610943595"
}
{
"intent": "queryBlockByNumber",
"traceId": "9"
}
{
"intent": "queryBlockchainInfo"
}
{ "id": 1, "caLocation": "http://118.89.243.236:7054", "caName": "ca", "caTls": false, "chaincodeName": "test2cc", "chaincodePath": "chaincode/chaincode_example02", "chaincodeSource": "/code", "chaincodeVersion": "1.2", "channelArtifactsDir": "/home/jar/channel-artifacts", "channelName": "mychannel", "cryptoConfigDir": "/home/jar/crypto-config", "invokeWaitTime": 120, "ordererDomainName": "example.com", "orgDomainName": "org1.example.com", "orgMSPID": "Org1MSP", "orgName": "Org1", "proposalWaitTime": 90000, "tls": true, "username": "Admin" }
該方法是在sdk容器啓動後根據實際需求進行調用,如YAML中配置的變量寫錯,能夠經過該方法從新設置組織信息docker
{ "id": 1, "orgId": 1, "name": "orderer.example.com", "location": "grpc://118.89.243.236:7050" }
該方法是在sdk容器啓動後根據實際需求進行調用,如YAML中配置的變量寫錯,能夠經過該方法從新設置排序服務信息數據庫
{ "id": 1, "orgId": 1, "peerName": "peer0.org1.example.com", "peerEventHubName": "peer0.org1.example.com", "peerLocation": "grpc://118.89.243.236:7051", "peerEventHubLocation": "grpc://118.89.243.236:7053", "isEventListener": true }
該方法是在sdk容器啓動後根據實際需求進行調用,如YAML中配置的變量寫錯,能夠經過該方法從新設置節點服務信息api