CN112767154A - 应用于区块链系统的默克尔树计算方法及系统 - Google Patents

应用于区块链系统的默克尔树计算方法及系统 Download PDF

Info

Publication number
CN112767154A
CN112767154A CN202110065505.6A CN202110065505A CN112767154A CN 112767154 A CN112767154 A CN 112767154A CN 202110065505 A CN202110065505 A CN 202110065505A CN 112767154 A CN112767154 A CN 112767154A
Authority
CN
China
Prior art keywords
tree
global state
block chain
mercker
incremental
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.)
Pending
Application number
CN202110065505.6A
Other languages
English (en)
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110065505.6A priority Critical patent/CN112767154A/zh
Publication of CN112767154A publication Critical patent/CN112767154A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Marketing (AREA)
  • Signal Processing (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种应用于区块链系统的默克尔树计算方法及系统,属于区块链和金融领域,所述方法包含:根据预设增量时间周期内区块链节点执行的交易生成增量交易数据;根据所述增量交易数据遍历区块链节点缓存的交易全局状态默克尔树,获得与所述增量交易数据关联的所述交易全局状态默克尔树的叶子节点;根据所述增量交易数据计算对应的默克尔树根值;通过所述默克尔树根值更新所述叶子节点以将所述增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树,获得区块链节点的全局状态默克尔树。

Description

应用于区块链系统的默克尔树计算方法及系统
技术领域
本发明涉及区块链技术领域,可适用于银行业务数据处理领域和金融领域,尤指一种应用于区块链系统的默克尔树计算系统及方法。
背景技术
传统的区块链系统中,账本是链式结构,每个区块中需要记录交易全局状态的Merkle树根,各个区块链节点每隔一段时间可以根据交易全局状态做节点间对账。但是随着区块链网络中存量交易越来越多,经常需要从硬盘读大量历史数据,然后根据历史数据和新交易的参数重新计算Merkle树根,全局状态的Merkle树根的计算复杂度越来越高、对磁盘的读写压力也越来越大。
如图1所示,传统的区块数据结构可包括版本号101、区块序号102、时间戳103、交易元数据104、上一区块哈希105、交易全局状态Merkle树根106。所述版本号101是区块版本号,区块数据结构升级后,能够按照版本号来区分,使用不同版本的解析方法。所述区块序号102一般用于标识当前区块到第一个区块的高度,第一个区块高度是0。所述时间戳103是该区块生成的具体时间,也可以认为是对应交易的记账时间。所述交易元数据104记录交易相关信息,比如交易类型、交易签名、交易配置、交易过滤规则、交易hash结果等信息,一般用来在区块链中索引具体交易。所述上一区块哈希105是上一个区块数据的hash值,根据交易元数据外区块的其余字段计算得到。所述交易全局状态Merkle树根106是区块链网络创建以来,全部交易数据作为叶子节点构建Merkle树,Merkle树根的值就是这个字段。如图2所示,区块链系统的交易全局状态Merkle根的计算可包含:假设区块链分别收到TxData2、TxDataA、TxData4、TxDataD相关的交易,阴影部分为需要重新计算和更新的Merkle数据,最终更新Merkle根。假设存量数据为N,统计周期长度为k,一个周期内原始Merkle根的计算复杂度为
Figure BDA0002902369380000011
发明内容
本发明目的在于提供一种应用于区块链系统的默克尔树计算系统及方法,对区块链系统底层数据结构设计做优化,将计算交易全局状态Merkle树根的做法优化为根据对账周期计算对账周期内的增量交易状态的Merkle树根。
为达上述目的,本发明所提供的应用于区块链系统的默克尔树计算方法,具体包含:根据预设增量时间周期内区块链节点执行的交易生成增量交易数据;根据所述增量交易数据遍历区块链节点缓存的交易全局状态默克尔树,获得与所述增量交易数据关联的所述交易全局状态默克尔树的叶子节点;根据所述增量交易数据计算对应的默克尔树根值;通过所述默克尔树根值更新所述叶子节点以将所述增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树,获得区块链节点的全局状态默克尔树。
在上述应用于区块链系统的默克尔树计算方法中,优选的,通过所述默克尔树根值更新所述叶子节点以将所述增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树还包含:统计预设合并时间周期内所有的增量交易数据对应的默克尔树根值;通过预设合并时间周期内的默克尔树根值及各默克尔树根值对应的叶子节点,更新所述叶子节点以将预设合并时间周期内所有的增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树。
在上述应用于区块链系统的默克尔树计算方法中,优选的,所述预设合并时间周期为所述预设增量时间周期的整数倍。
在上述应用于区块链系统的默克尔树计算方法中,优选的,获得区块链的全局状态默克尔树还包含:清空区块链节点预设合并时间周期内的所有的增量交易数据的默克尔树根。
在上述应用于区块链系统的默克尔树计算方法中,优选的,获得区块链的全局状态默克尔树还包含:根据所述全局状态默克尔树校验进行对账处理;当对账处理未通过时,获取区块链网络中其他区块链节点的账本数据并同步到本地。
在上述应用于区块链系统的默克尔树计算方法中,优选的,所述方法还包含:按预设周期统计所述全局状态默克尔树中各个叶子节点的更新频率;将所述更新频率差异小于预设阈值的叶子节点放在默克尔树上相邻位置存储,获得更新后的默克尔树;根据更新后的默克尔树生成共识请求,将所述共识请求广播至区块链网络中其他区块链节点;根据其他区块链节点反馈的共识结果更新区块链节点的全局状态默克尔树。
本发明还提供一种应用于区块链系统的默克尔树计算系统,所述系统包含:监测模块、分析模块、计算模块和处理模块;所述监测模块用于根据预设增量时间周期内区块链节点执行的交易生成增量交易数据;所述分析模块用于根据所述增量交易数据遍历区块链节点缓存的交易全局状态默克尔树,获得与所述增量交易数据关联的所述交易全局状态默克尔树的叶子节点;所述计算模块用于根据所述增量交易数据计算对应的默克尔树根值;所述处理模块用于通过所述默克尔树根值更新所述叶子节点以将所述增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树,获得区块链节点的全局状态默克尔树。
在上述应用于区块链系统的默克尔树计算系统中,优选的,所述处理模块包含合并单元,所述合并单元用于统计预设合并时间周期内所有的增量交易数据对应的默克尔树根值;通过预设合并时间周期内的默克尔树根值及各默克尔树根值对应的叶子节点,更新所述叶子节点以将预设合并时间周期内所有的增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树。
在上述应用于区块链系统的默克尔树计算系统中,优选的,所述处理模块包含清除模块,所述清除模块用于清空区块链节点预设合并时间周期内的所有的增量交易数据的默克尔树根。
在上述应用于区块链系统的默克尔树计算系统中,优选的,所述系统还包含更新单元,所述更新单元用于按预设周期统计所述全局状态默克尔树中各个叶子节点的更新频率;将所述更新频率差异小于预设阈值的叶子节点放在默克尔树上相邻位置存储,获得更新后的默克尔树;根据更新后的默克尔树生成共识请求,将所述共识请求广播至区块链网络中其他区块链节点;根据其他区块链节点反馈的共识结果更新区块链节点的全局状态默克尔树。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
本发明的有益技术效果在于:
1.计算复杂度方面。本发明提出的轻量级账本数据结构,将传统中计算交易全局状态的方法,从计算复杂度
Figure BDA0002902369380000031
优化为
Figure BDA0002902369380000041
之间。结合本专利提出的区块链节点定期做交易全局状态Merkle树的调整的处理方法,使得在合并操作周期内涉及的交易数据比较集中时复杂度仅
Figure BDA0002902369380000042
能够大大减小计算复杂度、加速计算出块处理。
2.硬盘读写压力方面。本发明提出的轻量级账本数据结构,将合并周期M内传统方法的M次的硬盘持久化操作,优化为单次硬盘持久化操作,大大减轻了数据库写压力,仅为原来的1/M。
3.将区块链节点间对账与交易全局状态Merkle树根的计算结果解除绑定,使得区块链节点间对账处理加快。每次交易落块时,区块链节点间仅做增量交易统计周期内交易的对账,在一个合并操作周期结束时,在区块链节点间执行一次全局对账。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1为本发明一实施例所提供的区块链系统的传统区块数据结构示意图;
图2为本发明一实施例提供的区块链系统的交易全局状态Merkle根的计算流程示意图;
图3A为本发明一实施例提供的应用于区块链系统的默克尔树计算方法的流程示意图;
图3B为本发明一实施例提供的区块链系统的轻量级区块数据结构图;
图4为本发明一实施例提供的区块链系统的增量交易状态Merkle根的计算示意图;
图5为本发明一实施例提供的区块链节点做Merkle树合并和对账的处理方法流程示意图;
图6为本发明一实施例提供的区块链节点定期做交易全局状态Merkle树的调整的处理方法流程示意图;
图7为本发明一实施例提供的默克尔树根合并流程示意图;
图8为本发明一实施例提供的Merkle树调整流程示意图;
图9为本发明一实施例提供的应用于区块链系统的默克尔树计算系统的结构示意图;
图10为本发明一实施例所提供的电子设备的结构示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
请参考图3A和图4所示,本发明所提供的应用于区块链系统的默克尔树计算方法,具体包含:
步骤S301根据预设增量时间周期内区块链节点执行的交易生成增量交易数据;
步骤S302根据所述增量交易数据遍历区块链节点缓存的交易全局状态默克尔树,获得与所述增量交易数据关联的所述交易全局状态默克尔树的叶子节点;
步骤S303根据所述增量交易数据计算对应的默克尔树根值;
步骤S304通过所述默克尔树根值更新所述叶子节点以将所述增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树,获得区块链节点的全局状态默克尔树。
实际工作中,本发明所提供的应用于区块链系统的默克尔树计算方法所应用的区块链系统的轻量级区块数据结构可如图3B所示,针对区块链系统的传统区块数据结构,交易全局状态Merkle树根可以优化为增量交易状态Merkle树根。所述轻量级区块数据结构包含:版本号301、区块序号302、时间戳303、交易元数据304、上一区块哈希305、增量交易状态Merkle树根306。所述版本号301是区块版本号,区块数据结构升级后,能够按照版本号来区分,使用不同版本的解析方法。所述区块序号302一般用于标识当前区块到第一个区块的高度,第一个区块高度是0。所述时间戳303是该区块生成的具体时间,也可以认为是对应交易的记账时间。所述交易元数据304记录交易相关信息,比如交易类型、交易签名、交易配置、交易过滤规则、交易hash结果等信息,一般用来在区块链中索引具体交易。所述上一区块哈希305是上一个区块数据的hash值,根据交易元数据外区块的其余字段计算得到。所述增量交易状态Merkle树根306,一个增量交易统计周期内的交易数据作为叶子节点构建Merkle树,Merkle树根的值就是这个字段。
利用上述实施例,如图4所示,假设区块链分别收到TxData2、TxDataA、TxData4、TxDataD相关的交易,阴影部分为需要重新计算和更新的Merkle数据,最终更新Merkle根。假设存量数据为N,增量交易统计周期长度为k,本专利提出的一个周期内Merkle根计算复杂度不超过
Figure BDA0002902369380000061
当存量数据较多,即N>>k,计算复杂度能够比传统计算方法大大降低。区块链节点新起后台协程,定时处理增量交易状态Merkle树和原来的交易全局状态Merkle树的合并。假设合并操作周期是M(M是k的整数倍),在一个合并周期结束之后计算新的交易全局状态Merkle树根,一个合并周期内的计算复杂度是
Figure BDA0002902369380000062
若使用传统的计算方法,计算复杂度是
Figure BDA0002902369380000063
当且仅当被更新的交易数据在Merkle树上位置比较聚集,本专利提出的增量交易状态Merkle根计算方法可以使得计算复杂度最低,约为
Figure BDA0002902369380000064
否则计算复杂度和交易全局状态Merkle树根的计算接近;后面图6提出的Merkle树定期调整的方法可以使得计算复杂度趋于最低的计算复杂度。
在上述实施例中提出的增量交易状态Merkle根的方法,使得压力降低为传统方法的1/M,在区块链账本中存量数据量较大的时候可以极大降低存储压力,提升区块链系统的性能。
如图7所示,通过所述默克尔树根值更新所述叶子节点以将所述增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树还包含:
步骤S701统计预设合并时间周期内所有的增量交易数据对应的默克尔树根值;
步骤S702通过预设合并时间周期内的默克尔树根值及各默克尔树根值对应的叶子节点,更新所述叶子节点以将预设合并时间周期内所有的增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树。
其中,所述预设合并时间周期为所述预设增量时间周期的整数倍。
在上述实施例中,获得区块链的全局状态默克尔树还包含:清空区块链节点预设合并时间周期内的所有的增量交易数据的默克尔树根。进一步的,获得区块链的全局状态默克尔树还可包含:根据所述全局状态默克尔树校验进行对账处理;当对账处理未通过时,获取区块链网络中其他区块链节点的账本数据并同步到本地。
具体的,如图5所示,实际工作中区块链节点做Merkle树合并和对账的处理方法可如下步骤执行:
步骤S501:区块链节点新建增量状态Merkle树。
步骤S502:区块链节点接收交易、执行交易并更新增量交易状态Merkle树。
步骤S503:区块链节点计算新区块各字段,含增量交易状态Merkle根。
步骤S504:判断一个增量交易统计周期k是否结束,若未结束,返回S502,否则进入下一步。
步骤S505:判断一个合并操作周期M是否结束,若未结束,返回S501,否则进入下一步。
步骤S506:区块链节点遍历缓存的所有增量交易状态Merkle树的交易信息,确认交易全局状态Merkle树中哪些叶子节点需要更新或者新增,完成增量交易状态Merkle树合并到交易全局状态Merkle树。
步骤S507:区块链节点清空缓存的所有增量交易状态Merkle树。
步骤S508:区块链节点间使用交易全局状态Merkle树根对账。
步骤S509:区块链节点判断对账是否通过,若对账通过,返回S501,进入下一合并操作周期,否则进入下一步。
步骤S510:区块链节点从网络中其他区块链节点同步正确账本。
由此,通过上述提供Merkle树合并和对账的处理方法,可有效减轻节点间的对账压力。
请参考图8所示,在本发明一实施例中,所述方法还可包含:
步骤S801:按预设周期统计所述全局状态默克尔树中各个叶子节点的更新频率;
步骤S802:将所述更新频率差异小于预设阈值的叶子节点放在默克尔树上相邻位置存储,获得更新后的默克尔树;
步骤S803:根据更新后的默克尔树生成共识请求,将所述共识请求广播至区块链网络中其他区块链节点;
步骤S804:根据其他区块链节点反馈的共识结果更新区块链节点的全局状态默克尔树。
在实际工作中,具体请参考图6所示,当且仅当合并操作周期内被更新的交易数据在Merkle树上位置比较聚集,所述增量交易状态Merkle根计算方法可以使得计算复杂度最低;为了使得每个合并操作周期内,受影响的叶子节点在交易全局状态Merkle树中的位置尽量集中,可以定期执行调整操作,具体实施步骤如下:
步骤S601:各区块链节点定期统计交易全局状态Merkle树各个叶子节点的更新频率。
步骤S602:区块链主节点重新计算交易全局状态Merkle树,将更新频率相近的叶子节点放Merkle树上临近位置存储,最终计算出新的Merkle树根。
步骤S603:区块链主节点触发交易全局状态Merkle树调整交易,广播共识消息给其他区块链节点,在共识消息中附加新的Merkle树根。
步骤S604:其他区块链节点重新计算交易全局状态Merkle树,将更新频率相近的叶子节点放Merkle树上临近位置存储,最终计算出新的Merkle树根,并广播计算结果。
步骤S605:各个区块链节点判断新的Merkle树根共识是否成功,若是,进入下一步,否则不对交易全局状态Merkle树做调整并返回。
步骤S606:区块链节点更新交易全局状态Merkle树。
区块链主节点不对交易全局状态Merkle树调整并返回。
请参考图9所示,本发明还提供一种应用于区块链系统的默克尔树计算系统,所述系统包含:监测模块、分析模块、计算模块和处理模块;所述监测模块用于根据预设增量时间周期内区块链节点执行的交易生成增量交易数据;所述分析模块用于根据所述增量交易数据遍历区块链节点缓存的交易全局状态默克尔树,获得与所述增量交易数据关联的所述交易全局状态默克尔树的叶子节点;所述计算模块用于根据所述增量交易数据计算对应的默克尔树根值;所述处理模块用于通过所述默克尔树根值更新所述叶子节点以将所述增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树,获得区块链节点的全局状态默克尔树。
在上述实施例中,所述处理模块可包含合并单元,所述合并单元用于统计预设合并时间周期内所有的增量交易数据对应的默克尔树根值;通过预设合并时间周期内的默克尔树根值及各默克尔树根值对应的叶子节点,更新所述叶子节点以将预设合并时间周期内所有的增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树。在另一实施例中,所述处理模块可包含清除模块,所述清除模块用于清空区块链节点预设合并时间周期内的所有的增量交易数据的默克尔树根。
在本发明一实施例中,所述系统还可包含更新单元,所述更新单元用于按预设周期统计所述全局状态默克尔树中各个叶子节点的更新频率;将所述更新频率差异小于预设阈值的叶子节点放在默克尔树上相邻位置存储,获得更新后的默克尔树;根据更新后的默克尔树生成共识请求,将所述共识请求广播至区块链网络中其他区块链节点;根据其他区块链节点反馈的共识结果更新区块链节点的全局状态默克尔树。
本发明的有益技术效果在于:
1.计算复杂度方面。本发明提出的轻量级账本数据结构,将传统中计算交易全局状态的方法,从计算复杂度
Figure BDA0002902369380000091
优化为
Figure BDA0002902369380000092
之间。结合本专利提出的区块链节点定期做交易全局状态Merkle树的调整的处理方法,使得在合并操作周期内涉及的交易数据比较集中时复杂度仅
Figure BDA0002902369380000093
能够大大减小计算复杂度、加速计算出块处理。
2.硬盘读写压力方面。本发明提出的轻量级账本数据结构,将合并周期M内传统方法的M次的硬盘持久化操作,优化为单次硬盘持久化操作,大大减轻了数据库写压力,仅为原来的1/M。
3.将区块链节点间对账与交易全局状态Merkle树根的计算结果解除绑定,使得区块链节点间对账处理加快。每次交易落块时,区块链节点间仅做增量交易统计周期内交易的对账,在一个合并操作周期结束时,在区块链节点间执行一次全局对账。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
如图10所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图10中所示的所有部件;此外,电子设备600还可以包括图10中没有示出的部件,可以参考现有技术。
如图10所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种应用于区块链系统的默克尔树计算方法,其特征在于,所述方法包含:
根据预设增量时间周期内区块链节点执行的交易生成增量交易数据;
根据所述增量交易数据遍历区块链节点缓存的交易全局状态默克尔树,获得与所述增量交易数据关联的所述交易全局状态默克尔树的叶子节点;
根据所述增量交易数据计算对应的默克尔树根值;
通过所述默克尔树根值更新所述叶子节点以将所述增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树,获得区块链节点的全局状态默克尔树。
2.根据权利要求1所述的应用于区块链系统的默克尔树计算方法,其特征在于,通过所述默克尔树根值更新所述叶子节点以将所述增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树还包含:
统计预设合并时间周期内所有的增量交易数据对应的默克尔树根值;
通过预设合并时间周期内的默克尔树根值及各默克尔树根值对应的叶子节点,更新所述叶子节点以将预设合并时间周期内所有的增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树。
3.根据权利要求2所述的应用于区块链系统的默克尔树计算方法,其特征在于,所述预设合并时间周期为所述预设增量时间周期的整数倍。
4.根据权利要求2所述的应用于区块链系统的默克尔树计算方法,其特征在于,获得区块链的全局状态默克尔树还包含:清空区块链节点预设合并时间周期内的所有的增量交易数据的默克尔树根。
5.根据权利要求2所述的应用于区块链系统的默克尔树计算方法,其特征在于,获得区块链的全局状态默克尔树还包含:根据所述全局状态默克尔树校验进行对账处理;当对账处理未通过时,获取区块链网络中其他区块链节点的账本数据并同步到本地。
6.根据权利要求1所述的应用于区块链系统的默克尔树计算方法,其特征在于,所述方法还包含:
按预设周期统计所述全局状态默克尔树中各个叶子节点的更新频率;
将所述更新频率差异小于预设阈值的叶子节点放在默克尔树上相邻位置存储,获得更新后的默克尔树;
根据更新后的默克尔树生成共识请求,将所述共识请求广播至区块链网络中其他区块链节点;
根据其他区块链节点反馈的共识结果更新区块链节点的全局状态默克尔树。
7.一种应用于区块链系统的默克尔树计算系统,其特征在于,所述系统包含:监测模块、分析模块、计算模块和处理模块;
所述监测模块用于根据预设增量时间周期内区块链节点执行的交易生成增量交易数据;
所述分析模块用于根据所述增量交易数据遍历区块链节点缓存的交易全局状态默克尔树,获得与所述增量交易数据关联的所述交易全局状态默克尔树的叶子节点;
所述计算模块用于根据所述增量交易数据计算对应的默克尔树根值;
所述处理模块用于通过所述默克尔树根值更新所述叶子节点以将所述增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树,获得区块链节点的全局状态默克尔树。
8.根据权利要求7所述的应用于区块链系统的默克尔树计算系统,其特征在于,所述处理模块包含合并单元,所述合并单元用于统计预设合并时间周期内所有的增量交易数据对应的默克尔树根值;通过预设合并时间周期内的默克尔树根值及各默克尔树根值对应的叶子节点,更新所述叶子节点以将预设合并时间周期内所有的增量交易数据的默克尔树根合并至缓存的交易全局状态默克尔树。
9.根据权利要求8所述的应用于区块链系统的默克尔树计算系统,其特征在于,所述处理模块包含清除模块,所述清除模块用于清空区块链节点预设合并时间周期内的所有的增量交易数据的默克尔树根。
10.根据权利要求7所述的应用于区块链系统的默克尔树计算系统,其特征在于,所述系统还包含更新单元,所述更新单元用于按预设周期统计所述全局状态默克尔树中各个叶子节点的更新频率;将所述更新频率差异小于预设阈值的叶子节点放在默克尔树上相邻位置存储,获得更新后的默克尔树;根据更新后的默克尔树生成共识请求,将所述共识请求广播至区块链网络中其他区块链节点;根据其他区块链节点反馈的共识结果更新区块链节点的全局状态默克尔树。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一所述方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至6任一所述方法的计算机程序。
CN202110065505.6A 2021-01-18 2021-01-18 应用于区块链系统的默克尔树计算方法及系统 Pending CN112767154A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110065505.6A CN112767154A (zh) 2021-01-18 2021-01-18 应用于区块链系统的默克尔树计算方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110065505.6A CN112767154A (zh) 2021-01-18 2021-01-18 应用于区块链系统的默克尔树计算方法及系统

Publications (1)

Publication Number Publication Date
CN112767154A true CN112767154A (zh) 2021-05-07

Family

ID=75702940

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110065505.6A Pending CN112767154A (zh) 2021-01-18 2021-01-18 应用于区块链系统的默克尔树计算方法及系统

Country Status (1)

Country Link
CN (1) CN112767154A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1741010A (zh) * 2004-08-24 2006-03-01 侯方勇 优化哈希树完整性校验的方法和装置
CN110688377A (zh) * 2019-08-30 2020-01-14 阿里巴巴集团控股有限公司 一种更新状态默克树的方法及装置
CN111444192A (zh) * 2020-06-12 2020-07-24 支付宝(杭州)信息技术有限公司 块链式账本中全局状态的哈希的生成方法、装置及设备
CN111444196A (zh) * 2020-06-12 2020-07-24 支付宝(杭州)信息技术有限公司 块链式账本中全局状态的哈希的生成方法、装置及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1741010A (zh) * 2004-08-24 2006-03-01 侯方勇 优化哈希树完整性校验的方法和装置
CN110688377A (zh) * 2019-08-30 2020-01-14 阿里巴巴集团控股有限公司 一种更新状态默克树的方法及装置
CN111444192A (zh) * 2020-06-12 2020-07-24 支付宝(杭州)信息技术有限公司 块链式账本中全局状态的哈希的生成方法、装置及设备
CN111444196A (zh) * 2020-06-12 2020-07-24 支付宝(杭州)信息技术有限公司 块链式账本中全局状态的哈希的生成方法、装置及设备

Similar Documents

Publication Publication Date Title
CN109902071B (zh) 业务日志存储方法、系统、装置及设备
CN110674146B (zh) 一种数据同步方法、同步端、待同步端、设备及存储介质
CN111951101B (zh) 数据核对方法及装置
CN111444196B (zh) 块链式账本中全局状态的哈希的生成方法、装置及设备
EP4213037A1 (en) Data storage and reconciliation method and system
CN110519329B (zh) 一种并发处理samba协议请求的方法、设备及可读介质
CN111368006B (zh) 海量数据带条件集中抽取系统及方法
CN112785408A (zh) 基于哈希的对账方法及装置
CN110599166A (zh) 一种区块链内获取交易依赖关系的方法及装置
CN113656432A (zh) 数据对比方法及装置
CN115080515A (zh) 基于区块链的系统文件共享方法及系统
CN111222869A (zh) 交易数据处理方法、装置、计算机设备及介质
CN111045604A (zh) 一种基于nvram的小文件读写加速方法和设备
CN111930843B (zh) 基于数据库的数据系统及处理方法
CN112767154A (zh) 应用于区块链系统的默克尔树计算方法及系统
WO2020224242A1 (zh) 区块链数据处理方法、装置、服务器及存储介质
CN110059087B (zh) 一种块链式账本中的数据属性标识方法、装置及设备
CN112035066A (zh) 日志保留时长的计算方法及装置
CN110780855A (zh) 一种统一管控接口的方法、装置和系统
CN112785201B (zh) 异构系统准实时高可靠交互系统及方法
CN113709059B (zh) 一种链路流量录制方法及节点
US11568399B2 (en) Distributed ledger management system, distributed ledger management method, and node
CN113986939A (zh) 数据库的数据变更方法及装置
CN113590713A (zh) 分布式系统参数同步方法、装置、电子设备及计算机可读存储介质
CN111859041A (zh) 数据报送方法及装置

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