CN113254450B - 一种基于区块链的增量mpt树账户状态存储方法及系统 - Google Patents

一种基于区块链的增量mpt树账户状态存储方法及系统 Download PDF

Info

Publication number
CN113254450B
CN113254450B CN202110592799.8A CN202110592799A CN113254450B CN 113254450 B CN113254450 B CN 113254450B CN 202110592799 A CN202110592799 A CN 202110592799A CN 113254450 B CN113254450 B CN 113254450B
Authority
CN
China
Prior art keywords
state
account
block
incremental
mpt tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110592799.8A
Other languages
English (en)
Other versions
CN113254450A (zh
Inventor
赵永光
肖宗水
仪莉
闵新平
赵静
于秋波
朱晓洪
张玉波
于飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dareway Software Co ltd
Original Assignee
Dareway Software Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dareway Software Co ltd filed Critical Dareway Software Co ltd
Priority to CN202110592799.8A priority Critical patent/CN113254450B/zh
Publication of CN113254450A publication Critical patent/CN113254450A/zh
Application granted granted Critical
Publication of CN113254450B publication Critical patent/CN113254450B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明属于区块链技术领域,提供了一种基于区块链的增量MPT树账户状态存储方法及系统。其中,该方法包括获取区块中交易中涉及的账户状态对象并加载到临时状态缓存区pre‑state;监控交易执行过程中pre‑state中账户状态对象的变化信息,并将新生成的账户状态对象及有变化的状态对象加载到临时状态缓存区dirty‑state;当区块中所有交易的状态转换过程执行完后,基于dirty‑state中的状态对象来构建增量MPT树,并计算增量MPT树的根哈希作为相应区块的根哈希值;将计算出的根哈希值与其他区块链节点计算出的根哈希值比较,校验状态转换的合法性;当校验通过后,将增量MPT树存入增量状态库,并将临时状态缓存区dirty‑state中的状态对象发生状态变化的交易ID更新到状态转换K‑V表,并清空临时状态缓存区。

Description

一种基于区块链的增量MPT树账户状态存储方法及系统
技术领域
本发明属于区块链技术领域,尤其涉及一种基于区块链的增量MPT树账户状态存储方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
比特币中使用UTXO(Unspent Transaction Output,交易输入输出)模型来管理交易的状态,但UTXO模型只适合于数值型简单状态的管理,并不适用于账户模型下的复杂状态管理。以太坊中使用MPT树组织和管理账户状态,MPT树既具有merkle树的数据校验能力,又具有前缀树的特性能够一定程度上节省存储空间。其中,Merkle Patricia Tree(简称MPT树,实际上是一种trie前缀树)是以太坊中的一种加密认证的数据结构,可以用来存储所有的(key,value)对。
但发明人发现,在以太坊的账户状态模型下,所有账户的状态均存储在一个MPT树上(世界状态树),交易的校验需要对MPT树自底向上计算根节点hash值,当单个区块中包含大量交易并涉及到大量账户状态的变化时,需要对上述所有账户状态所在MPT树分支的大量节点载入或重构,并依次向上计算hash值,这样带来大量的内存开销以及性能损耗。
发明内容
为了解决上述背景技术中存在的技术问题,本发明提供一种基于区块链的增量MPT树账户状态存储方法及系统,其采用的增量MPT树只涉及到区块中有状态变化的对象,MPT树的构建和检索过程更加简洁,避免了大量分支节点的载入及重构造成的内存占用高、性能损耗问题。
为了实现上述目的,本发明采用如下技术方案:
本发明的第一个方面提供一种基于区块链的增量MPT树账户状态存储方法。
一种基于区块链的增量MPT树账户状态存储方法,其包括:
获取区块中交易中涉及的账户状态对象并加载到临时状态缓存区pre-state;
监控交易执行过程中pre-state中账户状态对象的变化信息,并将新生成的账户状态对象及有变化的状态对象加载到临时状态缓存区dirty-state;
当区块中所有交易的状态转换过程执行完后,基于dirty-state中的状态对象来构建增量MPT树,并计算增量MPT树的根哈希作为相应区块的根哈希值;
将计算出的根哈希值与其他区块链节点计算出的根哈希值比较,校验状态转换的合法性;
当校验通过后,将增量MPT树存入增量状态库,并将临时状态缓存区dirty-state中的状态对象发生状态变化的交易ID更新到状态转换K-V表,并清空临时状态缓存区。
本发明的第二个方面提供一种基于区块链的增量MPT树账户状态存储系统。
一种基于区块链的增量MPT树账户状态存储系统,其包括:
账户状态对象加载模块,其用于获取区块中交易中涉及的账户状态对象并加载到临时状态缓存区pre-state;
状态对象监控模块,其用于监控交易执行过程中pre-state中账户状态对象的变化信息,并将新生成的账户状态对象及有变化的状态对象加载到临时状态缓存区dirty-state;
根哈希计算模块,其用于当区块中所有交易的状态转换过程执行完后,基于dirty-state中的状态对象来构建增量MPT树,并计算增量MPT树的根哈希作为相应区块的根哈希值;
根哈希值比较模块,其用于将计算出的根哈希值与其他区块链节点计算出的根哈希值比较,校验状态转换的合法性;
状态更新模块,其用于当校验通过后,将增量MPT树存入增量状态库,并将临时状态缓存区dirty-state中的状态对象发生状态变化的交易ID更新到状态转换K-V表,并清空临时状态缓存区。
本发明的第三个方面提供一种计算机可读存储介质。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的基于区块链的增量MPT树账户状态存储方法中的步骤。
本发明的第四个方面提供一种计算机设备。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的基于区块链的增量MPT树账户状态存储方法中的步骤。
与现有技术相比,本发明的有益效果是:
(1)本发明的增量MPT树中只包含对应区块内有状态变化的状态对象,相较于世界状态树,体量小,构建和状态根计算过程不会涉及大量分支节点的载入,减少了内存占用,区块处理过程更加高效;
(2)本发明的区块头中的状态根与增量MPT树相互锚定,共同保证状态数据不可篡改,各个区块中的状态变化过程可信追溯。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明实施例的基于区块链的增量MPT树账户状态存储方法原理图;
图2是本发明实施例的基于区块链的增量MPT树账户状态存储方法的流程示意图;
图3是本发明实施例的以MPT树组织的世界状态树简化示意图;
图4是本发明实施例的四个账户进行状态校验并发生状态变化的增量MPT树简图;
图5是本发明实施例的最终简化的增量MPT树简图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
本发明为解决区块链账户模型下采用MPT树进行账户状态管理存在的交易校验过程内存占用高、性能低的问题,提出了一种基于区块链的增量MPT树账户状态管理机制。所述的一种基于区块链的增量MPT树账户状态管理机制将每个区块中发生状态变化的账户的状态对象以增量MPT树组织方式存储在增量状态库中,增量MPT树的状态根根哈希值存在区块头中。区块头中根哈希值与增量状态库中的增量MPT相互锚定,共同提供账户状态的追溯能力,且保证状态数据不可篡改。通过状态转换K-V表记录所有账户的状态对象发生变化的最新交易ID,提供账户最新状态的检索能力。相较于以太坊的世界状态树的账户状态管理机制,增量MPT树只涉及到区块中有状态变化的对象,MPT树的构建和检索过程更加简洁,避免了大量分支节点的载入及重构造成的内存占用高、性能损耗问题。
实施例一
如图1和图2所示,本实施例提供了一种基于区块链的增量MPT树账户状态存储方法,其具体包括如下步骤:
步骤S101:获取区块中交易中涉及的账户状态对象并加载到临时状态缓存区pre-state。
在图1中,本实施例的步骤S101具体还包括如下步骤:
步骤S1011:从状态转换K-V表获取账户状态发生变化的最新交易ID;
具体地,状态转换K-V表中以Key-Value方式存储所有账户的状态对象发生变化的最新交易的ID,其中key为账户的AccountID,value为账户状态对象发生变化的最新交易ID。
步骤S1012:根据最新交易ID获取交易所在的区块号;
步骤S1013:根据区块号获取到区块头中的区块状态根根哈希值;
步骤S1014:从增量状态库中检索出根哈希值所在的增量MPT树中的账户状态对象并加入pre-state。
其中,增量状态库中存储每个区块的增量MPT树。增量MPT树的根作为当前区块的状态根存储在区块头中。
所述的状态对象由账户的状态属性值构建。
其中,基于状态装换K-V表及增量状态库检索账户的最新状态对象的方法为:基于账户的AccountID从状态装换K-V表中获取到账户发生状态变化的最新交易ID,基于最新交易ID获取该笔交易对应的区块号,从该区块的区块头中获取到区块的状态根stateRoot,再从增量状态库中基于stateRoot加载该区块对应的增量MPT树,从而从增量MPT树中检索到对应的账户的最新状态对象。
步骤S102:监控交易执行过程中pre-state中账户状态对象的变化信息,并将新生成的账户状态对象及有变化的状态对象加载到临时状态缓存区dirty-state。
提供临时状态缓存区,存储交易校验和执行时账户的原始状态及变更后的状态,包括pre-state缓存区及dirty-state缓存区。所述的pre-state缓存区临时存储从状态库中读取的持久化存储的状态对象,即账户状态发生变更前的状态对象。所述的dirty-state缓存区临时存储当前处理的最新区块中,账户状态发生变更后的状态对象,并记录发生变化的交易ID。
交易校验和执行时,基于状态装换K-V表及增量状态库检索出账户的最新状态对象放在临时缓存区的pre-state缓存区;交易执行时发生状态变更的状态对象放在临时缓存区的dirty-state缓存区。
下面对一种基于区块链的增量MPT树账户状态管理机制减少内存开销并提升性能的原理进行说明。以区块中有a561、b474、c275、c276四个账户进行状态校验并发生状态变化为例,图3为一个以MPT树组织的世界状态树简化示意图,四个账户分别在世界状态树的a、b、c分支,并以灰色标出了四个状态对象所在的分支路径。
由于基于MPT树加载节点时是由根节点基于前缀查询逐步读取到所需的叶子节点,由图3左可知,要从持久化存储中读取a561、b474、c275、c276四个账户四个账户的状态,需要将其所在分支路径上13个节点的值都加载到内存中。
本实施例的基于区块链的增量MPT树账户状态管理机制中,账户的最新状态分散在各个区块的增量MPT树中,以图4为例,a561、b474、c275、c276四个账户的最新状态分散在区块239、区块368、区块571中,只需加载图4所示分支路径中的6个节点,相较于以太坊世界状态树的管理方式,节省了大量内存空间以及对数据库的IO操作过程,同时省去了MPT树节点获取时大量的rlp编解码以及hash计算过程。
步骤S103:当区块中所有交易的状态转换过程执行完后,基于dirty-state中的状态对象来构建增量MPT树,并计算增量MPT树的根哈希作为相应区块的根哈希值。
计算区块的状态根时,由于MPT树根节点的hash值是自底向上逐级计算所得,且父节点的hash值由父节点的value加子节点的hash进行rlp编码后再计算hash所得,故子节点的变化一定会导致父节点hash值的变化,父节点hash重新计算需要加载父节点的所有子节点。参照图3,当账户a561发生变化时,其父节点a56需要重新计算hash。a56节点发生变化,则其父节点a5需要重新计算hash。计算a5的hash依赖于其子节点a51、a53、a56,故需要加载a51、a53获得其hash值。以此类推最终计算出根hash。a561、b474、c275、c276四个账户的状态变化需要加载四个账户所在分支上的大量节点,并进行频繁的rlp编码及哈希计算,造成极大地内存开销及性能损耗。而采用本实施例的一种基于区块链的增量MPT树账户管理机制构建的增量MPT树,如图5,只涉及到5个节点,根hash的计算过程大大减少,且不会带来过大的内存开销及性能损耗。
步骤S104:将计算出的根哈希值与其他区块链节点计算出的根哈希值比较,校验状态转换的合法性。
具体地,交易完成校验和执行后,区块上链时,将临时缓存区的dirty-state缓存区中的状态对象以MPT树的组织方式构建增量MPT树,并计算增量MPT树的根hash用于与其他节点计算出的状态根做校验。
步骤S105:当校验通过后,将增量MPT树存入增量状态库,并将临时状态缓存区dirty-state中的状态对象发生状态变化的交易ID更新到状态转换K-V表,并清空临时状态缓存区。
本实施例的增量MPT树中只包含对应区块内有状态变化的状态对象,相较于世界状态树,体量小,构建和状态根计算过程不会涉及大量分支节点的载入,减少了内存占用,区块处理过程更加高效。
实施例二
本实施例提供了一种基于区块链的增量MPT树账户状态存储系统,其具体包括:
账户状态对象加载模块,其用于获取区块中交易中涉及的账户状态对象并加载到临时状态缓存区pre-state;
状态对象监控模块,其用于监控交易执行过程中pre-state中账户状态对象的变化信息,并将新生成的账户状态对象及有变化的状态对象加载到临时状态缓存区dirty-state;
根哈希计算模块,其用于当区块中所有交易的状态转换过程执行完后,基于dirty-state中的状态对象来构建增量MPT树,并计算增量MPT树的根哈希作为相应区块的根哈希值;
根哈希值比较模块,其用于将计算出的根哈希值与其他区块链节点计算出的根哈希值比较,校验状态转换的合法性;
状态更新模块,其用于当校验通过后,将增量MPT树存入增量状态库,并将临时状态缓存区dirty-state中的状态对象发生状态变化的交易ID更新到状态转换K-V表,并清空临时状态缓存区。
此处需要说明的是,本实施例中的各个模块,与实施例一中的各个步骤一一对应,其具体实施过程相同,此处不再累述。
实施例三
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的基于区块链的增量MPT树账户状态存储方法中的步骤。
实施例四
本实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的基于区块链的增量MPT树账户状态存储方法中的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种基于区块链的增量MPT树账户状态存储方法,其特征在于,包括:
获取区块中交易中涉及的账户状态对象并加载到临时状态缓存区pre-state;
监控交易执行过程中pre-state中账户状态对象的变化信息,并将新生成的账户状态对象及有变化的状态对象加载到临时状态缓存区dirty-state;
当区块中所有交易的状态转换过程执行完后,基于dirty-state中的状态对象来构建增量MPT树,并计算增量MPT树的根哈希作为相应区块的根哈希值;
将计算出的根哈希值与其他区块链节点计算出的根哈希值比较,校验状态转换的合法性;
当校验通过后,将增量MPT树存入增量状态库,并将临时状态缓存区dirty-state中的状态对象发生状态变化的交易ID更新到状态转换K-V表,并清空临时状态缓存区;状态转换K-V表以Key-Value方式存储所有账户的状态对象发生变化的最新交易的ID,其中key为账户的AccountID,value为账户状态对象发生变化的最新交易ID。
2.如权利要求1所述的基于区块链的增量MPT树账户状态存储方法,其特征在于,获取区块中交易中涉及的账户状态对象并加载到临时状态缓存区pre-state的过程包括:
从状态转换K-V表获取账户状态发生变化的最新交易ID;
根据最新交易ID获取交易所在的区块号;
根据区块号获取到区块头中的区块状态根根哈希值;
从增量状态库中检索出根哈希值所在的增量MPT树中的账户状态对象并加入pre-state。
3.如权利要求2所述的基于区块链的增量MPT树账户状态存储方法,其特征在于,增量状态库中存储每个区块的增量MPT树。
4.如权利要求1所述的基于区块链的增量MPT树账户状态存储方法,其特征在于,增量MPT树的根作为当前区块的状态根存储在区块头中。
5.如权利要求1所述的基于区块链的增量MPT树账户状态存储方法,其特征在于,将新生成的账户状态对象及有变化的状态对象加载到临时状态缓存区dirty-state的同时,还记录发生变化所属交易的ID。
6.如权利要求1所述的基于区块链的增量MPT树账户状态存储方法,其特征在于,状态对象由账户的状态属性值构建。
7.一种基于区块链的增量MPT树账户状态存储系统,其特征在于,包括:
账户状态对象加载模块,其用于获取区块中交易中涉及的账户状态对象并加载到临时状态缓存区pre-state;
状态对象监控模块,其用于监控交易执行过程中pre-state中账户状态对象的变化信息,并将新生成的账户状态对象及有变化的状态对象加载到临时状态缓存区dirty-state;
根哈希计算模块,其用于当区块中所有交易的状态转换过程执行完后,基于dirty-state中的状态对象来构建增量MPT树,并计算增量MPT树的根哈希作为相应区块的根哈希值;
根哈希值比较模块,其用于将计算出的根哈希值与其他区块链节点计算出的根哈希值比较,校验状态转换的合法性;
状态更新模块,其用于当校验通过后,将增量MPT树存入增量状态库,并将临时状态缓存区dirty-state中的状态对象发生状态变化的交易ID更新到状态转换K-V表,并清空临时状态缓存区;状态转换K-V表以Key-Value方式存储所有账户的状态对象发生变化的最新交易的ID,其中key为账户的AccountID,value为账户状态对象发生变化的最新交易ID。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一项所述的基于区块链的增量MPT树账户状态存储方法中的步骤。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6中任一项所述的基于区块链的增量MPT树账户状态存储方法中的步骤。
CN202110592799.8A 2021-05-28 2021-05-28 一种基于区块链的增量mpt树账户状态存储方法及系统 Active CN113254450B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110592799.8A CN113254450B (zh) 2021-05-28 2021-05-28 一种基于区块链的增量mpt树账户状态存储方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110592799.8A CN113254450B (zh) 2021-05-28 2021-05-28 一种基于区块链的增量mpt树账户状态存储方法及系统

Publications (2)

Publication Number Publication Date
CN113254450A CN113254450A (zh) 2021-08-13
CN113254450B true CN113254450B (zh) 2022-07-22

Family

ID=77185297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110592799.8A Active CN113254450B (zh) 2021-05-28 2021-05-28 一种基于区块链的增量mpt树账户状态存储方法及系统

Country Status (1)

Country Link
CN (1) CN113254450B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114064984B (zh) * 2022-01-14 2022-05-24 浙商银行股份有限公司 一种基于稀疏数组链表的世界状态增量更新方法及装置
CN114564539B (zh) * 2022-03-01 2022-11-25 山东大学 账户活跃度感知的区块链世界状态动态构建方法及系统
CN115617818B (zh) * 2022-12-15 2023-03-24 深圳市迈科龙电子有限公司 区块链中的mpt树批量更新方法、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110555770A (zh) * 2019-08-21 2019-12-10 杭州趣链科技有限公司 一种基于增量哈希的区块链世界状态校验和恢复方法
CN110599169A (zh) * 2019-09-16 2019-12-20 腾讯科技(深圳)有限公司 数据处理方法、装置、终端及介质
CN111837115A (zh) * 2019-07-11 2020-10-27 创新先进技术有限公司 共享的区块链数据存储
CN112800050A (zh) * 2019-11-13 2021-05-14 北京清红微谷技术开发有限责任公司 基于状态树的交易数据存储方法、系统、装置及p2p网络

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110602148B (zh) * 2019-10-10 2021-07-06 深圳前海微众银行股份有限公司 一种区块的状态树的生成和链上数据验证的方法及装置
CN111630830B (zh) * 2020-04-15 2023-07-04 支付宝(杭州)信息技术有限公司 账户模型下的分布式区块链数据存储

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111837115A (zh) * 2019-07-11 2020-10-27 创新先进技术有限公司 共享的区块链数据存储
CN110555770A (zh) * 2019-08-21 2019-12-10 杭州趣链科技有限公司 一种基于增量哈希的区块链世界状态校验和恢复方法
CN110599169A (zh) * 2019-09-16 2019-12-20 腾讯科技(深圳)有限公司 数据处理方法、装置、终端及介质
CN112800050A (zh) * 2019-11-13 2021-05-14 北京清红微谷技术开发有限责任公司 基于状态树的交易数据存储方法、系统、装置及p2p网络

Also Published As

Publication number Publication date
CN113254450A (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
CN113254450B (zh) 一种基于区块链的增量mpt树账户状态存储方法及系统
CN107145537B (zh) 一种表格数据导入方法及系统
CN110096522B (zh) 一种支持关系型检索的区块链数据处理方法、装置及设备
US20170068675A1 (en) Method and system for adapting a database kernel using machine learning
CN111324577B (zh) 一种Yml文件读写的方法及装置
CN114064984B (zh) 一种基于稀疏数组链表的世界状态增量更新方法及装置
Kvet et al. Temporal data performance optimization using preprocessing layer
US20230067182A1 (en) Data Processing Device and Method, and Computer Readable Storage Medium
CN103927314A (zh) 一种数据批量处理的方法和装置
CN111949540A (zh) 一种代码变更风险估算审核方法及装置
CN105302915A (zh) 基于内存计算的高性能数据处理系统
CN110597821B (zh) 数据仓库表结构变更方法及装置
CN106919617B (zh) 一种压缩存储方法和装置
CN111125114B (zh) 数据库横向扩展、数据表访问方法及装置
CN111143463B (zh) 一种基于主题模型的银行数据仓库的构建方法及装置
CN112800050A (zh) 基于状态树的交易数据存储方法、系统、装置及p2p网络
CN107315806B (zh) 一种基于文件系统的嵌入式存储方法和装置
CN115757533A (zh) 用于数据查询的数据过滤方法及装置
CN111984662B (zh) 批量更新数据库的方法及装置
CN112181951A (zh) 一种异构数据库数据迁移方法、装置及设备
CN108228801B (zh) 一种基于多核处理器的跳跃表多线程优化方法及设备
WO2021184325A1 (en) Ethereum state data storage optimization method, ethereum system and storage medium
CN111858638A (zh) 一种大批量同质数据的批量入库方法
CN110175185A (zh) 一种基于时序数据分布特征的自适应无损压缩方法
Peng et al. Query optimization for air quality big data based on hive-orc

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant