本發(fā)明涉及人工智能,尤其涉及一種基于深度強(qiáng)化學(xué)習(xí)的區(qū)塊鏈負(fù)載均衡方法及系統(tǒng)。
背景技術(shù):
1、工業(yè)物聯(lián)網(wǎng)(iiot)是推進(jìn)傳統(tǒng)生產(chǎn)企業(yè)智能化、信息化轉(zhuǎn)型的關(guān)鍵技術(shù)。隨著現(xiàn)代工業(yè)生產(chǎn)對自身數(shù)據(jù)安全性和系統(tǒng)可用性的需求不斷增加,區(qū)塊鏈技術(shù)因其優(yōu)異的高可用、防篡改特性吸引了眾多工業(yè)物聯(lián)網(wǎng)領(lǐng)域研究人員的廣泛關(guān)注?!胺制?sharding)”是一種從云計算和云數(shù)據(jù)庫領(lǐng)域移植而來的創(chuàng)新理念,旨在通過采用并行計算解決傳統(tǒng)區(qū)塊鏈系統(tǒng)中嚴(yán)重的可擴(kuò)展性問題。在分片架構(gòu)下,原有的區(qū)塊鏈網(wǎng)絡(luò)分為若干個稱為分片的“委員會”,其中單個委員會內(nèi)的驗(yàn)證者僅負(fù)責(zé)區(qū)塊鏈交易的某一子集的共識和區(qū)塊生成,所有賬本僅由分片內(nèi)的驗(yàn)證者在本地維護(hù)。通過這種方式,所有分片可以并行執(zhí)行任務(wù),從而提高區(qū)塊鏈系統(tǒng)的可擴(kuò)展性。由于分片技術(shù)輔助下的區(qū)塊鏈網(wǎng)絡(luò)其相較于傳統(tǒng)區(qū)塊鏈在性能上的巨大提升,它在醫(yī)療、物聯(lián)網(wǎng)和車聯(lián)網(wǎng)等領(lǐng)域的應(yīng)用也越來越深入。
2、雖然行業(yè)內(nèi)已經(jīng)演進(jìn)出多種性能優(yōu)化的區(qū)塊鏈分片方案,擔(dān)正是由于分片本身具有的分區(qū)和并行計算的理念,也帶來兩個突出的問題限制了其在工業(yè)物聯(lián)網(wǎng)生產(chǎn)環(huán)境中的進(jìn)一步規(guī)?;瘧?yīng)用。第一個瓶頸是如何實(shí)現(xiàn)高效的跨分片交易,這是由于同一個交易若涉及多個分片必然需要犧牲性能從而保障數(shù)據(jù)一致性。第二個瓶頸是如何在分片之間平衡負(fù)載,以提升系統(tǒng)吞吐量,同時充分地利用企業(yè)珍貴的計算資源。但是目前仍沒有較好的解決方案可以在區(qū)塊鏈運(yùn)行時兼顧兩個問題從而得到性能的提升,已有的負(fù)載均衡策略忽視了賬戶遷移后帶來的跨分片交易數(shù)量變化給系統(tǒng)帶來的性能影響。
技術(shù)實(shí)現(xiàn)思路
1、基于背景技術(shù)存在的技術(shù)問題,本發(fā)明提出了一種基于深度強(qiáng)化學(xué)習(xí)的區(qū)塊鏈負(fù)載均衡方法及系統(tǒng),通過分片中間件監(jiān)控和學(xué)習(xí)生產(chǎn)環(huán)境中區(qū)塊鏈分片和賬戶的工作負(fù)載和跨分片交易比例,決定賬戶的最佳歸屬分片,從而實(shí)現(xiàn)高效的跨分片交易以及分片之間的負(fù)載平衡。
2、本發(fā)明提出的一種基于深度強(qiáng)化學(xué)習(xí)的區(qū)塊鏈負(fù)載均衡方法,通過綜合學(xué)習(xí)區(qū)塊鏈網(wǎng)絡(luò)中賬戶與分片的交易軌跡和跨分片交易比例,以決定賬戶在下一個交易周期的賬戶最佳分片位置;
3、所述區(qū)塊鏈分片負(fù)載均衡中間件的工作過程如下:
4、聯(lián)盟區(qū)塊鏈交易監(jiān)控組件持續(xù)監(jiān)控區(qū)塊鏈網(wǎng)絡(luò)活動并持續(xù)保存到內(nèi)存數(shù)據(jù)庫中;
5、分片負(fù)載均衡器從數(shù)據(jù)庫中獲取兩個連續(xù)交易周期中網(wǎng)絡(luò)的賬戶和分片工作負(fù)載數(shù)據(jù),將交易周期中賬戶和分片工作負(fù)載數(shù)據(jù)轉(zhuǎn)化為強(qiáng)化學(xué)習(xí)的狀態(tài)和動作;
6、負(fù)載均衡器根據(jù)狀態(tài)和動作,通過深度強(qiáng)化學(xué)習(xí)模型計算出長期獎勵最大的動作作為賬戶歸屬新分片的最終預(yù)測結(jié)果;
7、對于每一個需要移動到新分片的賬戶,根據(jù)最終預(yù)測結(jié)果為新分片的賬戶發(fā)起一個遷移交易,所述遷移交易將被路由到賬戶目前所屬的分片,等待驗(yàn)證者達(dá)成共識;
8、負(fù)責(zé)打包遷移交易的驗(yàn)證者節(jié)點(diǎn)將發(fā)起一個新的跨分片交易到所述賬戶的新分片,所述新的跨分片交易包含等待遷移的賬戶信息以及與所述賬戶相關(guān)的待處理交易列表,隨后賬戶信息將從原始分片中刪除,新分片的驗(yàn)證者將在分片內(nèi)廣播新賬戶信息,以便所有驗(yàn)證者處理新賬戶的交易。
9、進(jìn)一步地,在通過深度強(qiáng)化學(xué)習(xí)模型計算出長期獎勵最大的動作作為賬戶歸屬新分片的最終預(yù)測結(jié)果中,深度強(qiáng)化學(xué)習(xí)模型的基本參數(shù)具體為:
10、動作空間:區(qū)塊鏈網(wǎng)絡(luò)設(shè)置分片s={s1,s2,..si,,...},每個分片有a={a1,a2,..aj,...}的賬戶集合,所述si為第i個分片,aj為第j個賬戶;
11、狀態(tài):1)與賬戶相關(guān)的狀態(tài)信息,包括賬戶的id、在某周期中已提交的交易數(shù)量、已取得共識的交易數(shù)量、已提交的交易數(shù)量中跨分片交易的占比、跨分片交易中出現(xiàn)頻率最高的目的分片id和賬號所屬分片id;2)與分片相關(guān)的狀態(tài)信息,包括分片id、分片某周期所處理的交易總數(shù)、所處理的交易總數(shù)中跨分片交易的占比。
12、進(jìn)一步地,深度強(qiáng)化學(xué)習(xí)模型的基本參數(shù)還包括獎勵函數(shù),所述獎勵函數(shù)包括跨分片交易比例的cst獎勵r1以及工作負(fù)載數(shù)據(jù)的負(fù)載均勻性獎勵r2,其中,
13、cst獎勵r1的計算具如下:
14、在賬戶a重新分配后,工作負(fù)載數(shù)據(jù)將根據(jù)公式(1)更新;基于更新后的工作負(fù)載數(shù)據(jù),基于公式(2)計算新的跨分片交易比例;應(yīng)用懲罰方法,基于公式(3)計算得到cst獎勵r1;
15、m′(si)=m(si)+m(a);???(1)
16、p′(si)=(p(si)×m(si)+p(a,si)×m(a))/m′(si);???(2)
17、r1=-(p′(si)-p(si));???(3)
18、其中,m′(si)表示分片si在某一周期內(nèi)更新后的工作負(fù)載數(shù)據(jù),m(si)表示分片si在某一周期內(nèi)的工作負(fù)載數(shù)據(jù),m(a)為賬戶a在某一周期內(nèi)的工作負(fù)載數(shù)據(jù),p′(si)為新的跨分片交易比例,p(si)為分片si在某一周期內(nèi)處理的跨分片交易總數(shù)占比,m(si)為分片si在某一周期內(nèi)的工作負(fù)載數(shù)據(jù),即得到處理的交易總數(shù),p(a,si)為分片si中賬戶a在某一周期內(nèi)發(fā)送的跨分片交易總數(shù)占比。
19、進(jìn)一步地,負(fù)載均勻性獎勵r2的計算具體如下:
20、基于公式(4)計算當(dāng)前周期的工作負(fù)載標(biāo)準(zhǔn)差,然后在公式(5)中計算新周期的標(biāo)準(zhǔn)差,并通過懲罰方法在公式(6)中獲得負(fù)載均勻性獎勵r2;
21、
22、r2=-(d'-d);???(6)
23、其中,n為分片的總數(shù)量,m(si)為分片si在當(dāng)前周期內(nèi)的工作負(fù)載數(shù)據(jù)(即分片在周期內(nèi)成功打包的交易總數(shù)),m'(si)為分片si在新周期內(nèi)的工作負(fù)載數(shù)據(jù),為當(dāng)前周期內(nèi)工作負(fù)載數(shù)據(jù)的均值,為新周期內(nèi)的工作負(fù)載數(shù)據(jù)的均值,d為區(qū)塊鏈所有分片在當(dāng)前周期內(nèi)交易的標(biāo)準(zhǔn)差,d'為區(qū)塊鏈所有分片在新周期內(nèi)交易的標(biāo)準(zhǔn)差。
24、進(jìn)一步地,基于cst獎勵r1和負(fù)載均勻性獎勵r2構(gòu)建深度強(qiáng)化學(xué)習(xí)模型的獎勵函數(shù)r:
25、r=w1×r1+w2×r2
26、其中,w1和w2分別是平衡跨分片交易比例和工作負(fù)載均衡性的權(quán)重系數(shù)。
27、進(jìn)一步地,深度強(qiáng)化學(xué)習(xí)模型的q函數(shù)具體為;
28、
29、其中,q(st,at)代表在狀態(tài)st下采取動作at的q值;qv(st)代表狀態(tài)st下的值函數(shù);qa(st,at)代表在狀態(tài)st下采取動作at與采取其它動作的優(yōu)勢函數(shù);代表在狀態(tài)st下采取所有可能動作的優(yōu)勢函數(shù)的平均值;a表示深度強(qiáng)化模型的動作空間的集合,|a|表示動作空間的大小(即所有可能的動作數(shù)),a'∈a代表在狀態(tài)st下每一個可能采取的動作。
30、進(jìn)一步地,所述深度強(qiáng)化學(xué)習(xí)模型的訓(xùn)練過程如下:
31、收集并清洗了真實(shí)工業(yè)區(qū)塊鏈網(wǎng)絡(luò)中數(shù)據(jù)上傳設(shè)備的區(qū)塊鏈交易記錄進(jìn)行清洗和標(biāo)準(zhǔn)化處理,并按照分片進(jìn)行分組,以確定跨分片交易比例標(biāo)準(zhǔn);
32、根據(jù)賬戶在真實(shí)區(qū)塊鏈環(huán)境中的交易歷史所涉及的所有分片,定義交易的目標(biāo)分片集合;
33、將設(shè)定賬戶的分片和交易發(fā)起時間作為原始數(shù)據(jù)輸入長短期記憶模型,以預(yù)測設(shè)定賬戶在下一個交易周期的行為,對得到的預(yù)測結(jié)果進(jìn)行校驗(yàn)以保證與深度強(qiáng)化學(xué)習(xí)模型中賬戶和分片的配置相符,若通過則原始數(shù)據(jù)和預(yù)測結(jié)果合并為拓展數(shù)據(jù)集提供給智能體;
34、智能體基于拓展的環(huán)境數(shù)據(jù),不斷對環(huán)境進(jìn)行探索,通過結(jié)合策略帶來的環(huán)境反饋與強(qiáng)化q函數(shù)不斷優(yōu)化不同狀態(tài)下最佳q值的動作策略,直至深度強(qiáng)化學(xué)習(xí)模型訓(xùn)練完成;
35、將通過驗(yàn)證測試的深度強(qiáng)化學(xué)習(xí)模型訓(xùn)練應(yīng)用于實(shí)際的區(qū)塊鏈網(wǎng)絡(luò)中進(jìn)行決策。
36、一種基于深度強(qiáng)化學(xué)習(xí)的區(qū)塊鏈負(fù)載均衡系統(tǒng),通過綜合學(xué)習(xí)區(qū)塊鏈網(wǎng)絡(luò)中賬戶與分片的交易軌跡和跨分片交易比例,以決定賬戶在下一個交易周期的賬戶最佳分片位置;
37、所述區(qū)塊鏈分片負(fù)載均衡中間件的工作過程如下:
38、聯(lián)盟區(qū)塊鏈交易監(jiān)控組件持續(xù)監(jiān)控區(qū)塊鏈網(wǎng)絡(luò)活動并持續(xù)保存到內(nèi)存數(shù)據(jù)庫中;
39、分片負(fù)載均衡器從數(shù)據(jù)庫中獲取兩個連續(xù)交易周期中網(wǎng)絡(luò)的賬戶和分片工作負(fù)載數(shù)據(jù),將交易周期中賬戶和分片工作負(fù)載數(shù)據(jù)轉(zhuǎn)化為強(qiáng)化學(xué)習(xí)的狀態(tài)和動作;
40、負(fù)載均衡器根據(jù)狀態(tài)和動作,通過深度強(qiáng)化學(xué)習(xí)模型計算出長期獎勵最大的動作作為賬戶歸屬新分片的最終預(yù)測結(jié)果;
41、對于每一個需要移動到新分片的賬戶,根據(jù)最終預(yù)測結(jié)果為新分片的賬戶發(fā)起一個遷移交易,所述遷移交易將被路由到賬戶目前所屬的分片,等待驗(yàn)證者達(dá)成共識;
42、負(fù)責(zé)打包遷移交易的驗(yàn)證者節(jié)點(diǎn)將發(fā)起一個新的跨分片交易到所述賬戶的新分片,所述新的跨分片交易包含等待遷移的賬戶信息以及與所述賬戶相關(guān)的待處理交易列表,隨后賬戶信息將從原始分片中刪除,新分片的驗(yàn)證者將在分片內(nèi)廣播新賬戶信息,以便所有驗(yàn)證者處理新賬戶的交易。
43、一種計算機(jī)設(shè)備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運(yùn)行的計算機(jī)程序,所述處理器執(zhí)行所述計算機(jī)程序時實(shí)現(xiàn)如上所述的區(qū)塊鏈負(fù)載均衡方法。
44、一種計算機(jī)可讀儲存介質(zhì),所述計算機(jī)可讀儲存介質(zhì)上存儲有若干分類程序,所述若干分類程序用于被處理器調(diào)用并執(zhí)行如上所述的區(qū)塊鏈負(fù)載均衡方法。
45、本發(fā)明提供的一種基于深度強(qiáng)化學(xué)習(xí)的區(qū)塊鏈負(fù)載均衡方法及系統(tǒng)的優(yōu)點(diǎn)在于:將工業(yè)物聯(lián)網(wǎng)區(qū)塊鏈分片的工作負(fù)載平衡問題建模為一個馬爾可夫決策過程(markovdecisionprocess,mdp)并據(jù)此設(shè)計了基于深度雙q網(wǎng)絡(luò)(d3qn)深度強(qiáng)化學(xué)習(xí)負(fù)載平衡算法,不僅考慮了賬戶和分片的工作量,更綜合了賬號的跨分片交易特征。本文還提供了lstm來輔助模型訓(xùn)練過程,從而提高負(fù)載平衡中間件的準(zhǔn)確性并提高實(shí)際應(yīng)用時的部署效率;將負(fù)載均衡算法封裝為一個工業(yè)區(qū)塊鏈網(wǎng)絡(luò)的中間件,通過對網(wǎng)絡(luò)每次交易周期中分片和賬戶活動歷史的追蹤從而做出對系統(tǒng)性能最優(yōu)化的賬戶位置決定,以適應(yīng)工業(yè)生產(chǎn)場景下用戶對高數(shù)據(jù)吞吐量和低交易確認(rèn)延遲的要求。