本說明書實施例屬于區(qū)塊鏈,尤其涉及一種構(gòu)建構(gòu)建基于樹結(jié)構(gòu)的世界狀態(tài)的方法及計算機設(shè)備。
背景技術(shù):
1、區(qū)塊鏈(blockchain)是分布式數(shù)據(jù)存儲、點對點傳輸、共識機制、加密算法等計算機技術(shù)的新型應(yīng)用模式。區(qū)塊鏈系統(tǒng)中按照時間順序?qū)?shù)據(jù)區(qū)塊以順序相連的方式組合成鏈式數(shù)據(jù)結(jié)構(gòu),并以密碼學(xué)方式保證的不可篡改和不可偽造的分布式賬本。由于區(qū)塊鏈具有去中心化、信息不可篡改、自治性等特性,區(qū)塊鏈也受到人們越來越多的重視和應(yīng)用。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于提供一種構(gòu)建構(gòu)建基于樹結(jié)構(gòu)的世界狀態(tài)的方法及計算機設(shè)備,包括:
2、一種構(gòu)建基于樹結(jié)構(gòu)的世界狀態(tài)的方法,應(yīng)用于區(qū)塊鏈節(jié)點的存儲模塊,所述存儲模塊在內(nèi)存中構(gòu)建有樹結(jié)構(gòu)的世界狀態(tài),所述方法包括:
3、接收狀態(tài)key-value;
4、根據(jù)所述樹結(jié)構(gòu)的構(gòu)建規(guī)則,生成/更新所述狀態(tài)key-value對應(yīng)的樹結(jié)構(gòu)的葉子節(jié)點;根據(jù)所述葉子節(jié)點中的內(nèi)容計算葉子節(jié)點的hash值,并根據(jù)所述葉子節(jié)點的hash值和所述狀態(tài)key生成或更新上層樹節(jié)點,直至樹的根節(jié)點;
5、將所述生成/更新的樹節(jié)點,根據(jù)劃分的邏輯頁結(jié)構(gòu)更新對應(yīng)內(nèi)存頁中的版本,所述內(nèi)存頁用于表示所述邏輯頁中對應(yīng)的全部樹節(jié)點的內(nèi)容,所述邏輯頁包含頁標識,所述頁標識包括所述邏輯頁中上層樹節(jié)點的字典序內(nèi)容和版本。
6、一種計算機設(shè)備,包括:
7、處理器;
8、以及存儲器,其中存儲有程序,其中在所述處理器執(zhí)行所述程序時,執(zhí)行上述方法中任一項的操作。
9、上述實施例中描述了一種樹結(jié)構(gòu)的世界狀態(tài)按照page切分的方案,將樹結(jié)構(gòu)劃分為logicalpage,logicalpage內(nèi)部管理memorypage/basepage/deltapage,將每次狀態(tài)樹修改優(yōu)化為按logicalpage為粒度的多次版本修改,減少整體的寫放大。對于當前版本可以直接根據(jù)通過內(nèi)存頁獲得,對于歷史版本讀時可以讀取basepage和關(guān)聯(lián)的若干deltapage來重放獲得。將整個memorypage緩存在內(nèi)存中,不影響合約執(zhí)行性能。
1.一種構(gòu)建基于樹結(jié)構(gòu)的世界狀態(tài)的方法,應(yīng)用于區(qū)塊鏈節(jié)點的存儲模塊,所述存儲模塊在內(nèi)存中構(gòu)建有樹結(jié)構(gòu)的世界狀態(tài),所述方法包括:
2.如權(quán)利要求1所述的方法,所述邏輯頁為按照樹結(jié)構(gòu)的節(jié)點關(guān)聯(lián)關(guān)系,將上、下相鄰的若干個樹節(jié)點聚合后的結(jié)果,一個邏輯頁中包含至少一個樹節(jié)點,不同的邏輯頁中包含的樹節(jié)點不同。
3.如權(quán)利要求2所述的方法,所述基礎(chǔ)頁包含頁標識,所述頁標識包括所述邏輯頁中上層樹節(jié)點的字典序內(nèi)容和版本。
4.如權(quán)利要求1所述的方法,還包括:基于連續(xù)版本的邏輯頁的變化生成基礎(chǔ)頁和增量頁。
5.如權(quán)利要求4所述的方法,所述基礎(chǔ)頁對應(yīng)一個內(nèi)存頁,包含對應(yīng)一個內(nèi)存頁中的全部樹節(jié)點。
6.如權(quán)利要求4所述的方法,所述增量頁對應(yīng)一個或多個內(nèi)存頁,包含相對于之前相鄰的基礎(chǔ)頁/增量頁/版本發(fā)生變化的一個或多個連續(xù)版本的內(nèi)存頁中的樹節(jié)點。
7.如權(quán)利要求1所述的方法,還包括:將所述狀態(tài)value存儲在持久化存儲介質(zhì)的數(shù)據(jù)文件中,所述葉子節(jié)點中包括所述狀態(tài)value在持久化存儲介質(zhì)中數(shù)據(jù)文件內(nèi)的位置索引。
8.如權(quán)利要求4所述的方法,所述基礎(chǔ)頁和增量頁具有與對應(yīng)內(nèi)存頁相同的頁id。
9.如權(quán)利要求4所述的方法,所述基礎(chǔ)頁具有與對應(yīng)內(nèi)存頁相同的版本,所述增量頁的版本是與其對應(yīng)的一個或多個內(nèi)存頁中最低或最高的版本。
10.如權(quán)利要求9所述的方法,所述基于連續(xù)版本的邏輯頁的變化生成基礎(chǔ)頁和增量頁,包括:
11.如權(quán)利要求4所述的方法,所述基礎(chǔ)頁和增量頁的頁標識中還包括頁類型,以區(qū)分基礎(chǔ)頁和增量頁。
12.一種計算機設(shè)備,包括: