[發(fā)明專利]一種面向聯(lián)盟鏈的狀態(tài)樹上的并行更新方法及更新系統(tǒng)有效
| 申請?zhí)枺?/td> | 202110498176.4 | 申請日: | 2021-05-08 |
| 公開(公告)號: | CN113434522B | 公開(公告)日: | 2023-06-09 |
| 發(fā)明(設(shè)計)人: | 朱承宇;陳之豪;戚曉冬;張召;金澈清;周傲英 | 申請(專利權(quán))人: | 華東師范大學(xué) |
| 主分類號: | G06F16/23 | 分類號: | G06F16/23;G06F16/27;G06F21/64 |
| 代理公司: | 上海德禾翰通律師事務(wù)所 31319 | 代理人: | 夏思秋 |
| 地址: | 200241 *** | 國省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 面向 聯(lián)盟 狀態(tài) 樹上 并行 更新 方法 系統(tǒng) | ||
本發(fā)明公開了一種面向聯(lián)盟鏈的狀態(tài)樹上的并行更新方法。本發(fā)明通過對每個更新的狀態(tài)定位到狀態(tài)樹上需要修改的沖突節(jié)點,合理給線程分配更新狀態(tài)和節(jié)點的任務(wù),讓線程并行地更新狀態(tài)樹節(jié)點。本發(fā)明還公開了一種實現(xiàn)上述并行更新方法的系統(tǒng),所述系統(tǒng)包括共識模塊、交易執(zhí)行模塊、存儲模塊。通過這種方法,可以對狀態(tài)樹的更新可以并行執(zhí)行,從而大大提高的系統(tǒng)吞吐。本發(fā)明實現(xiàn)了對狀態(tài)的無鎖并行更新,通過將讀操作和寫操作解耦,并且巧妙結(jié)合使用了區(qū)塊鏈批量更新的特點,最大化提升并發(fā)性能。
技術(shù)領(lǐng)域
本發(fā)明屬于區(qū)塊鏈技術(shù)領(lǐng)域,涉及一種狀態(tài)樹上的更新方法,具體涉及一種面向聯(lián)盟鏈的狀態(tài)樹上的并行更新方法及更新系統(tǒng)。
背景技術(shù)
區(qū)塊鏈?zhǔn)且环N面向互不可信環(huán)境的多方共同維護的分布式賬本,具有去中心化、不可篡改、歷史數(shù)據(jù)可追溯等特點。然而傳統(tǒng)的區(qū)塊鏈為了保證每個副本擁有一致的最終狀態(tài),都是對一批交易順序執(zhí)行。但這種順序執(zhí)行的模式不能很好的利用現(xiàn)代多核處理器的性能,閑置了大量的計算機資源并且?guī)砹藰O差的性能。
狀態(tài)的存儲主要有一種可驗證的數(shù)據(jù)結(jié)構(gòu)存儲,統(tǒng)稱為狀態(tài)樹,如MPT、SMT等。該結(jié)構(gòu)除了可以計算摘要外,還可以作為賬戶狀態(tài)的索引,并提供完整性證明。此外,狀態(tài)樹通過在每個塊上構(gòu)建全局賬戶狀態(tài)的快照來存儲賬戶狀態(tài)數(shù)據(jù)的所有版本。但是,由于在狀態(tài)樹上每一個節(jié)點的更新,都會導(dǎo)致狀態(tài)樹在提交時根節(jié)點到這個更新節(jié)點的路徑上的所有節(jié)點的哈希重新計算,并且需要將所有更新的節(jié)點持久化。目前很多對狀態(tài)樹的并行操作都是將一整棵樹鎖住來更新狀態(tài),但是這種方法和串行更新效果基本一致;另一種是設(shè)計是在節(jié)點粒度上使用鎖的機制,但是由于節(jié)點和其孩子的上下關(guān)系,因此越靠近根節(jié)點的節(jié)點上的鎖的競爭越激烈,這也會影響整體并發(fā)性能。
因此,為了提升聯(lián)盟鏈的整體性能,有必要提出一種面向聯(lián)盟鏈的狀態(tài)樹上的并行更新策略。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)存在的不足,本發(fā)明的目的是提供一種面向聯(lián)盟鏈的狀態(tài)樹上的并行更新方法,實現(xiàn)了對狀態(tài)的無鎖并行更新,通過將讀操作和寫操作解耦,并且巧妙結(jié)合使用了區(qū)塊鏈批量更新的特點,最大化提升并發(fā)性能。
本發(fā)明以提高聯(lián)盟鏈吞吐率為目標(biāo),針對現(xiàn)有技術(shù)的缺失,提出一種面向聯(lián)盟鏈的狀態(tài)樹上的并行更新方法。在狀態(tài)樹上的并行更新中,本發(fā)明通過將讀操作和寫操作解耦,解析作業(yè)之間的沖突關(guān)系,并行下沉從根節(jié)點開始找到作業(yè)間公共更新的節(jié)點,將無沖突的作業(yè)分到不同的工作線程上執(zhí)行,無鎖地將一個區(qū)塊中的所有更新的狀態(tài)并行的更新到狀態(tài)樹上,從而提高區(qū)塊處理速度,提高系統(tǒng)吞吐量。
本發(fā)明提出了一種面向聯(lián)盟鏈的狀態(tài)樹上的并行更新方法,所述方法具體包括以下步驟:
步驟1:將需要更新的狀態(tài)集合S以取模、哈希映射、有序分段劃分等分配方式分配給不同的工作線程;
步驟2:將所有的更新狀態(tài)在狀態(tài)樹上做并行下沉搜索,直到找到?jīng)_突節(jié)點,并將對應(yīng)狀態(tài)附加到?jīng)_突節(jié)點上;
步驟3:從映射關(guān)系中取出沖突節(jié)點-更新的狀態(tài)列表,以取模、哈希映射、有序分段劃分等分配方式將沖突節(jié)點以及其附加的狀態(tài)集合重新分配給不同的工作線程,盡量使一個沖突節(jié)點由一個工作線程修改,一個工作線程可以修改一個或多個沖突節(jié)點;
步驟4:根據(jù)工作線程分配的狀態(tài)和沖突節(jié)點信息,并行對狀態(tài)樹的節(jié)點進行更新。
其中,
所述步驟1進一步包括以下步驟:
步驟1-1:批量收集所有需要更新的狀態(tài)集合S、工作線程集合,并初始化計數(shù)器;
步驟1-2:將每個更新的狀態(tài)從集合S中取出,利用取模、哈希映射、有序分段劃分等方式得到工作線程的索引,將取出的狀態(tài)分配給對應(yīng)的工作線程。
所述步驟2進一步包括以下步驟:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華東師范大學(xué),未經(jīng)華東師范大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110498176.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 詞條同步方法及詞條同步裝置
- 一種全局性能最優(yōu)的多中繼選擇方法
- 登錄狀態(tài)的共享方法、裝置、電子設(shè)備及介質(zhì)
- 一種聯(lián)盟積分結(jié)算方法及裝置
- 一種通過區(qū)塊鏈公鏈管理聯(lián)盟鏈成員的方法
- 聯(lián)盟鏈節(jié)點管理系統(tǒng)以及方法
- 支持插件化接入不同區(qū)塊鏈聯(lián)盟鏈網(wǎng)絡(luò)的系統(tǒng)和方法
- 基于聯(lián)盟交換的5G訪問接入點選擇方法
- 分布式無線網(wǎng)絡(luò)頻譜共享系統(tǒng)及共享方法
- 聯(lián)盟鏈系統(tǒng)及聯(lián)盟鏈系統(tǒng)部署方法





