您好,登錄后才能下訂單哦!
這篇文章主要介紹了使用Hyperledger composer創(chuàng)建一個(gè)新的業(yè)務(wù)網(wǎng)絡(luò),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
在1的地方,輸入自己的名字,我寫(xiě)的是tutorial-network
然后點(diǎn)擊2,最后在右面3選擇Deploy進(jìn)行部署,成功之后截圖:
現(xiàn)在我們已經(jīng)創(chuàng)建并部署了業(yè)務(wù)網(wǎng)絡(luò),您應(yīng)該會(huì)在我們的錢(qián)包中看到一個(gè)名為admin的新業(yè)務(wù)網(wǎng)絡(luò)卡,用于我們的業(yè)務(wù)網(wǎng)絡(luò)教程 - 網(wǎng)絡(luò)。錢(qián)包可以包含業(yè)務(wù)網(wǎng)卡以連接到多個(gè)部署的業(yè)務(wù)網(wǎng)絡(luò)。
連接到外部區(qū)塊鏈時(shí),業(yè)務(wù)網(wǎng)卡代表連接到業(yè)務(wù)網(wǎng)絡(luò)所需的所有內(nèi)容。它們包括連接詳細(xì)信息,身份驗(yàn)證資料和元數(shù)據(jù)。
要連接到我們的業(yè)務(wù)網(wǎng)絡(luò),請(qǐng)點(diǎn)擊我們業(yè)務(wù)網(wǎng)絡(luò)卡下的立即連接。
我這里已經(jīng)連接過(guò)了,所以是灰色的,你們第一次的話都是深顏色,可以點(diǎn)擊進(jìn)入頁(yè)面如圖:
點(diǎn)擊1那個(gè)文件,然后編輯2,將里面的內(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 }
最后執(zhí)行3
該域模型定義了單個(gè)資產(chǎn)類型Commodity
和單個(gè)參與者類型Trader
以及Trade
用于修改商品所有者的單個(gè)交易類型。
現(xiàn)在已經(jīng)定義了域模型,我們可以定義業(yè)務(wù)網(wǎng)絡(luò)的事務(wù)邏輯。Composer使用JavaScript函數(shù)表達(dá)業(yè)務(wù)網(wǎng)絡(luò)的邏輯。這些功能在交易提交處理時(shí)自動(dòng)執(zhí)行。
4.1 點(diǎn)擊添加文件按鈕
4.2 單擊腳本文件并單擊添加
4.3 刪除腳本文件中的代碼行并將其替換為以下代碼
/** * 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); }
此功能僅owner
根據(jù)newOwner
收到的Trade
交易的財(cái)產(chǎn)更改商品的財(cái)產(chǎn)。然后它將修改Commodity
后的內(nèi)容保存到資產(chǎn)注冊(cè)表中,用于存儲(chǔ)Commodity
實(shí)例。
訪問(wèn)控制文件定義了業(yè)務(wù)網(wǎng)絡(luò)的訪問(wèn)控制規(guī)則。我們的網(wǎng)絡(luò)很簡(jiǎn)單,所以默認(rèn)的訪問(wèn)控制文件不需要編輯?;疚募楫?dāng)前參與者提供了networkAdmin
對(duì)業(yè)務(wù)網(wǎng)絡(luò)和系統(tǒng)級(jí)操作的完全訪問(wèn)權(quán)限。雖然可以有多個(gè)模型或腳本文件,但在任何業(yè)務(wù)網(wǎng)絡(luò)中只能有一個(gè)訪問(wèn)控制文件。
現(xiàn)在我們有模型,腳本和訪問(wèn)控制文件,我們需要部署和測(cè)試我們的業(yè)務(wù)網(wǎng)絡(luò)。
單擊部署更改以升級(jí)業(yè)務(wù)網(wǎng)絡(luò)。
其實(shí)就是左下角的那個(gè)Deploy,我們每一步都做了,不必執(zhí)行
接下來(lái),我們需要建立一些參與者(在這種情況下,以測(cè)試我們的業(yè)務(wù)網(wǎng)絡(luò)交易商),創(chuàng)造了一個(gè)素材資源(商品),然后使用我們的貿(mào)易交易改變所有權(quán)的商品。執(zhí)行下面的那個(gè)test
跳轉(zhuǎn)到test,界面發(fā)生改變
8.1 確保您在左側(cè)選擇了交易者選項(xiàng)卡,然后點(diǎn)擊右上角的創(chuàng)建新參與者
因此刪除那里的代碼并粘貼以下內(nèi)容,下面兩個(gè)代碼是創(chuàng)建兩個(gè)參與者?。?!就是執(zhí)行兩遍操作,但是輸入不同的內(nèi)容,保證兩個(gè)參與者,千萬(wàn)不要寫(xiě)在一起?。。。?/p>
{ "$class": "org.example.mynetwork.Trader", "tradeId": "TRADER1", "firstName": "Jenny", "lastName": "Jones" }
{ "$class": "org.example.mynetwork.Trader", "tradeId": "TRADER2", "firstName": "Amy", "lastName": "Williams" }
9.1 現(xiàn)在我們有兩個(gè)交易者參與者,我們需要他們交易的東西。創(chuàng)建資產(chǎn)與創(chuàng)建參與者非常相似。我們正在創(chuàng)建的商品將擁有一個(gè)所有者屬性,表明它屬于交易者,并且tradeId是TRADER1
9.2 點(diǎn)擊資產(chǎn)下的商品標(biāo)簽,然后點(diǎn)擊創(chuàng)建新資產(chǎn),刪除資產(chǎn)數(shù)據(jù)并將其替換為以下內(nèi)容
{ "$class": "org.example.mynetwork.Commodity", "tradingSymbol": "ABC", "description": "Test commodity", "mainExchange": "Euronext", "quantity": 72.297, "owner": "resource:org.example.mynetwork.Trader#TRADER1" }
成功截圖:
現(xiàn)在我們有兩個(gè)交易員和一個(gè)商品在他們之間進(jìn)行交易,我們可以測(cè)試我們的交易交易。事務(wù)是Hyperledger Composer業(yè)務(wù)網(wǎng)絡(luò)中所有變化的基礎(chǔ),請(qǐng)嘗試從“ 我的業(yè)務(wù)網(wǎng)絡(luò)”屏幕創(chuàng)建另一個(gè)業(yè)務(wù)網(wǎng)絡(luò)并使用更高級(jí)的業(yè)務(wù)網(wǎng)絡(luò)模板。
10.1 點(diǎn)擊左側(cè)的Submit Transaction按鈕,確保交易類型為交易,將交易數(shù)據(jù)替換為以下內(nèi)容,或者更改詳細(xì)信息,最后點(diǎn)擊提交
{ "$class": "org.example.mynetwork.Trade", "commodity": "resource:org.example.mynetwork.Commodity#ABC", "newOwner": "resource:org.example.mynetwork.Trader#TRADER2" }
10.2 檢查我們的資產(chǎn)已經(jīng)改變所有權(quán)從TRADER1
到TRADER2
,通過(guò)擴(kuò)大資產(chǎn)數(shù)據(jù)部分。你應(yīng)該看到所有者被列為resource:org.example.mynetwork.Trader#TRADER2
10.3 要查看我們業(yè)務(wù)網(wǎng)絡(luò)的完整交易歷史記錄,請(qǐng)點(diǎn)擊左側(cè)的所有交易。以下是每個(gè)交易提交時(shí)的清單。您可以看到,我們使用用戶界面執(zhí)行的某些操作(例如創(chuàng)建交易參與者和商品資產(chǎn))被記錄為交易,即使它們未在我們的業(yè)務(wù)網(wǎng)絡(luò)模型中定義為交易。這些事務(wù)被稱為“系統(tǒng)事務(wù)”,并且對(duì)于所有業(yè)務(wù)網(wǎng)絡(luò)都是通用的,并且在Hyperledger Composer運(yùn)行時(shí)中定義
現(xiàn)在交易已成功運(yùn)行,我們應(yīng)該注銷商業(yè)網(wǎng)絡(luò),最終在我們開(kāi)始的“ 我的商家網(wǎng)絡(luò)”屏幕上結(jié)束。
在屏幕的右上角是一個(gè)標(biāo)有admin的按鈕。這將列出您當(dāng)前的身份,注銷,單擊管理以打開(kāi)下拉菜單,然后單擊我的商業(yè)網(wǎng)絡(luò)。
介紹:
在本地使用Playground,您可以使用連接到在瀏覽器本地存儲(chǔ)中工作的“Web瀏覽器”,或者您可以使用連接到通常在名為“hlfv1”的組中使用真實(shí)結(jié)構(gòu)的連接
如果你連接到一個(gè)真正的 Fabric,那么你很可能已經(jīng)創(chuàng)建了一個(gè)卡,用于PeerAdmin和ChannelAdmin角色的身份 - 這通常稱為PeerAdmin。這是您用于使用Composer部署和更新網(wǎng)絡(luò)的卡。
當(dāng)您將網(wǎng)絡(luò)部署到真正的 Fabric時(shí),需要完成其他字段才能點(diǎn)擊“ 部署”按鈕 - 您需要提供網(wǎng)絡(luò)管理員的詳細(xì)信息。
滾動(dòng)到部署屏幕的底部以查找網(wǎng)絡(luò)管理員的憑據(jù)。對(duì)于簡(jiǎn)單的開(kāi)發(fā)結(jié)構(gòu)和許多測(cè)試網(wǎng)絡(luò),您可以提供ID和秘密。注冊(cè)ID - 管理員注冊(cè)密碼 - adminpw
當(dāng)指定ID和秘密時(shí),您可以單擊“ 部署”按鈕并在第三步中繼續(xù)教程。
如果您正在使用自定義或生產(chǎn)結(jié)構(gòu) - 請(qǐng)聯(lián)系您的結(jié)構(gòu)管理員以獲取網(wǎng)絡(luò)管理員的詳細(xì)信息。
當(dāng)您使用真實(shí)光纖網(wǎng)并單擊部署更改時(shí),您將看到一個(gè)添加彈出式對(duì)話框,要求您從下拉列表中指定安裝卡和升級(jí)卡。通常,您指定與用于部署初始網(wǎng)絡(luò)相同的PeerAdmin卡。如果您不確定,請(qǐng)聯(lián)系您的Fabric Administrator。
選擇卡片,然后點(diǎn)擊升級(jí)按鈕。請(qǐng)注意,在真正的Fabric上,這可能需要幾分鐘才能完成。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“使用Hyperledger composer創(chuàng)建一個(gè)新的業(yè)務(wù)網(wǎng)絡(luò)”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(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)容。