開源區(qū)塊鏈Hyperleger Fabric的SDK-JAVA新手上路指引
話說有個(gè)程序員征婚,無人問津。前段時(shí)間區(qū)塊鏈概念大火,該程序員靈機(jī)一動(dòng),借勢(shì)而為,征婚上加了一行:區(qū)塊鏈工程師。不久抱得美人歸。:)
閱讀本代碼前,先看看fabric的多機(jī)布署,參考下面的貼子1:
http://blog.csdn.net/songbin830/article/details/78778806 完成多機(jī)布署.
參考貼子2: http://www.cnblogs.com/aberic/p/8206551.html ,把代碼下到本地工程里。新手上路總會(huì)遇到
各種細(xì)節(jié)問題.重點(diǎn)來了:
使用git命令從github.com上拉下SDK-JAVA源碼.
1,源碼文件中有EclipseSetup.md的文件,介紹如何把源碼項(xiàng)目導(dǎo)入eclipse.
2,導(dǎo)入eclipse后發(fā)現(xiàn)缺少 org.hyperledger.fabric.protos.*文件。github上的源碼里也沒有。解決辦法:從
其它網(wǎng)站的 SDK-JAVA打包文件中找到源碼包,把org.hyperledger.fabric.protos包中的源碼copy到eclipse。
3,在orderer節(jié)點(diǎn)把 crypto-config文件夾中的內(nèi)容copy到本機(jī).其中包含了用命令工具生成的證書,身份信息
等內(nèi)容
4,貼子2中代碼如何用,其實(shí)跟源碼中的測(cè)試用例中的代碼差不多.初始化示例如下:因?yàn)橘N子2是個(gè)demo類代碼,
我作了些改動(dòng)。有些代碼沒放ChaincodeManager()實(shí)例化。看一下這個(gè)類的構(gòu)造方法,構(gòu)造對(duì)應(yīng)的需要的實(shí)例類
也不難
5,其它參數(shù),比如chaincode相關(guān)信息可以在peer節(jié)點(diǎn) peer chaincode list --installed 命令可以查看
可以調(diào)用這個(gè)ChaincodeManager 的query和invoke方法了.
6,補(bǔ)充內(nèi)容:需要shim-client.jar包,這個(gè)需要拉下fabric的源碼,在文件夾
\src\github.com\hyperledger\fabric\core\chaincode\shim\java 用gradle編譯一個(gè)jar包出來
7,如果grpc用了ssl的需要 grpcs://10.121.60.3:7051,grpcs開頭
因?yàn)榫W(wǎng)上有了fabric多機(jī)布署教程,和不完善的示例代碼,這里主要介紹一下其中容易遇到的問題,解決起
來也頗為頭痛和費(fèi)時(shí)。
本貼原地址:http://www.aygfsteel.com/fool .下一篇區(qū)塊鏈貼子預(yù)告:Fabric的SDK-JAVA動(dòng)態(tài)安裝
Channel
參考貼子2: http://www.cnblogs.com/aberic/p/8206551.html ,把代碼下到本地工程里。新手上路總會(huì)遇到
各種細(xì)節(jié)問題.重點(diǎn)來了:
使用git命令從github.com上拉下SDK-JAVA源碼.
1,源碼文件中有EclipseSetup.md的文件,介紹如何把源碼項(xiàng)目導(dǎo)入eclipse.
2,導(dǎo)入eclipse后發(fā)現(xiàn)缺少 org.hyperledger.fabric.protos.*文件。github上的源碼里也沒有。解決辦法:從
其它網(wǎng)站的 SDK-JAVA打包文件中找到源碼包,把org.hyperledger.fabric.protos包中的源碼copy到eclipse。
3,在orderer節(jié)點(diǎn)把 crypto-config文件夾中的內(nèi)容copy到本機(jī).其中包含了用命令工具生成的證書,身份信息
等內(nèi)容
4,貼子2中代碼如何用,其實(shí)跟源碼中的測(cè)試用例中的代碼差不多.初始化示例如下:因?yàn)橘N子2是個(gè)demo類代碼,
我作了些改動(dòng)。有些代碼沒放ChaincodeManager()實(shí)例化。看一下這個(gè)類的構(gòu)造方法,構(gòu)造對(duì)應(yīng)的需要的實(shí)例類
也不難
public static ChaincodeManager init() throws Exception{
FabricConfig fabricConfig = new FabricConfig("E:/fabricConfig"); //fabricConfig文件夾中包含
//crypto-config文件夾
//crypto-config文件夾
Peers peers = new Peers(); //初始化peer節(jié)點(diǎn)
peers.setOrgDomainName("org1.ygsoft.com");
peers.setOrgMSPID("Org1MSP");
peers.setOrgName("Org1MSP");
//peers.addPeer("peer0.org1.ygsoft.com", "peer0.org1.ygsoft.com", "grpcs://10.121.60.2:7051", "grpcs://10.121.60.2:7053", null);
peers.addPeer("peer1.org1.ygsoft.com", "peer1.org1.ygsoft.com", "grpcs://10.121.60.3:7051", "grpcs://10.121.60.3:7053", null);
fabricConfig.setPeers(peers);
//初始化orderer節(jié)點(diǎn)
Orderers orders = new Orderers();
orders.setOrdererDomainName("ygsoft.com");
orders.addOrderer("orderer.ygsoft.com", "grpcs://10.121.60.1:7050");
fabricConfig.setOrderers(orders);
fabricConfig.setRegisterEvent(true);
ChaincodeManager chainManager = new ChaincodeManager(fabricConfig);
return chainManager;
}
5,其它參數(shù),比如chaincode相關(guān)信息可以在peer節(jié)點(diǎn) peer chaincode list --installed 命令可以查看
可以調(diào)用這個(gè)ChaincodeManager 的query和invoke方法了.
6,補(bǔ)充內(nèi)容:需要shim-client.jar包,這個(gè)需要拉下fabric的源碼,在文件夾
\src\github.com\hyperledger\fabric\core\chaincode\shim\java 用gradle編譯一個(gè)jar包出來
7,如果grpc用了ssl的需要 grpcs://10.121.60.3:7051,grpcs開頭
因?yàn)榫W(wǎng)上有了fabric多機(jī)布署教程,和不完善的示例代碼,這里主要介紹一下其中容易遇到的問題,解決起
來也頗為頭痛和費(fèi)時(shí)。
本貼原地址:http://www.aygfsteel.com/fool .下一篇區(qū)塊鏈貼子預(yù)告:Fabric的SDK-JAVA動(dòng)態(tài)安裝
Channel
posted on 2018-02-01 09:03 傻 瓜 閱讀(5646) 評(píng)論(0) 編輯 收藏 所屬分類: 雜項(xiàng)