官方hyberledger fabric java sdk 修改整合版

官方hyberledger fabric java sdk 修改整合版

這個版本根據官方hyperledger/fabric-sdk-java項目的
/src/test/java/sdkintegration/org.hyperledger.fabric.sdkintegration.End2endIT類修改而來。

項目源碼地址:

github

功能劃分

用戶:
register user
enroll user

通道:
construct channel
install chaincode
invoke chaincode
query chaincode

功能的調用方法都提供在com.routz.fabricdemo.integration.service包下面的FabricChannelServiceFabricUserService下面

test目錄下有幾個方法的測試用例

pom.xml 依賴

<!-- hyperledger fabric -->
<!-- https://mvnrepository.com/artifact/org.hyperledger.fabric-sdk-java/fabric-sdk-java -->
<dependency>
    <groupId>org.hyperledger.fabric-sdk-java</groupId>
    <artifactId>fabric-sdk-java</artifactId>
    <version>1.4.0</version>
</dependency>

組織節點配置

com.routz.fabricdemo.integration.utilConfigManager裏將組織節點都配置好了,因爲我這的業務是基本一上線就不會改動了,所以在這寫死,有需要可以另外修改

    defaultProperty(INTEGRATIONTESTS_ORG + "peerOrg1.mspid", "Org1MSP");
    defaultProperty(INTEGRATIONTESTS_ORG + "peerOrg1.domname", "org1.example.com");
    defaultProperty(INTEGRATIONTESTS_ORG + "peerOrg1.ca_location", "http://" + LOCALHOST + ":7054");
    defaultProperty(INTEGRATIONTESTS_ORG + "peerOrg1.caName", "ca0");
    defaultProperty(INTEGRATIONTESTS_ORG + "peerOrg1.peer_locations", "peer0.org1.example.com@grpc://" + LOCALHOST + ":7051, peer1.org1.example.com@grpc://" + LOCALHOST + ":7056");
    defaultProperty(INTEGRATIONTESTS_ORG + "peerOrg1.orderer_locations", "orderer.example.com@grpc://" + LOCALHOST + ":7050");
    defaultProperty(INTEGRATIONTESTS_ORG + "peerOrg2.mspid", "Org2MSP");
    defaultProperty(INTEGRATIONTESTS_ORG + "peerOrg2.domname", "org2.example.com");
    defaultProperty(INTEGRATIONTESTS_ORG + "peerOrg2.ca_location", "http://" + LOCALHOST + ":8054");
    defaultProperty(INTEGRATIONTESTS_ORG + "peerOrg2.peer_locations", "peer0.org2.example.com@grpc://" + LOCALHOST + ":8051,peer1.org2.example.com@grpc://" + LOCALHOST + ":8056");
    defaultProperty(INTEGRATIONTESTS_ORG + "peerOrg2.orderer_locations", "orderer.example.com@grpc://" + LOCALHOST + ":7050");

其中,組織是根據前面名字peerOrg1這樣正則切分開的,後面分別是mspid,domname,ca_location,caName,peer_locations,orderer_locations
這是因爲java sdk跑的節點是兩個org,每個org有兩個peer,每個org對應一個ca服務器,共用一個orderer,共7個節點,不同公司業務可能不同,這個我還沒深入研究如果節點配置不同該在這裏怎麼修改。
還需要注意的是,我在上面的LOCALHOST變量裏面配置的本地虛擬機ip,需要按實際情況修改

生成通道

官方自帶通道foo和bar的tx文件,如果要自定義創建通道時,要先在服務器上生成*.tx文件,拷貝到項目路徑下,將路徑作爲參數調用
參考sdk

生成*.tx文件的命令:

cd /項目路徑/src/test/fixture/sdkintegration/e2e-2Orgs/v1.3
configtxgen --configPath . -outputCreateChannelTx 通道名.tx -profile TwoOrgsChannel_v13 -channelID 通道名

這樣就在目錄下生成通道名.tx文件了

說明:

我是後端java程序員,對hyberledger fabric 和區塊鏈方面認知有限,bugs和可優化的地方一定是有的,歡迎提issue和修改我的代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章