国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于區(qū)塊鏈技術(shù)的可信分布式計(jì)算研究

2021-05-28 06:03許亮
現(xiàn)代計(jì)算機(jī) 2021年11期
關(guān)鍵詞:發(fā)送給計(jì)算結(jié)果合約

許亮

(四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065)

0 引言

當(dāng)前,一個(gè)萬物互聯(lián)的世界正在快速成型,各種數(shù)字化終端設(shè)備的普及應(yīng)用,帶來的是各類數(shù)據(jù)呈指數(shù)級的爆發(fā)式增長,在這個(gè)數(shù)據(jù)洪流澎湃洶涌的時(shí)代,數(shù)據(jù)科學(xué)家研究實(shí)現(xiàn)了一系列大數(shù)據(jù)計(jì)算的解決方案,包括各類分布式計(jì)算框架、并行計(jì)算、云計(jì)算、邊緣計(jì)算、霧計(jì)算等。目前,現(xiàn)有的技術(shù)方法均采用集中式、中心化的方式來處理大量數(shù)據(jù)的計(jì)算任務(wù),這些系統(tǒng)結(jié)構(gòu)復(fù)雜、拓展性有限、容錯(cuò)率低,且計(jì)算環(huán)境可信度差,數(shù)據(jù)無法共享,難以滿足萬物互聯(lián)時(shí)代對數(shù)據(jù)計(jì)算的多樣性需求。

以Map-Reduce 編程模型為基礎(chǔ)的分布式計(jì)算系統(tǒng)采用中心化計(jì)算機(jī)組來進(jìn)行大規(guī)模數(shù)據(jù)的分解、計(jì)算、匯總,通過網(wǎng)絡(luò)通信來進(jìn)行消息傳遞和工作協(xié)調(diào),可擴(kuò)展性強(qiáng),容錯(cuò)率高,但是搭建部署分布式計(jì)算集群的價(jià)格也非常昂貴,且集群不能自動(dòng)解決惡意節(jié)點(diǎn)作惡的問題,只能依靠中心化的方式進(jìn)行管理。而區(qū)塊鏈技術(shù)作為一種去中心化的分布式數(shù)據(jù)庫存儲(chǔ)技術(shù),具有去中心化、數(shù)據(jù)防篡改、可溯源等特性,是一種有效解決廣域網(wǎng)范圍內(nèi)分布式計(jì)算環(huán)境信任問題的方案。

1 本文研究內(nèi)容

本文將區(qū)塊鏈與分布式計(jì)算相關(guān)特性進(jìn)行了有機(jī)結(jié)合,基于分布式計(jì)算場景,對現(xiàn)有聯(lián)盟區(qū)塊鏈進(jìn)行了改進(jìn)和重新設(shè)計(jì),利用區(qū)塊鏈技術(shù)的優(yōu)點(diǎn)有效解決分布式計(jì)算體系存在的信任問題,并研究提出了一種區(qū)塊鏈分布式計(jì)算模型范式。本文參考Map-Reduce 編程模型,從聯(lián)盟區(qū)塊鏈角度出發(fā),將區(qū)塊鏈的交易流程轉(zhuǎn)變?yōu)榉植际接?jì)算框架,從而實(shí)現(xiàn)對大規(guī)模數(shù)據(jù)分解后進(jìn)行分布式并行計(jì)算,本文還利用區(qū)塊鏈智能合約的優(yōu)點(diǎn),將分布式計(jì)算的映射和歸約等計(jì)算功能函數(shù)以及計(jì)算節(jié)點(diǎn)選擇策略等函數(shù)寫入智能合約,部署在區(qū)塊鏈上,使所有計(jì)算節(jié)點(diǎn)均按照合約規(guī)定進(jìn)行計(jì)算。該系統(tǒng)利用區(qū)塊鏈數(shù)據(jù)密碼加密認(rèn)證和共識(shí)機(jī)制的技術(shù)特性,能創(chuàng)造可信的分布式計(jì)算環(huán)境,有效實(shí)現(xiàn)數(shù)據(jù)的安全共享,既免去了搭建分布式計(jì)算集群的高昂代價(jià),也去除了中心化管理的束縛,使分布式計(jì)算節(jié)點(diǎn)的動(dòng)態(tài)加入和退出變得更為自由,能有效解決了節(jié)點(diǎn)間的信任問題。這種基于區(qū)塊鏈的分布式計(jì)算架構(gòu)使得任何有海量數(shù)據(jù)計(jì)算需求的用戶無需搭建分布式計(jì)算集群,而是以較低的費(fèi)用及門檻條件加入該區(qū)塊鏈系統(tǒng),即可發(fā)布大規(guī)模數(shù)據(jù)計(jì)算任務(wù),使用該系統(tǒng)的分布式可信計(jì)算功能,而無需關(guān)注更多細(xì)節(jié),也不用擔(dān)心計(jì)算環(huán)境的可信問題。該系統(tǒng)還設(shè)置了可信計(jì)算等級,以智能合約形式部署在區(qū)塊鏈網(wǎng)絡(luò)上,由用戶根據(jù)自身任務(wù)需要自由選擇系統(tǒng)計(jì)算環(huán)境的可信等級。

2 分布式計(jì)算區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)模型

參考現(xiàn)有聯(lián)盟區(qū)塊鏈節(jié)點(diǎn)模型,根據(jù)分布式計(jì)算特點(diǎn),立足于創(chuàng)造一個(gè)可信計(jì)算環(huán)境,采取計(jì)算與存儲(chǔ)分離的模式,將分布式計(jì)算區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)為計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)兩類。計(jì)算節(jié)點(diǎn)主要執(zhí)行分布式計(jì)算,即對子任務(wù)執(zhí)行mapping 計(jì)算和內(nèi)部結(jié)果排序統(tǒng)計(jì)等功能。若計(jì)算節(jié)點(diǎn)選舉為主節(jié)點(diǎn),則具有子任務(wù)計(jì)算結(jié)果收集、產(chǎn)生新區(qū)塊等功能。計(jì)算節(jié)點(diǎn)不記賬,不保存和更新賬本,當(dāng)且僅當(dāng)計(jì)算節(jié)點(diǎn)被選為主節(jié)點(diǎn)后,需要與賬本產(chǎn)生交互和查詢,則向存儲(chǔ)節(jié)點(diǎn)查詢或者下載賬本。存儲(chǔ)節(jié)點(diǎn)主要對新產(chǎn)生的區(qū)塊進(jìn)行驗(yàn)證,并將驗(yàn)證通過的區(qū)塊上鏈,更新賬本狀態(tài)。

