拍摄区块链数据的快照制造技术

技术编号:24366028 阅读:35 留言:0更新日期:2020-06-03 04:48
本文公开了用于区块链数据存储的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。方法之一包括:将标记消息从区块链网络的第一分片中的第一区块链节点发送至区块链网络的中继链中的第二区块链节点,从第二区块链节点接收标记区块,其中,标记区块与中继链相关联并且包括标记消息,创建与第一分片相关联的第一区块,该第一区块包括与中继链相关联的、紧接在标记区块之前的区块,创建与第一分片相关联的、包括标记区块的第二区块,在创建与第一分片相关联的第二区块期间,生成与第一分片关联的最新区块相对应的状态信息的快照,以及存储状态信息的快照。

Take a snapshot of blockchain data

【技术实现步骤摘要】
【国外来华专利技术】拍摄区块链数据的快照
本文涉及拍摄区块链数据的快照。
技术介绍
分布式账本系统(DLS),也可称为共识网络和/或区块链网络,使得参与的实体能够安全且不可篡改地存储数据。在不引用任何特定用例的情况下,DLS通常被称为区块链网络。区块链网络的类型的示例可以包括公有区块链网络、私有区块链网络和联盟区块链网络。联盟区块链网络针对选择的实体组群提供,该实体组群控制共识处理,并且联盟区块链网络包括访问控制层。基于区块链的程序可以由分布式计算平台执行。例如,分布式计算平台可以包括提供用于执行智能合约的运行时环境的虚拟机。区块链计算平台可以被视为基于交易的状态机。平台中的状态数据可以被组装(assemble)为称为世界状态的全局共享状态。世界状态包括账户地址和账户状态之间的映射。世界状态可以被存储在例如默克尔帕特里夏树(MerklePatriciatree,MPT)的内容寻址树结构中。内容寻址状态树本质上是增量式的。即,通过添加新的树结构而不是更新现有状态树的值来反映账户状态的变化。因此,随着新交易不断进入区块链,内容寻址状态树的大小可能会增长得非常大。在一些DLS中,每个节点都存储世界状态的完整副本,这可能会占用大量存储空间。这是因为,即使与历史区块关联的某些状态数据很少被访问,所有区块数据和状态数据也都存储到记录在区块链的第一个交易中。此外,由于每个区块链节点负责处理整个区块链网络的交易量,因此对于具有大量节点的区块链网络,每个区块链节点的计算和存储负担可能会非常高。因此,希望区块链节点能够选择性地存储与更频繁被访问的区块相关联的状态数据。还希望区块链节点负责处理和选择性地仅存储区块链网络的一部分交易数据。这样,可以节省区块链网络的存储开销,而不会显著影响系统性能和数据完整性。
技术实现思路
所描述的主题的实施例可以单独或组合地包括一个或多个特征。例如,在一个实施例中,公开了一种计算机实现的由区块链节点执行的用于存储区块链数据的方法。该方法包括在创建区块链的区块期间生成与固定深度默克尔树(FDMT)相关联的当前状态树的快照,其中,当前状态树存储与区块链的最新区块相对应的状态信息,并存储当前状态树的快照。在一些实施例中,可以使用系统、方法或计算机程序,或者系统、方法和计算机程序的任何组合来实现这些一般和特定方面。前述和其他描述的实施例可以各自可选地包括一个或多个以下方面:在一些实施例中,FDMT包括存储与区块链的每个区块相对应的状态信息的历史状态树。在一些实施例中,历史状态树包括键值对(KVP),其中,KVP中的键是KVP中的相应值的哈希值。在一些实施例中,当前状态树包括KVP,其中,KVP中的键包括与当前状态树的节点相对应的节点标识(ID)和与最新区块相对应的区块ID。在一些实施例中,当前状态树与合约账户相关联,并且其中,当前状态树是对合约账户的存储内容进行编码的树。在一些实施例中,快照包括与合约账户相关联的Merkle路径,该Merkle路径被包括在与最新区块相关联的世界状态树中。在一些实施例中,所述方法还包括:添加与最新区块相关联的区块ID作为快照的ID。在一些实施例中,所述方法还包括:接收用于检索与最新区块相对应的状态信息的请求;基于快照的ID通过本地调用确定存在状态信息的快照;以及响应于该请求,基于快照提供状态信息。在一些实施例中,所述方法还包括在存储了快照之后,删除与FDMT相关联的历史状态树。在一些实施例中,快照是基于RocksDB中的检查点功能生成的。在另一实施例中,公开了另一种计算机实现的由区块链节点执行的用于存储区块链数据的方法。所述方法包括:将标记消息从区块链网络的第一分片中的第一区块链节点发送至区块链网络的中继链中的第二区块链节点,从第二区块链节点接收标记区块,其中,标记区块与中继链相关联并且包括标记消息,创建与第一分片相关联的第一区块,该第一区块包括与中继链相关联的、紧接在标记区块之前的区块,创建与第一分片相关联的、包括标记区块的第二区块,在创建与第一分片相关联的第二区块期间,生成与第一分片关联的最新区块相对应的状态信息的快照,以及存储状态信息的快照。在一些实施例中,可以使用系统,方法或计算机程序,或者系统、方法和计算机程序的任何组合来实现这些一般和特定方面。前述和其他描述的实施例可以各自可选地包括一个或多个以下方面:在一些实施例中,与最新区块相对应的状态信息被存储在MPT中。在一些实施例中,与最新区块相对应的状态信息被存储在与FDMT相关联的当前状态树中。在一些实施例中,FDMT包括存储与区块链的每个区块相关联的状态信息的历史状态树。在一些实施例中,所述方法还包括在存储了状态信息的快照之后,删除历史状态树。在一些实施例中,历史状态树包括KVP,其中,KVP中的键是KVP中的相应值的哈希值。在一些实施例中,当前状态树包括KVP,其中,KVP中的键包括与当前状态树的节点相对应的节点ID和与最新区块相对应的区块ID。在一些实施例中,当前状态树与合约账户相关联,并且其中,当前状态树是对合约账户的存储内容进行编码的树。在一些实施例中,快照包括与合约账户相关联的Merkle路径,该Merkle路径被包括在与最新区块相关联的世界状态树中。在一些实施例中,所述方法还包括添加与标记区块相关联的区块ID或与最新区块相关联的区块ID,以作为快照的ID。在一些实施例中,所述方法还包括接收用于检索与最新区块相对应的状态信息的请求;基于快照的ID通过本地调用确定存在状态信息的快照;以及响应于该请求,基于快照提供状态信息。在一些实施例中,标记区块包括在区块链网络的第一分片和第二分片之间通信的一个或多个消息。在一些实施例中,快照是基于RocksDB中的检查点功能生成的。应当理解的是,根据本文的方法可包括本文描述的方面和特征的任何组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任何组合。在附图和以下描述中阐述了本文的一个或多个实施例的细节。根据说明书和附图以及权利要求书,本文的其他特征和优点将显现。附图说明图1描绘了可用于执行本文实施例的环境的示例。图2描绘了根据本文实施例的架构的示例。图3描绘了根据本文实施例的固定深度默克尔树(FDMT)的示例。图4描绘了根据本文实施例的用于存储区块链数据的数据库的示例。图5描绘了根据本文实施例的使用共享存储的区块链网络的示例。图6描绘了可以根据本文的实施例执行的处理的示例。图7描绘了根据本文的实施例的装置的模块的示例。图8描绘了根据本文实施例的在采用分片技术的区块链网络中执行快照的示例。图9描绘了根据本文实施例的采用分片技术的区块链网络的示例。图10描绘了可根据本文实施例执行的处理的另一示例。图11描绘了根据本文实施例的本文档来自技高网
...

