溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

hyperledger composer開(kāi)發(fā)的示例分析

發(fā)布時(shí)間:2021-12-06 15:15:01 來(lái)源:億速云 閱讀:192 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹了hyperledger composer開(kāi)發(fā)的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

將引導(dǎo)您從頭開(kāi)始構(gòu)建Hyperledger Composer區(qū)塊鏈解決方案。在幾個(gè)小時(shí)的時(shí)間內(nèi),您將能夠從破壞性區(qū)塊鏈創(chuàng)新的想法轉(zhuǎn)變?yōu)獒槍?duì)真正的Hyperledger Fabric區(qū)塊鏈網(wǎng)絡(luò)執(zhí)行交易,并生成/運(yùn)行與區(qū)塊鏈網(wǎng)絡(luò)交互的示例Angular 2應(yīng)用程序。

1、創(chuàng)建業(yè)務(wù)網(wǎng)絡(luò)結(jié)構(gòu)

    1.1 最簡(jiǎn)單的入門(mén)方法是使用Yeoman生成器創(chuàng)建骨架業(yè)務(wù)網(wǎng)絡(luò)。這將創(chuàng)建一個(gè)包含業(yè)務(wù)網(wǎng)絡(luò)的所有組件的目錄,使用Yeoman創(chuàng)建一個(gè)骨架業(yè)務(wù)網(wǎng)絡(luò)。此命令將需要業(yè)務(wù)網(wǎng)絡(luò)名稱,說(shuō)明,作者姓名,作者電子郵件地址,許可證選擇和命名空間

yo hyperledger-composer:businessnetwork

    1.2 輸入 tutorial-network 網(wǎng)絡(luò)名稱以及所需的描述信息,作者姓名和作者電子郵件。描述,姓名,郵件隨便寫(xiě)。

    1.3 選擇 Apache-2.0 作為許可證

    1.4 選擇 org.example.mynetwork 作為命名空間

    1.5 選擇 No 當(dāng)被問(wèn)及是否生成一個(gè)空網(wǎng)絡(luò)時(shí)。

2、定義一個(gè)商業(yè)網(wǎng)絡(luò)

    業(yè)務(wù)網(wǎng)絡(luò)由資產(chǎn),參與者,交易,訪問(wèn)控制規(guī)則以及可選的事件和查詢組成。在前面步驟中創(chuàng)建的骨架業(yè)務(wù)網(wǎng)絡(luò)中,有一個(gè)model(.cto)文件,其中將包含業(yè)務(wù)網(wǎng)絡(luò)中所有資產(chǎn),參與者和事務(wù)的類定義。骨架業(yè)務(wù)網(wǎng)絡(luò)還包含permissions.acl具有基本訪問(wèn)控制規(guī)則的訪問(wèn)控制()文檔,logic.js包含事務(wù)處理器功能的腳本()文件以及package.json包含業(yè)務(wù)網(wǎng)絡(luò)元數(shù)據(jù)的文件。

    將前兩篇博客講到的工具使用下,導(dǎo)入剛剛的項(xiàng)目文件,然后修改它的配置文件

hyperledger composer開(kāi)發(fā)的示例分析

    2.1 打開(kāi) org.example.mynetwork.cto 模型文件,并替換成以下內(nèi)容,最后保存

/**
 * My commodity trading network
 */
namespace org.example.mynetwork
asset Commodity identified by tradingSymbol {
    o String tradingSymbol
    o String description
    o String mainExchange
    o Double quantity
    --> Trader owner
}
participant Trader identified by tradeId {
    o String tradeId
    o String firstName
    o String lastName
}
transaction Trade {
    --> Commodity commodity
    --> Trader newOwner
}

    2.2 在模型文件中,Trade定義了事務(wù),指定與資產(chǎn)和參與者的關(guān)系。事務(wù)處理函數(shù)文件包含執(zhí)行模型文件中定義的事務(wù)的JavaScript邏輯。該Trade交易旨在簡(jiǎn)單地接受Commodity正在交易的資產(chǎn)的標(biāo)識(shí)符以及Trader要設(shè)置為新所有者的參與者的標(biāo)識(shí)符。

    打開(kāi) logic.js 腳本文件,替換以下內(nèi)容,最后保存

/**
 * Track the trade of a commodity from one trader to another
 * @param {org.example.mynetwork.Trade} trade - the trade to be processed
 * @transaction
 */
async function tradeCommodity(trade) {
    trade.commodity.owner = trade.newOwner;
    let assetRegistry = await getAssetRegistry('org.example.mynetwork.Commodity');
    await assetRegistry.update(trade.commodity);
}

    2.3 添加訪問(wèn)控制,替換文件中的以下訪問(wèn)控制規(guī)則 permissions.acl

/**
 * Access control rules for tutorial-network
 */
rule Default {
    description: "Allow all participants access to all resources"
    participant: "ANY"
    operation: ALL
    resource: "org.example.mynetwork.*"
    action: ALLOW
}

rule SystemACL {
  description:  "System ACL to permit all access"
  participant: "ANY"
  operation: ALL
  resource: "org.hyperledger.composer.system.**"
  action: ALLOW
}

3、生成業(yè)務(wù)網(wǎng)絡(luò)存檔

    現(xiàn)在已經(jīng)定義了業(yè)務(wù)網(wǎng)絡(luò),它必須打包到可部署的業(yè)務(wù)網(wǎng)絡(luò)存檔(.bna)文件中

    3.1 使用命令行,導(dǎo)航到 tutorial-network 目錄,從tutorial-network目錄中運(yùn)行以下命令