計(jì)算節(jié)點(diǎn)分為四種狀態(tài):空閑狀態(tài)、分發(fā)狀態(tài)、計(jì)算狀態(tài)、主節(jié)點(diǎn)狀態(tài),在同一任務(wù)周期內(nèi),一個(gè)節(jié)點(diǎn)只能進(jìn)入其中的一種狀態(tài)。當(dāng)計(jì)算節(jié)點(diǎn)作為大數(shù)據(jù)計(jì)算任務(wù)分發(fā)節(jié)點(diǎn)時(shí),該節(jié)點(diǎn)進(jìn)入分發(fā)狀態(tài),在一次任務(wù)中,分發(fā)節(jié)點(diǎn)不參與任何子任務(wù)的計(jì)算,而是一直處于分發(fā)狀態(tài)等待計(jì)算結(jié)果,待收到主節(jié)點(diǎn)發(fā)來的子任務(wù)計(jì)算結(jié)果后進(jìn)行最終結(jié)果統(tǒng)計(jì)匯總。當(dāng)計(jì)算節(jié)點(diǎn)接收子任務(wù)進(jìn)行計(jì)算時(shí),該節(jié)點(diǎn)進(jìn)入計(jì)算狀態(tài),計(jì)算完成后,判斷任務(wù)池中是否還有未完成的其他計(jì)算任務(wù),若有,則繼續(xù)保持計(jì)算狀態(tài),若無,則轉(zhuǎn)入空閑狀態(tài)。當(dāng)計(jì)算節(jié)點(diǎn)選舉為主節(jié)點(diǎn)時(shí),該節(jié)點(diǎn)轉(zhuǎn)入主節(jié)點(diǎn)狀態(tài),進(jìn)入主節(jié)點(diǎn)狀態(tài)的計(jì)算節(jié)點(diǎn)不承擔(dān)子任務(wù)的計(jì)算工作,也不能進(jìn)行作業(yè)分發(fā)。主節(jié)點(diǎn)功能包括:收集各計(jì)算節(jié)點(diǎn)的計(jì)算結(jié)果,并對同一子任務(wù)不同計(jì)算節(jié)點(diǎn)的計(jì)算結(jié)果進(jìn)行統(tǒng)計(jì)比對,當(dāng)一個(gè)子任務(wù)相同的計(jì)算結(jié)果數(shù)超過執(zhí)行該子任務(wù)計(jì)算節(jié)點(diǎn)數(shù)50%時(shí),則該結(jié)果被認(rèn)為可信計(jì)算結(jié)果,主節(jié)點(diǎn)將該計(jì)算結(jié)果發(fā)送給任務(wù)分發(fā)節(jié)點(diǎn),并將所有計(jì)算結(jié)果打包進(jìn)新區(qū)塊。若該子任務(wù)沒有產(chǎn)生可信結(jié)果,主節(jié)點(diǎn)將該消息反饋給任務(wù)分發(fā)節(jié)點(diǎn),由任務(wù)分發(fā)節(jié)點(diǎn)按照計(jì)算節(jié)點(diǎn)選擇策略為該子任務(wù)重新選擇分配計(jì)算節(jié)點(diǎn),重新執(zhí)行計(jì)算流程。主節(jié)點(diǎn)產(chǎn)生新的區(qū)塊后,將新區(qū)塊發(fā)送給所有存儲(chǔ)節(jié)點(diǎn),存儲(chǔ)節(jié)點(diǎn)對區(qū)塊進(jìn)行驗(yàn)證后上鏈,更新賬本。計(jì)算節(jié)點(diǎn)狀態(tài)轉(zhuǎn)換如圖1 所示。

圖1 計(jì)算節(jié)點(diǎn)狀態(tài)轉(zhuǎn)換圖

若在任務(wù)執(zhí)行過程中,分發(fā)節(jié)點(diǎn)宕機(jī)或者發(fā)生故障,在任務(wù)生命周期內(nèi)無法接收主節(jié)點(diǎn)發(fā)來的子任務(wù)計(jì)算結(jié)果,則主節(jié)點(diǎn)依然按程序?qū)⒈敬稳蝿?wù)所有子任務(wù)計(jì)算結(jié)果打包進(jìn)新區(qū)塊,并發(fā)送給存儲(chǔ)節(jié)點(diǎn)驗(yàn)證上鏈,待分發(fā)節(jié)點(diǎn)恢復(fù)后,自行讀取鏈上的計(jì)算結(jié)果,調(diào)用結(jié)果統(tǒng)計(jì)模塊匯總統(tǒng)計(jì)最終結(jié)果。如此,確保了在分發(fā)節(jié)點(diǎn)出現(xiàn)意外的情況下,仍然能保證計(jì)算結(jié)果的有效性,確保了該分布式系統(tǒng)的魯棒性。

3 分布式計(jì)算區(qū)塊鏈網(wǎng)絡(luò)設(shè)計(jì)方案

