java隨記

          堅(jiān)持就是勝利!

           

          開源區(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í)例類
          也不難

          public static ChaincodeManager init() throws Exception{
          FabricConfig fabricConfig = new FabricConfig("E:/fabricConfig");  //fabricConfig文件夾中包含
                          //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)

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(7)

          我參與的團(tuán)隊(duì)

          隨筆分類

          隨筆檔案

          文章分類

          友情鏈接

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 宁海县| 巴里| 西乡县| 安仁县| 革吉县| 泗洪县| 东宁县| 怀化市| 勃利县| 惠来县| 卓资县| 武鸣县| 九龙县| 临安市| 东至县| 昆明市| 河北区| 方山县| 京山县| 固始县| 宁明县| 衡南县| 武宣县| 安吉县| 公主岭市| 抚顺县| 吕梁市| 凉城县| 德阳市| 通许县| 葫芦岛市| 潞城市| 西乡县| 含山县| 屯留县| 万安县| 宜宾市| 五大连池市| 固安县| 高要市| 德钦县|