java隨記

          堅持就是勝利!

           

          開源區(qū)塊鏈Hyperleger Fabric的SDK-JAVA新手上路指引

          話說有個程序員征婚,無人問津。前段時間區(qū)塊鏈概念大火,該程序員靈機一動,借勢而為,征婚上加了一行:
          區(qū)塊鏈工程師。不久抱得美人歸。:)

          閱讀本代碼前,先看看fabric的多機布署,參考下面的貼子1:
          http://blog.csdn.net/songbin830/article/details/78778806 完成多機布署.

          參考貼子2: http://www.cnblogs.com/aberic/p/8206551.html ,把代碼下到本地工程里。新手上路總會遇到
          各種細節(jié)問題.重點來了:

          使用git命令從github.com上拉下SDK-JAVA源碼.
          1,源碼文件中有EclipseSetup.md的文件,介紹如何把源碼項目導入eclipse.
          2,導入eclipse后發(fā)現(xiàn)缺少  org.hyperledger.fabric.protos.*文件。github上的源碼里也沒有。解決辦法:從
          其它網(wǎng)站的 SDK-JAVA打包文件中找到源碼包,把org.hyperledger.fabric.protos包中的源碼copy到eclipse。
          3,在orderer節(jié)點把  crypto-config文件夾中的內(nèi)容copy到本機.其中包含了用命令工具生成的證書,身份信息
          等內(nèi)容
          4,貼子2中代碼如何用,其實跟源碼中的測試用例中的代碼差不多.初始化示例如下:因為貼子2是個demo類代碼,
          我作了些改動。有些代碼沒放ChaincodeManager()實例化。看一下這個類的構(gòu)造方法,構(gòu)造對應的需要的實例類
          也不難

          public static ChaincodeManager init() throws Exception{
          FabricConfig fabricConfig = new FabricConfig("E:/fabricConfig");  //fabricConfig文件夾中包含
                          //crypto-config文件夾
          Peers peers = new Peers();   //初始化peer節(jié)點
          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é)點
          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é)點  peer chaincode list --installed 命令可以查看
          可以調(diào)用這個ChaincodeManager 的query和invoke方法了.

          6,補充內(nèi)容:需要shim-client.jar包,這個需要拉下fabric的源碼,在文件夾
          \src\github.com\hyperledger\fabric\core\chaincode\shim\java 用gradle編譯一個jar包出來

          7,如果grpc用了ssl的需要 grpcs://10.121.60.3:7051,grpcs開頭

          因為網(wǎng)上有了fabric多機布署教程,和不完善的示例代碼,這里主要介紹一下其中容易遇到的問題,解決起
          來也頗為頭痛和費時。
          本貼原地址:http://www.aygfsteel.com/fool .下一篇區(qū)塊鏈貼子預告:Fabric的SDK-JAVA動態(tài)安裝
          Channel











          posted on 2018-02-01 09:03 傻 瓜 閱讀(5636) 評論(0)  編輯  收藏 所屬分類: 雜項

          導航

          統(tǒng)計

          常用鏈接

          留言簿(7)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章分類

          友情鏈接

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 牙克石市| 达孜县| 石台县| 贺兰县| 石阡县| 青海省| 太白县| 林周县| 嘉禾县| 神农架林区| 建瓯市| 咸丰县| 宝应县| 泾川县| 登封市| 高雄市| 监利县| 桐城市| 射洪县| 沛县| 绵竹市| 崇文区| 衡阳县| 楚雄市| 沭阳县| 东莞市| 辛集市| 乌拉特后旗| 扬中市| 孝感市| 东阿县| 长乐市| 清丰县| 乐昌市| 仪陇县| 离岛区| 晋宁县| 云安县| 如皋市| 永登县| 庄河市|