分布式計(jì)算系統(tǒng)一般通過任務(wù)的分解與聚合的方式進(jìn)行分布式并行計(jì)算,從而對大數(shù)據(jù)進(jìn)行處理,本文所述基于區(qū)塊鏈技術(shù)的分布式計(jì)算方案也采用任務(wù)分解與聚合的方式進(jìn)行,任務(wù)分解與聚合等功能均以函數(shù)編程形式寫入?yún)^(qū)塊鏈智能合約中,事先部署運(yùn)行在區(qū)塊鏈上。智能合約中既包含分布式計(jì)算函數(shù)和結(jié)果匯總函數(shù),也包括計(jì)算節(jié)點(diǎn)選擇策略。任務(wù)分發(fā)節(jié)點(diǎn)通過智能合約完成任務(wù)分解后,根據(jù)智能合約中的節(jié)點(diǎn)選擇策略,由用戶自由選擇計(jì)算可信度等級,確定子任務(wù)的計(jì)算節(jié)點(diǎn)數(shù)量,調(diào)用智能合約為每個(gè)子任務(wù)選擇分配規(guī)定數(shù)量的計(jì)算節(jié)點(diǎn)。

3.1 網(wǎng)絡(luò)結(jié)構(gòu)

在區(qū)塊鏈網(wǎng)絡(luò)空閑的狀態(tài)下,網(wǎng)絡(luò)中只存在兩種角色節(jié)點(diǎn)—計(jì)算節(jié)點(diǎn)與存儲(chǔ)節(jié)點(diǎn),所有的計(jì)算節(jié)點(diǎn)都是完全平等的,除被選舉為主節(jié)點(diǎn)的計(jì)算節(jié)點(diǎn)處于主節(jié)點(diǎn)狀態(tài)外,此時(shí)所有計(jì)算節(jié)點(diǎn)均處于空閑狀態(tài)。網(wǎng)絡(luò)中的節(jié)點(diǎn)根據(jù)功能不同在邏輯上被分為兩層,外層由計(jì)算節(jié)點(diǎn)組成計(jì)算網(wǎng)絡(luò),負(fù)責(zé)執(zhí)行分布式計(jì)算;內(nèi)層由存儲(chǔ)網(wǎng)絡(luò)組成存儲(chǔ)網(wǎng)絡(luò),負(fù)責(zé)區(qū)塊鏈數(shù)據(jù)的驗(yàn)證存儲(chǔ)和維護(hù)。網(wǎng)絡(luò)底層仍然是一個(gè)P2P 網(wǎng)絡(luò),計(jì)算節(jié)點(diǎn)必須通過主節(jié)點(diǎn)與存儲(chǔ)節(jié)點(diǎn)通信。

圖2 網(wǎng)絡(luò)結(jié)構(gòu)拓?fù)鋱D

3.2 工作結(jié)構(gòu)

對于一次計(jì)算任務(wù),首先,任務(wù)分發(fā)節(jié)點(diǎn)在本地調(diào)用部署在區(qū)塊鏈系統(tǒng)上的智能合約,自動(dòng)將一個(gè)待處理作業(yè)劃分為多個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊對應(yīng)于一個(gè)計(jì)算子任務(wù),然后調(diào)用智能合約中的節(jié)點(diǎn)選擇策略算法,為每個(gè)子任務(wù)選定計(jì)算節(jié)點(diǎn)并發(fā)送子任務(wù)數(shù)據(jù),計(jì)算完成后,計(jì)算節(jié)點(diǎn)將計(jì)算結(jié)果發(fā)送到主節(jié)點(diǎn),由主節(jié)點(diǎn)根據(jù)區(qū)塊鏈系統(tǒng)設(shè)定的規(guī)則對計(jì)算結(jié)果進(jìn)行驗(yàn)證,并把驗(yàn)證通過的計(jì)算結(jié)果發(fā)送給任務(wù)分發(fā)節(jié)點(diǎn),最后將所有子任務(wù)計(jì)算結(jié)果打包進(jìn)新區(qū)塊,發(fā)送至所有存儲(chǔ)節(jié)點(diǎn),存儲(chǔ)節(jié)點(diǎn)對新區(qū)塊進(jìn)行驗(yàn)證,通過后寫入賬本,并向主節(jié)點(diǎn)反饋消息。工作結(jié)構(gòu)如圖3 所示。

圖3 工作結(jié)構(gòu)示意圖

