免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

Hyperledgercomposer如何實現查詢

小編給大家分享一下Hyperledger composer如何實現查詢,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

成都創新互聯公司是一家集做網站、成都做網站、網站頁面設計、網站優化SEO優化為一體的專業的建站公司,已為成都等多地近百家企業提供網站建設服務。追求良好的瀏覽體驗,以探求精品塑造與理念升華,設計最適合用戶的網站頁面。 合作只是第一步,服務才是根本,我們始終堅持講誠信,負責任的原則,為您進行細心、貼心、認真的服務,與眾多客戶在蓬勃發展的市場環境中,互促共生。

查詢使用Composer查詢語言和REST API的教程

本地查詢語言可以過濾使用條件返回的結果,并且可以在事務中調用該結果以執行操作,例如更新或移除結果集上的資產。

查詢.qry在業務網絡定義的父目錄中的查詢文件()中定義。查詢包含WHERE子句,該子句定義選擇資產或參與者的標準。

1、更新業務網絡

    1.1 模型文件必須更新以包含事件和新事務,打開model的(.cto)文件tutorial-network,在它的基礎上添加

event TradeNotification {
    --> Commodity commodity
}

transaction RemoveHighQuantityCommodities {
}

event RemoveNotification {
    --> Commodity commodity
}

    1.2 打開交易處理器功能文件lib/logic.js,用下面的JavaScript替換事務邏輯

/**
 * 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) {

    // set the new owner of the commodity
    trade.commodity.owner = trade.newOwner;
    let assetRegistry = await getAssetRegistry('org.example.mynetwork.Commodity');

    // emit a notification that a trade has occurred
    let tradeNotification = getFactory().newEvent('org.example.mynetwork', 'TradeNotification');
    tradeNotification.commodity = trade.commodity;
    emit(tradeNotification);

    // persist the state of the commodity
    await assetRegistry.update(trade.commodity);
}

/**
 * Remove all high volume commodities
 * @param {org.example.mynetwork.RemoveHighQuantityCommodities} remove - the remove to be processed
 * @transaction
 */
async function removeHighQuantityCommodities(remove) {

    let assetRegistry = await getAssetRegistry('org.example.mynetwork.Commodity');
    let results = await query('selectCommoditiesWithHighQuantity');

    for (let n = 0; n < results.length; n++) {
        let trade = results[n];

        // emit a notification that a trade was removed
        let removeNotification = getFactory().newEvent('org.example.mynetwork','RemoveNotification');
        removeNotification.commodity = trade;
        emit(removeNotification);
        await assetRegistry.remove(trade);
    }
}

    第一個功能tradeCommodity將更改商品(擁有新的所有者參與者)上的所有者財產,以傳入交易事務并發出通知事件。然后,它將修改的商品保留回用于存儲商品實例的資產注冊表中。

    第二個函數調用命名查詢'selectCommoditiesWithHighQuantity'(定義于queries.qry),它將返回數量大于60的所有商品資產記錄; 發出一個事件; 并從AssetRegistry中移除商品。

2、創建一個查詢定義文件

    2.1 在tutorial-network目錄中,創建一個名為的新文件queries.qry

    2.2 將以下代碼復制并粘貼到queries.qry

/** Sample queries for Commodity Trading business network
*/

query selectCommodities {
  description: "Select all commodities"
  statement:
      SELECT org.example.mynetwork.Commodity
}

query selectCommoditiesByExchange {
  description: "Select all commodities based on their main exchange"
  statement:
      SELECT org.example.mynetwork.Commodity
          WHERE (mainExchange==_$exchange)
}

query selectCommoditiesByOwner {
  description: "Select all commodities based on their owner"
  statement:
      SELECT org.example.mynetwork.Commodity
          WHERE (owner == _$owner)
}

query selectCommoditiesWithHighQuantity {
  description: "Select commodities based on quantity"
  statement:
      SELECT org.example.mynetwork.Commodity
          WHERE (quantity > 60)
}

3、重新生成您的業務網絡存檔

    在更改業務網絡中的文件后,必須將業務網絡重新打包為業務網絡存檔(.bna)并重新部署到Hyperledger Fabric實例。升級部署的網絡需要部署的新版本具有新的版本號

    3.1 在tutorial-network目錄中,打開package.json文件

    3.2 將版本屬性更新0.0.10.0.2

    3.3 使用命令行,導航到該tutorial-network目錄,執行以下命令

composer archive create --sourceType dir --sourceName . -a tutorial-network@0.0.2.bna

4、部署更新后的業務網絡定義

    我們需要部署修改后的網絡,以成為區塊鏈上的最新版本!我們正在使用新創建的歸檔業務網絡歸檔文件來更新現有的已部署業務網絡; 這是我們在開發者教程中使用的相同的商業網絡名稱。

    4.1 切換到終端,將目錄切換到包含該文件夾的文件夾tutorial-network@0.0.2.bna

    4.2 運行以下命令安裝更新的業務網絡

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

    4.3 運行以下命令將網絡升級到新版本

composer network upgrade -c PeerAdmin@hlfv1 -n tutorial-network -V 0.0.2

    4.4 在繼續使用以下命令之前,檢查當前版本的業務網絡:

composer network ping -c admin@tutorial-network | grep Business

5、為更新的業務網絡重新生成REST API

    現在我們將整合最新更新的業務網絡和添加的查詢,并公開此業務網絡的REST API。

    5.1 使用以下命令啟動REST服務器

composer-rest-server

    5.2 輸入admin@tutorial-network卡名稱

    5.3 詢問是否在生成的API中使用名稱空間時,請選擇不使用名稱空間。

    5.4 當詢問是否保護生成的API時選擇

    5.5 當詢問是否啟用事件發布時,選擇

    5.6 當被問及是否啟用TLS安全時,請選擇

 Hyperledger composer如何實現查詢

6、測試REST API并創建一些數據

    6.1 打開Web瀏覽器并導航到http://localhost:3000/explorer。您應該看到LoopBack API Explorer,允許您檢查和測試生成的REST API。

Hyperledger composer如何實現查詢

    6.2 首先,在REST Explorer中點擊'Trader',然后點擊/ Trader上的'POST'方法,然后向下滾動到Parameter部分 - 依次創建以下Trader實例,內容是:

{
  "$class": "org.example.mynetwork.Trader",
  "tradeId": "TRADER1",
  "firstName": "Jenny",
  "lastName": "Jones"
}

   6.3 點擊“試用”來創建參與者。'響應代碼'(向下滾動)應該是200(SUCCESS),由于成功界面太長,所以需要三個截圖

    Hyperledger composer如何實現查詢

Hyperledger composer如何實現查詢

Hyperledger composer如何實現查詢

    6.4 按照上面的操作,重復執行兩次,代碼不同,通過復制以下JSON創建第二個交易者

{
  "$class": "org.example.mynetwork.Trader",
  "tradeId": "TRADER2",
  "firstName": "Jack",
  "lastName": "Sock"
}

    6.5 第三個交易者

{
  "$class": "org.example.mynetwork.Trader",
  "tradeId": "TRADER3",
  "firstName": "Rainer",
  "lastName": "Valens"
}

    6.6 現在滾動到頂部,然后在REST Explorer中單擊“商品”對象

Hyperledger composer如何實現查詢

    6.7  點擊POST操作并向下滾動到參數部分:以與上述相同的方式,為所有者TRADER1和TRADER2創建兩個商品資產記錄

{
  "$class": "org.example.mynetwork.Commodity",
  "tradingSymbol": "EMA",
  "description": "Corn",
  "mainExchange": "EURONEXT",
  "quantity": 10,
  "owner": "resource:org.example.mynetwork.Trader#TRADER1"
}
{
  "$class": "org.example.mynetwork.Commodity",
  "tradingSymbol": "CC",
  "description": "Cocoa",
  "mainExchange": "ICE",
  "quantity": 80,
  "owner": "resource:org.example.mynetwork.Trader#TRADER2"
}

 Hyperledger composer如何實現查詢

7、使用商品交易REST API瀏覽器執行查詢

    現在我們擁有資產和參與者,我們可以嘗試一些查詢,我們可以首先嘗試的最簡單的REST查詢是我們的命名查詢selectCommodities。展開“查詢”REST端點,您將看到我們在模型中定義的命名查詢。這些查詢現在作為REST查詢公開,并為其生成一個/ GET操作。請注意,查詢的描述(我們在模型定義中定義的)顯示在右側。

    7.1 執行簡單的REST查詢

Hyperledger composer如何實現查詢

然后try it out 出現結果正是剛剛添加的那兩個如圖,

Hyperledger composer如何實現查詢

    7.2 執行篩選的REST查詢

    展開查詢端點'selectCommoditiesByExchange'并滾動到'參數'部分。

    在'Exchange'參數中輸入'EURONEXT',點擊“試用”。

Hyperledger composer如何實現查詢

結果為:

Hyperledger composer如何實現查詢

    7.3 使用來自命名查詢的結果執行事務更新

    最后,您會記得我們已經定義了一個簡單的查詢,用于在我們的查詢文件中篩選數量大于60的商品。在事務功能中使用時,查詢功能非常強大,因為使用查詢可以允許事務邏輯設置一組資產或參與者來執行更新或創建刪除操作。

Hyperledger composer如何實現查詢

    我們selectCommoditiesWithHighQuantityremoveHighQuantityCommodities交易中使用查詢。如果您在REST資源管理器中執行此/ GET操作,您會看到它僅選擇數量大于60的資產。

    Hyperledger composer如何實現查詢

    點擊

Hyperledger composer如何實現查詢

篩選結果:

Hyperledger composer如何實現查詢

看完了這篇文章,相信你對“Hyperledger composer如何實現查詢”有了一定的了解,如果想了解更多相關知識,歡迎關注創新互聯行業資訊頻道,感謝各位的閱讀!

網站標題:Hyperledgercomposer如何實現查詢
新聞來源:http://m.newbst.com/article12/jhecdc.html

成都網站建設公司_創新互聯,為您提供品牌網站建設網站內鏈動態網站云服務器微信小程序關鍵詞優化

廣告

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

成都定制網站網頁設計