PlaTIBART:一種可重複測試的交互式物聯網區塊鏈應用平臺

PlaTIBART:一種可重複測試的交互式物聯網區塊鏈應用平臺

摘要

隨著支持區塊鏈的物聯網應用的出現,人們對相關軟件模式,中間件概念和測試實踐的需求不斷增加,從而確保足夠的質量和生產力。物聯網和區塊鏈各自提供必須集成的不同設計目標,概念和實踐,包括分佈式參與者模型和物聯網的容錯以及來自區塊鏈的不可靠來源的交互式信息完整性。物聯網和區塊鏈都是新興技術,並且在組合時都缺乏編制模式和應用程序開發實踐。本文描述了PlaTIBART,它是一個交互式物聯網區塊鏈應用程序的平臺,具有可重複的測試,結合了Actor模式(這是IoT中常用的計算模型)以及自定義域特定語言(DSL)和測試網絡管理工具。我們展示了PlaTIBART如何應用於開發,測試和分析容錯IoT區塊鏈應用程序。

關鍵詞

物聯網,區塊鏈,設計模式,測試

簡介

近年來,區塊鏈技術的興趣和商業應用有所增加。例如,比特幣的市值超過750億美元,而以太坊則達到360億美元。這種增長的一個原因源於區塊鏈將現有技術組合在一起,使得不受信任的中央權威機構能夠在分散的,加密安全的和不可變的生態系統中實現非信任方的互操作。

在大致相同的時間內,由於物聯網設備從僅僅是智能傳感器轉變為通過通信,決策制定和物理驅動影響其環境的主動參與者,物聯網設備的增加促使了交易完整性的需求。這些功能需要事務完整性來提供對可能不受信任的聯網第三方IoT設備所做操作的審計。物聯網設備中同時利用區塊鏈功能(例如分散化,加密安全性和不變性)的交易完整性需求推動了創建交互式物聯網區塊鏈應用的研究。

區塊鏈部署(特別是以太網,由於其龐大的安裝基礎而成為本文的重點,以及其強大的智能合約語言)通常通過具有不同模式的程序進行管理。它們大致包括:命令行界面(CLI),RPC API,HTML頁面和JavaScript代碼創建圖形界面。這些接口提供了在客戶端本身內運行以太坊應用程序或與以太坊客戶端連接其他應用程序的標準方法。

然而,實際上,現有的區塊鏈部署接口缺乏內置的容錯能力,尤其是網絡通信錯誤或應用程序執行錯誤。解決此問題需要模式和工具,以便以可重複和系統的方式部署區塊鏈客戶端。在集成IoT區塊鏈應用程序(ITBA)時,此要求變得更加重要。 ITBA的物聯網組件在傳統區塊鏈應用程序之上增加了其他要求,因為它們與物理環境相互作用並增加了隱私問題。

本文介紹了PlaTIBART的結構和功能,PlaTIBART是具有可重複測試的交互式物聯網區塊鏈應用程序平臺,提供了一組工具和技術,用於增強ITBA的開發,部署,執行,管理和測試。 特別是,我們描述了用於開發ITBA的模式,用於定義私有區塊鏈部署網絡的域特定語言(DSL),可以在其上部署和測試應用程序的Actor組件,使用這些DSL模型管理部署網絡的工具。 可重現的測試環境,以及通過應用Observer模式提供容錯的接口。此外,ITBA不僅可以通過區塊鏈進行通信,還可以通過TCP / IP或其他網絡協議使用非區塊鏈通信。

系統模型

本節介紹了PlaTIBART的基礎系統模型,並描述了我們在本文中使用的交互式能源的用例場景,以激發對ITBA的需求。

根據我們為區塊鏈生態系統開發分散式應用程序(DApps)的經驗,三個關鍵功能對於DApps在ITBA生態系統中有效運行至關重要:應支持傳統的物聯網計算和交互,信息應在應提供分佈式數據庫,並提供系統範圍內可接受的事件順序日誌。可以將每個需求委派給三層體系結構中的單獨層。第一層是物聯網中間件層,它促進了聯網設備之間的通信,這可以通過現有的物聯網中間件來解決,例如RIAPS。第二層是分佈式數據庫層。第三層是事件層的順序日誌,可以通過區塊鏈集成來解決。

PlaTIBART提供了一種架構,用於以容錯方式協調所有這些層,以及大規模可重複測試的工具。它利用Actor模型來集成這三個層。每個層都由完成其指定的圖層相關任務的組件組成。然後將這些組件組合成一個actor,它可以與網絡中的每個層和其他actor進行交互。

案例研究:交互式能源系統

交互式能源系統(TES)的出現是為了應對電力行業從集中式單片業務模式的轉變,這些業務模式的特點是批量生成和單向交付,採用分散模式,最終用戶在生產和生產中發揮更積極的作用。GridWise架構委員會將TES定義為“一個經濟和控制機制系統,允許整個電氣基礎設施的供需平衡,使用價值作為關鍵的運營參數”。

在本文中,我們考慮一類在電網連接模式下運行的TES,這意味著本地電網連接到分配系統運營商(DSO),當需求大於本地網絡可以產生的電力時,DSO提供電力。主要參與者是消費者,主要包括住宅負荷,以及運營分佈式能源的消費者,例如屋頂太陽能電池或能夠需求/響應的靈活負載。此外,DSO管理網絡的網格連接。此類裝置配備了先進的計量基礎設施,包括支持TES的智能電錶。

TES的一個關鍵組成部分是交易管理平臺(TMP),它以平衡當地市場供需的方式處理市場清算功能。

PLATIBART的架構

用於創建物聯網/區塊鏈應用程序的可重複測試網絡部署的PlaTIBART體系結構結合了域特定語言(DSL)來定義網絡拓撲和設置,利用Fabric API管理測試網絡的Python程序,以及RIAPS中間件促進網絡上節點之間的通信。

智能電網的彈性信息架構平臺(RIAPS)提供基於actor和組件的抽象,以及支持在網絡2上的設備上部署算法,並通過提供微秒級時間同步,基於故障的重新配置以及組創建和協調服務來協同解決問題,除了中描述的服務。 它能夠實時處理不同的通信和運行實現的算法。

網絡中的每個應用程序客戶端都實現為具有兩個主要組件的actor:(1)特定於給予角色的角色的包裝類,以及(2)geth客戶端,即以太坊3的參考客戶端。 圖1顯示了一個由五個actor組成的小型網絡(由包裝器和geth客戶端對周圍的橢圓表示)以及每個actor的組件之間的網絡連接。 Geth客戶端通過on-blockchain方式專門通信,即每個actor的geth客戶端直接與其相關的包裝器通信,並且包裝器通過諸如TCP P2P通信的off-blockchain信道直接與其他包裝器通信。

PlaTIBART:一種可重複測試的交互式物聯網區塊鏈應用平臺

圖1:示例Actor組件網絡

與緊密耦合的解決方案相比,將區塊鏈客戶端和包裝器解耦為actor的兩個組件的關鍵優勢是增強了事務丟失的容錯能力。具體來說,它允許包裝器不僅監視區塊鏈客戶端,還根據需要關閉並重新啟動客戶端。 這種設計允許包裝器組件確保如果任何已知或發現的故障由區塊鏈軟件中的缺陷引起,則包裝器至少可以嘗試恢復。

PlaTIBART的DSL基於Actor模式定義了網絡中不同客戶端的角色。 此DSL模型實現了正確的構造設計,從而允許模型上的驗證階段在嘗試任何部署之前檢查內部一致性。此驗證可防止不一致,例如兩個客戶端在同一主機上請求相同的端口。

PlaTIBART:一種可重複測試的交互式物聯網區塊鏈應用平臺

圖2:DSL模型示例

實驗結果

為了測試PlaTIBART,我們實施了上述交互式能源系統案例研究的解決方案,並將其部署到圖2中定義的測試網絡。該網絡安裝在範德堡大學託管的私有云實例上。 我們在6個虛擬主機上運行測試,每個主機具有:4GB RAM,40GB硬盤空間,運行Ubuntu 16.04.02和千兆網絡。

在進行上述測試後,我們觀察到表1中所示的結果。如該表所示,每個測試階段的標準偏差很小(最大值是所用時間的0.09%)。同樣地,平均時間相對於客戶端數量(2,5,10,15,20個消費者+ 1個DSO + 1個礦工)保持相對靜態或線性縮放。

PlaTIBART:一種可重複測試的交互式物聯網區塊鏈應用平臺

保持相對靜態的測試階段包括:礦工創建,區塊鏈製作,區塊鏈創建,分配給礦工,礦工開始和網絡刪除。隨著專業消費者數量的增加而擴展的測試階段包括:客戶端創建,分發給客戶端,創建完整網絡,客戶端啟動,網絡連接和網絡停止。在將平均時間增加除以客戶端數量的差異之後,縮放增加是線性的(Std Dev <0.065)。

我們的實驗結果表明,管理PlaTIBART管理的區塊鏈測試網絡存在高度一致性和可預測性。這些結果有助於建立信心,PlatiBART為物聯網區塊鏈應用創建可重複測試網絡的方法可以很好地擴展,這對於鼓勵物聯網系統開發人員採用這一點非常重要。

致謝

本文由南京大學軟件學院2018級碩士生王新宇翻譯轉述

相關推薦

推薦中...