計(jì)算節(jié)點(diǎn)不僅要做數(shù)據(jù)映射的工作,還要做部分歸約工作,相關(guān)功能函數(shù)都寫入智能合約進(jìn)行部署,最終結(jié)果的統(tǒng)計(jì)匯總工作交由任務(wù)分發(fā)節(jié)點(diǎn)來做,這樣,最終的計(jì)算結(jié)果將對整個(gè)區(qū)塊鏈網(wǎng)絡(luò)隱藏,僅有任務(wù)分發(fā)節(jié)點(diǎn)知道,有利于保護(hù)計(jì)算結(jié)果隱私性。區(qū)塊鏈中各區(qū)塊存儲(chǔ)的數(shù)據(jù)是各計(jì)算節(jié)點(diǎn)計(jì)算出的子任務(wù)數(shù)據(jù),可用于計(jì)算過程的追溯。

3.3 工作流程

對于一次分布式計(jì)算任務(wù),具體流程如圖4 所示。

圖4 工作流程圖

(1)計(jì)算任務(wù)開始,發(fā)布任務(wù)的計(jì)算節(jié)點(diǎn)進(jìn)入分發(fā)狀態(tài),將任務(wù)拆分為多個(gè)子任務(wù);

(2)用戶根據(jù)計(jì)算需求,調(diào)用智能合約中的節(jié)點(diǎn)選擇策略為每個(gè)子任務(wù)選擇分配計(jì)算節(jié)點(diǎn),并將子任務(wù)數(shù)據(jù)發(fā)送給選定的計(jì)算節(jié)點(diǎn),同時(shí),將子任務(wù)分配表發(fā)送給主節(jié)點(diǎn);

(3)接收子任務(wù)的節(jié)點(diǎn)進(jìn)入計(jì)算狀態(tài),調(diào)用智能合約中的計(jì)算功能函數(shù)執(zhí)行計(jì)算;

(4)計(jì)算節(jié)點(diǎn)完成計(jì)算任務(wù)后,將計(jì)算結(jié)果附上自己的簽名一并打包發(fā)送到主節(jié)點(diǎn);

(5)主節(jié)點(diǎn)根據(jù)背書規(guī)則,對執(zhí)行同一子任務(wù)的所有計(jì)算節(jié)點(diǎn),若收到超過半數(shù)節(jié)點(diǎn)的計(jì)算結(jié)果相同,則認(rèn)為該計(jì)算結(jié)果正確可信,放入?yún)^(qū)塊池,等待出塊;

(6)主節(jié)點(diǎn)將驗(yàn)證通過的子任務(wù)計(jì)算結(jié)果附上自己的簽名一并發(fā)送給任務(wù)分發(fā)節(jié)點(diǎn);

(7)任務(wù)分發(fā)節(jié)點(diǎn)收到各子任務(wù)計(jì)算結(jié)果后,調(diào)用匯總功能函數(shù)統(tǒng)計(jì)最終結(jié)果;

(8)主節(jié)點(diǎn)按照出塊規(guī)則,在收集到規(guī)定數(shù)量或大小的子任務(wù)計(jì)算結(jié)果后,創(chuàng)建新區(qū)塊,并將新區(qū)塊發(fā)送給所有存儲(chǔ)節(jié)點(diǎn);

(9)存儲(chǔ)節(jié)點(diǎn)收到新區(qū)塊后,進(jìn)入驗(yàn)證狀態(tài),把驗(yàn)證通過的區(qū)塊上鏈,更新賬本狀態(tài),并反饋給主節(jié)點(diǎn);

(10)主節(jié)點(diǎn)收到各存儲(chǔ)節(jié)點(diǎn)的反饋信息后,將反饋結(jié)果匯總統(tǒng)計(jì),并向任務(wù)分發(fā)節(jié)點(diǎn)反饋計(jì)算任務(wù)完成情況。

4 計(jì)算可信度調(diào)整策略

