本文為Hyperledger Fabric 1.4 產(chǎn)品鏈搭建教程系列第三篇,介紹如何使用Hyperledger Fabric Java SDK訪問(wèn)MyFabric Demo鏈。
本篇代碼可以從Github上下載 - myfabric-demo-java-client
certificate目錄
certificate目錄包含項(xiàng)目運(yùn)行需要的身份證書(shū)。
CA證書(shū)文件。
org0-ca-chain.pem和org1-ca-chain.pem是組織CA證書(shū),訪問(wèn)org0或org1的節(jié)點(diǎn)需要,由于組織節(jié)點(diǎn)開(kāi)啟了tls驗(yàn)證。org1組織用戶(hù)身份文件。
user_cert.pem和user_sk是用戶(hù)的身份證書(shū)和身份私鑰,提供訪問(wèn)用戶(hù)msp身份。user_client.crt和user_client.key是客戶(hù)端認(rèn)證證書(shū)和私鑰,訪問(wèn)節(jié)點(diǎn)需要,由于組織節(jié)點(diǎn)開(kāi)啟了客戶(hù)端驗(yàn)證。admin_開(kāi)頭的4個(gè)文件和user_文件類(lèi)似,代表admin身份。
certificate目錄中的身份證書(shū)需要使用MyFabric Demo鏈生成的證書(shū)。項(xiàng)目默認(rèn)文件和myfabric-demo-chain中的身份文件保持一致,可以直接使用。如果運(yùn)行了start-ca.sh重新生成組織身份證書(shū),需要復(fù)制相應(yīng)文件到certificate目錄中,可參考certificate.bat。
代碼介紹
SampleEnrollment類(lèi)實(shí)現(xiàn)Enrollment接口,管理用戶(hù)身份證書(shū)和私鑰。
SampleUser類(lèi)實(shí)現(xiàn)User接口,管理用戶(hù)名,MSPID,Enrollment等信息。
Demo類(lèi)進(jìn)行MyFabric Demo鏈的訪問(wèn),主要流程如下。
修改
private static final String HOST = "192.168.99.101"為您啟動(dòng)MyFabric Demo鏈的機(jī)器IP,如果在本機(jī)啟動(dòng)可為localhost。getDemoChannel方法生成client對(duì)象和channel對(duì)象,client.setUserContext(user)指定一個(gè)SampleUser實(shí)例為客戶(hù)端訪問(wèn)用戶(hù)。channel對(duì)象添加一個(gè)orderer節(jié)點(diǎn)和一個(gè)peer節(jié)點(diǎn)。調(diào)用mycc合約的query方法,
query(client, channel, CHAIN_CODE, "query", new String[] {"a"}),顯示a的當(dāng)前值。調(diào)用mycc合約的invoke方法,
invoke(client, channel, CHAIN_CODE, "invoke", new String[] {"a", "b", "10"}),修改a和b的值。再次調(diào)用mycc合約的query方法,
query(client, channel, CHAIN_CODE, "query", new String[] {"a"}),顯示a被修改后的值。遍歷鏈上的每個(gè)塊,
blockWalker(client, channel),顯示塊信息和transaction信息。
詳細(xì)信息,請(qǐng)閱讀源代碼。
本篇完,完成教程請(qǐng)閱讀Hyperledger Fabric 1.4 產(chǎn)品鏈搭建教程系列。