内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

HyperLedger如何實(shí)現(xiàn)鏈碼開發(fā)實(shí)例FabCar

這篇文章主要為大家展示了“HyperLedger如何實(shí)現(xiàn)鏈碼開發(fā)實(shí)例FabCar”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“HyperLedger如何實(shí)現(xiàn)鏈碼開發(fā)實(shí)例FabCar”這篇文章吧。

網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)的開發(fā),更需要了解用戶,從用戶角度來建設(shè)網(wǎng)站,獲得較好的用戶體驗(yàn)。創(chuàng)新互聯(lián)多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見的多,溝通容易、能幫助客戶提出的運(yùn)營建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇創(chuàng)新互聯(lián),不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價(jià)值服務(wù)。

應(yīng)用程序與鏈碼開發(fā) —FabCar

編寫第一個(gè)應(yīng)用程序

通過幾個(gè)實(shí)例程序,了解 Fabric 應(yīng)用的工作原理。
SDK 來調(diào)用智能合約(關(guān)于二者的詳細(xì)信息在 SDK 應(yīng)用程序和智能合約處理兩個(gè)章節(jié))

三步驟

  1. 建立開發(fā)環(huán)境。**使用first-network搭建基本的網(wǎng)絡(luò)(兩個(gè)組織和一個(gè)排序節(jié)點(diǎn);兩組之間有一個(gè) mychannel)

  2. 了解智能合約示例 Fabcar.**查看智能合約如何運(yùn)行,以及應(yīng)用程序如何使用它們來查詢和更新分類賬

  3. 開發(fā)使用 Fabcar 的示例應(yīng)用程序。**應(yīng)用程序使用智能合約查詢和更新賬面上的汽車資產(chǎn)。利用應(yīng)用程序創(chuàng)建事務(wù) — 查詢汽車、創(chuàng)建新汽車。

完成本教程應(yīng)該學(xué)習(xí)到:應(yīng)用程序如何與智能合約交互,F(xiàn)abric 網(wǎng)絡(luò)中對等實(shí)體上托管和復(fù)制分類賬的交互過程。


docker rm -f (docker ps -aq)
docker rmi -f (docker images | grep fabcar | awk '{print 3}')
使用上述命令終止先前運(yùn)行的所有 fabric 容器。

cd xxx/fabric-samples/FabCar/ && ./startFabric.sh javascript
上述命令將自動初始化 first-network, 與此同時(shí)部署 JavaScript 版本的 chaincode 到兩個(gè)對等節(jié)點(diǎn)上。
cd ./javascript && npm install
node enrollAdmin.js
創(chuàng)建一個(gè)管理員用戶(稱為管理員實(shí)際上為證書頒發(fā)機(jī)構(gòu) CA 的注冊商)
node registerUsre.js
通過管理員憑據(jù)來注冊新用戶(可使用該用戶來查詢和更新分類賬)user1
node query.js
查詢賬面信息

解析 Fabcar 的 javascript 應(yīng)用程序

const { FileSystemWallet, Gateway} = require('fabric-network')從 fabric-network 模塊引入 FileSystemWallet 和 Gateway 兩個(gè)關(guān)鍵類。
cosnt gateway = new Gateway()
await gateway.connect(ccp,{wallet,identity:'user1'})
使應(yīng)用程序連接到網(wǎng)絡(luò)(用 user1 的身份). 其中的 ccp 表示的是網(wǎng)關(guān)將訪問的網(wǎng)絡(luò)。 ccp 通過如下代碼配置:

const ccpPath = path.resolve(__dirname,'..','..','first-network','connection.json')
const ccpJSON = fs.readFileSync(ccpPath,'utf8')
const ccp = JSON.parse(ccpJSON)
  • (關(guān)于網(wǎng)絡(luò)配置文件的結(jié)構(gòu)和定義網(wǎng)絡(luò)的方式可以查看連接配置文件) - 接到網(wǎng)絡(luò)后我們需要連接特定的 channel , 以期獲得特定世界狀態(tài)的權(quán)限
    const network = await gateway.getNetwork('mychannel')
    接入 channel 之后需要連接特定的 chaincode , 以期通過智能合約與世界狀態(tài)交互。
    const contact = network.getContract('fabcar')

Fabcar 中定義了許多的事務(wù) (transaction)

  1. 使用const result = await contact.evaluateTransaction('queryAllCars')來查詢世界狀態(tài)。
    上述操作是最簡單的智能合約交互,它選取一個(gè)在連接配置文件中定義的節(jié)點(diǎn)發(fā)送請求,節(jié)點(diǎn)執(zhí)行評估命令 –>智能合約查詢節(jié)點(diǎn)賬本副本所記載的所有汽車信息 –>返回結(jié)果給應(yīng)用

  2. 使用contract.submitTransaction('createCar','CAR12','Honda','Accord','Black','Tom')來創(chuàng)建一輛新車的信息。 submitTransaction() 表示提交交易,它比 evaluateTransaction 復(fù)雜很多,它的工作原理如下:首先將 submitTransaction 天發(fā)送給每一個(gè)對等實(shí)體 –>每一個(gè)對等實(shí)體執(zhí)行命令,返回結(jié)果給 SDK–>SDK 收集所有回復(fù)合成一個(gè)交易發(fā)給 Order 節(jié)點(diǎn) –>Order 收集并造塊廣播 –>每個(gè)事務(wù)都得到驗(yàn)證和提交之后允許它將控制權(quán)返回到應(yīng)用程序 (submitTransaction 包括了一個(gè)偵聽器).

  3. 使用await contract.submitTransaction('changeCarOwner','CAR12','Dave')命令改變汽車車主

解析 Fabcar 的 javascript 智能合約

cd xxx/fabric-samples/chaincode/fabcar/javascript/lib/fabcar.js
了解如何使用 Contract 類來定義智能合約
class FabCar extends Contract{}

在此結(jié)構(gòu)中將定義如下事務(wù): initLedger , queryCar , queryAllCars , createCar 和 changeCarWoner .
async queryCar(ctx, carnumber){...}
async queryAllCars(ctx) {...}

分析 querAllCars 這個(gè)交易

async queryAllCars(ctx){
    const startKey = 'CAR0'
    const endKey = 'CAR999'
    cosnt iterator = await ctx.stub.getStateByRange(starKey,endKey)
    ...
}

這段代碼遍歷訪問每輛車,并將結(jié)果打包成 JSON 返回到應(yīng)用程序當(dāng)中。 getStateByRange() 是事務(wù)的 API , 關(guān)于 API 可以訪問 javascript 智能合約 API

以上是“HyperLedger如何實(shí)現(xiàn)鏈碼開發(fā)實(shí)例FabCar”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享名稱:HyperLedger如何實(shí)現(xiàn)鏈碼開發(fā)實(shí)例FabCar
文章轉(zhuǎn)載:http://m.rwnh.cn/article26/gspgcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)站制作、用戶體驗(yàn)手機(jī)網(wǎng)站建設(shè)、微信小程序、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
霸州市| 白水县| 广丰县| 木里| 体育| 巍山| 永新县| 阳朔县| 灯塔市| 蓝田县| 峨眉山市| 砀山县| 东乡县| 牡丹江市| 大理市| 赤壁市| 龙里县| 八宿县| 吴桥县| 平南县| 双辽市| 舞阳县| 高密市| 武山县| 和林格尔县| 温州市| 吴桥县| 察隅县| 昌平区| 合江县| 英吉沙县| 隆林| 阳信县| 陆河县| 永善县| 纳雍县| 新化县| 东安县| 沅陵县| 博湖县| 广东省|