在一次計(jì)算任務(wù)中,任務(wù)分發(fā)節(jié)點(diǎn)完成作業(yè)分解后,會(huì)調(diào)用智能合約中的節(jié)點(diǎn)選擇策略為每個(gè)子任務(wù)選擇分配相應(yīng)數(shù)量的計(jì)算節(jié)點(diǎn)。節(jié)點(diǎn)選擇策略事先以函數(shù)編程形式寫入智能合約中,部署運(yùn)行在區(qū)塊鏈系統(tǒng)上。為了滿足用戶的計(jì)算需求多樣化,節(jié)點(diǎn)選擇策略應(yīng)預(yù)置多種模式提供給用戶自由選擇,由用戶根據(jù)具體任務(wù)計(jì)算需求,選擇執(zhí)行同一子任務(wù)的計(jì)算節(jié)點(diǎn)數(shù)量,我們將這種可調(diào)整的節(jié)點(diǎn)選擇策略稱為計(jì)算可信度調(diào)整策略。

參考Hyperledger Fabric 的背書策略,該系統(tǒng)用戶可以選擇同時(shí)執(zhí)行同一個(gè)子任務(wù)的計(jì)算節(jié)點(diǎn)數(shù)量。對于同一個(gè)子任務(wù),選擇的計(jì)算節(jié)點(diǎn)數(shù)量越多,其計(jì)算結(jié)果的可信度就越高,但系統(tǒng)的計(jì)算效率也就越低。因此,對于那些對計(jì)算結(jié)果準(zhǔn)確度和可信度要求較高的任務(wù),適于選擇較多的計(jì)算節(jié)點(diǎn)同時(shí)執(zhí)行同一子任務(wù),即調(diào)高計(jì)算可信度。相反,由于區(qū)塊鏈系統(tǒng)允許作惡或故障節(jié)點(diǎn)存在,所以同一個(gè)子任務(wù)選擇的計(jì)算節(jié)點(diǎn)數(shù)量越少,則其計(jì)算結(jié)果可信度就越低,但系統(tǒng)的計(jì)算效率會(huì)提高。因此,對于那些對計(jì)算結(jié)果的準(zhǔn)確度要求不高,而對計(jì)算效率要求較高的任務(wù),適于調(diào)低計(jì)算可信度。用戶可以根據(jù)具體的計(jì)算任務(wù)自由選擇調(diào)整此次計(jì)算任務(wù)的計(jì)算可信度,但為確保計(jì)算環(huán)境的基本可信度,規(guī)定一個(gè)子任務(wù)選擇的計(jì)算節(jié)點(diǎn)數(shù)量不能少于3 個(gè)。

5 結(jié)語

本文在區(qū)塊鏈技術(shù)的基礎(chǔ)上,充分發(fā)揮區(qū)塊鏈系統(tǒng)去中心化、可追溯、防篡改的特性,研究實(shí)現(xiàn)了一個(gè)基礎(chǔ)的Map-Reduce 分布式計(jì)算架構(gòu),提出了一個(gè)去中心化、自治和計(jì)算環(huán)境可信的分布式計(jì)算解決方案。既能有效保證計(jì)算結(jié)果的隱私性,也能實(shí)現(xiàn)計(jì)算過程可追溯,用戶還能根據(jù)任務(wù)需要自由調(diào)整計(jì)算可信度,并間接調(diào)整系統(tǒng)的計(jì)算效率。

猜你喜歡
發(fā)送給計(jì)算結(jié)果合約
【微信小課堂】:如何向好友發(fā)送語音
趣味選路
扇面等式
你說我說大家說
求離散型隨機(jī)變量的分布列的幾種思維方式
公告
我的錄夢機(jī)
談數(shù)據(jù)的變化對方差、標(biāo)準(zhǔn)差的影響
克拉玛依市| 额敏县| 成武县| 益阳市| 沛县| 宣武区| 电白县| 沁水县| 望城县| 洪雅县| 于田县| 遂平县| 连州市| 福泉市| 德令哈市| 调兵山市| 黑河市| 樟树市| 冷水江市| 南平市| 洮南市| 霍城县| 苍溪县| 兰西县| 盐源县| 西乌珠穆沁旗| 同江市| 兴安盟| 察雅县| 巫溪县| 博客| 龙门县| 沁水县| 东明县| 鄯善县| 锡林浩特市| 临湘市| 嘉黎县| 元谋县| 南宁市| 鹤壁市|