【技术保护点】
1.一种计算机实现的用于区块链数据存储的方法,所述方法包括:/n将标记消息从区块链网络的第一分片中的第一区块链节点发送至所述区块链网络的中继链中的第二区块链节点;/n从所述第二区块链节点接收标记区块,其中,所述标记区块与所述中继链相关联并且包括所述标记消息;/n创建与所述第一分片相关联的第一区块,所述第一区块包括与所述中继链相关联的、紧接在所述标记区块之前的区块;/n创建与所述第一分片相关联的、包括所述标记区块的第二区块;/n在创建与所述第一分片相关联的所述第二区块期间,生成与所述第一分片关联的最新区块相对应的状态信息的快照;以及/n存储所述状态信息的所述快照。/n

【技术特征摘要】
【国外来华专利技术】1.一种计算机实现的用于区块链数据存储的方法,所述方法包括:
将标记消息从区块链网络的第一分片中的第一区块链节点发送至所述区块链网络的中继链中的第二区块链节点;
从所述第二区块链节点接收标记区块,其中,所述标记区块与所述中继链相关联并且包括所述标记消息;
创建与所述第一分片相关联的第一区块,所述第一区块包括与所述中继链相关联的、紧接在所述标记区块之前的区块;
创建与所述第一分片相关联的、包括所述标记区块的第二区块;
在创建与所述第一分片相关联的所述第二区块期间,生成与所述第一分片关联的最新区块相对应的状态信息的快照;以及
存储所述状态信息的所述快照。


2.如权利要求1所述的方法,其中,与所述最新区块相对应的所述状态信息存储在默克尔帕特里夏树MPT中。


3.如权利要求1所述的方法,其中,与所述最新区块相对应的所述状态信息存储在与固定深度默克尔树FDMT相关联的当前状态树中。


4.如权利要求3所述的方法,其中,所述FDMT包括存储与所述区块链的每个区块相关联的状态信息的历史状态树。


5.如权利要求4所述的方法,还包括:
在存储了所述状态信息的所述快照之后,删除所述历史状态树。


6.如权利要求5所述的方法,其中,所述历史状态树包括键值对KVP,KVP中的键是所述KVP中的相应值的哈希值。


7.如权利要求5所述的方法,其中,所述当前状态树包括KVP,KVP中的键包括与所述当前状态树的节点相对应的节点标识ID以及与所述最新区块...

【专利技术属性】
技术研发人员:陆钟豪
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1