composer archive create -t dir -n .

該命令運(yùn)行后,tutorial-network@0.0.1.bna在該tutorial-network目錄中創(chuàng)建了一個(gè)調(diào)用的業(yè)務(wù)網(wǎng)絡(luò)存檔文件。

4、部署業(yè)務(wù)網(wǎng)絡(luò)  

    創(chuàng)建.bna文件后,業(yè)務(wù)網(wǎng)絡(luò)可以部署到Hyperledger Fabric實(shí)例。通常情況下,來(lái)自Fabric管理員的信息需要?jiǎng)?chuàng)建一個(gè)PeerAdmin身份,具有將鏈接代碼安裝到對(duì)等體的權(quán)限以及在composerchannel通道上啟動(dòng)鏈接代碼的權(quán)限。但是,作為開(kāi)發(fā)環(huán)境安裝的一部分,PeerAdmin已經(jīng)創(chuàng)建了一個(gè)身份

    4.1 要從目錄安裝業(yè)務(wù)網(wǎng)絡(luò)tutorial-network

composer network install --card PeerAdmin@hlfv1 --archiveFile tutorial-network@0.0.1.bna

hyperledger composer開(kāi)發(fā)的示例分析

    4.2  要啟動(dòng)業(yè)務(wù)網(wǎng)絡(luò)

composer network start --networkName tutorial-network --networkVersion 0.0.1 --networkAdmin admin --networkAdminEnrollSecret adminpw --card PeerAdmin@hlfv1 --file networkadmin.card

hyperledger composer開(kāi)發(fā)的示例分析

    4.3 要將網(wǎng)絡(luò)管理員標(biāo)識(shí)導(dǎo)入為可用的業(yè)務(wù)網(wǎng)卡,請(qǐng)運(yùn)行以下命令

composer card import --file networkadmin.card

hyperledger composer開(kāi)發(fā)的示例分析

    4.4 要檢查業(yè)務(wù)網(wǎng)絡(luò)是否已成功部署,請(qǐng)運(yùn)行以下命令以ping網(wǎng)絡(luò)

composer network ping --card admin@tutorial-network

hyperledger composer開(kāi)發(fā)的示例分析 

5、生成REST服務(wù)器

    Hyperledger Composer可以基于業(yè)務(wù)網(wǎng)絡(luò)生成定制的REST API。為了開(kāi)發(fā)Web應(yīng)用程序,REST API提供了一個(gè)有用的語(yǔ)言無(wú)關(guān)抽象層

    5.1 要?jiǎng)?chuàng)建REST API,請(qǐng)導(dǎo)航到 tutorial-network 目錄并運(yùn)行以下命令:

composer-rest-server

    5.2 輸入 admin@tutorial-network 作為名片

    5.3 選擇 決不詢問(wèn)是否在生成的API中使用名稱空間時(shí)使用名稱空間。

    5.4 選擇 沒(méi)有 當(dāng)被問(wèn)及是否保護(hù)生成的API

    5.5 選擇  當(dāng)被問(wèn)及是否啟用事件發(fā)布時(shí)。

    5.6 選擇 沒(méi)有 當(dāng)被問(wèn)及是否啟用TLS安全。

訪問(wèn)路徑

hyperledger composer開(kāi)發(fā)的示例分析

6、生成一個(gè)應(yīng)用程序

    Hyperledger Composer還可以生成針對(duì)REST API運(yùn)行的Angular 4應(yīng)用程序

    6.1 要?jiǎng)?chuàng)建您的Angular 4應(yīng)用程序,請(qǐng)導(dǎo)航至 tutorial-network 目錄并運(yùn)行以下命令:

yo hyperledger-composer:angular

    6.2 選擇  當(dāng)被要求連接到運(yùn)行業(yè)務(wù)網(wǎng)絡(luò)時(shí)

    6.3 輸入標(biāo)準(zhǔn)package.json問(wèn)題(項(xiàng)目名稱,說(shuō)明,作者姓名,作者電子郵件,許可證)

    6.4 輸入 admin@tutorial-network 為商業(yè)網(wǎng)卡

    6.5 選擇連接到現(xiàn)有的REST API

    6.6 輸入 http://localhost 為REST服務(wù)器地址。

    6.7 輸入 3000 用于服務(wù)器端口。

    6.8 選擇名稱空間不被使用

    如圖:

hyperledger composer開(kāi)發(fā)的示例分析

    6.9 然后,Angular generator將為該項(xiàng)目創(chuàng)建腳手架并安裝所有依賴項(xiàng)。要運(yùn)行該應(yīng)用程序,請(qǐng)導(dǎo)航到您的角度項(xiàng)目目錄并運(yùn)行 npm start 。這將引發(fā)一個(gè)針對(duì)您的REST API運(yùn)行的Angular 4應(yīng)用程序 http://localhost:4200 

    在這個(gè)目錄下,angular-app

    $ cd ../angular-app

    $ npm start

執(zhí)行成功:

hyperledger composer開(kāi)發(fā)的示例分析

訪問(wèn)頁(yè)面,如圖:

hyperledger composer開(kāi)發(fā)的示例分析

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“hyperledger composer開(kāi)發(fā)的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI