CN113329031A 一种区块的状态树的生成方法及装置 (深圳前海微众银行股份有限公司)_第1页
CN113329031A 一种区块的状态树的生成方法及装置 (深圳前海微众银行股份有限公司)_第2页
CN113329031A 一种区块的状态树的生成方法及装置 (深圳前海微众银行股份有限公司)_第3页
CN113329031A 一种区块的状态树的生成方法及装置 (深圳前海微众银行股份有限公司)_第4页
CN113329031A 一种区块的状态树的生成方法及装置 (深圳前海微众银行股份有限公司)_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本发明公开了一种区块的状态树的生成方构建由各第一账户和各第一账户的第一账户数2针对区块链中的任一区块,确定所述区块的第一账户和第一账户数据;所述第一构建由各第一账户和所述各第一账户的第一账针对任一第一账户的任一第一账户数据,将所述第一账户第一账户中的账户状态和/或合约状态发生接收客户端的数据获取请求;所述数据获取请求中包括根据所述第二账户的标识和所述第二账户的第一从第一区块的状态树中获取用于验证所述第从第二区块的状态树中获取用于验证所述第构建单元,用于构建由各第一账户和所述各针对任一第一账户的任一第一账户数据,将所述第一账户3接收客户端的数据获取请求;所述数据获取请求中包括根据所述第二账户的标识和所述第二账户的第一从第一区块的状态树中获取用于验证所述第从第二区块的状态树中获取用于验证所述第处理器,用于调用所述存储器中存储的程序指令,4[0005]但随着区块链上数据不断增长,区块链节点需要获取的用于验证的分支路径较[0009]构建由各第一账户和所述各第一账户的第一账户数据构成的所5该块高记录用于记录账户标识对应账户中的账户数据发生历次变化时所在的区块的块高,6记录的第一分支路径,第二组是第二账户数据和用于验证第二账户数据的第二分支路径,7数据是所述各交易执行后所述第一账户中发8径是所述区块链节点确定的用于验证所述第二账9[0116]从MerkleTree的构建过程我们可以发现任意一个叶子节点所记录的数据被修的键值并不是由树中的节点存储,而是取决于其在树中的位置(即从根节点到达特定节点[0123]如图2所示,以太坊包括状态树和存储树,状态树可以是状态MPT(可以认为MMerkleTree+PatriciaTree)或状态MerkleTree,存储树可以是存储MPT或存储Merkle[0126]以太坊的状态树和存储树中,仍然可以基于Merkle证明对账户数据(包括账户状27变为45,则基于原有Account175的合约状态26和该修改后的合约状态45确定父节点中的哈希值,并将构建出的存储树的根节点哈希值存储至区块60的Account175的storage构建出的存储树的根节点哈希值存储至区块60的Account175的storageroot字段中;基于该修改后的Account175的账户状态确定父节点中的哈希值,并将构建出的状态树的根修改的或新增的账户数据生成,而不会再基于原有区块对应的未发生变化的账户数据生采用10000个账户构建区块60对应的状态树,而本发明实施例中若区块60中所有交易执行key中,账号标识可以理解成账号地址;账户数据标识可以理解成需持久化存储数据的序[0135]考虑到本发明实施例所构建的状态树仅是基于变化账户的变为块高记录的标识,12_45_50为记录的块高记录,可以理解为账户0x234在区块高度12写值对即指示该账户0x234在对应块高上写入或修改0x234_1[0140]通过存储该key_value键值对,可以快速确定出账户所对应的账户数据发生历次[0141]基于上述描述,图5示例性的示出了本发明实施例提供的一种区块的状态树的生发生变化的块高记录、账户状态和/或合约状态。如表1中的例子,在区块50的第一账户0x234中可以包括的第一账户数据有块高记录12_45_50和[0147]步骤502,区块链节点构建由各第一账户和各第一账户的第一账户数据构成的区证的方法,该方法适用于如图6所示的系统架构,该系统架构可以包括客户端和区块链节为0x234_balance_45对应的[0159]步骤704,区块链节点从第一区块的状态树中获取用于验证第一块高记录的第一[0160]步骤705,区块链节点从第二区块的状态树中获取用于验证第二账户数据的第二[0161]由于发明实施例中构建某个区块的状态树只能用于验证该区块的状态树对应的[0188]上述实施例中,虽然说共识节点列表是根据第0个区块至第99个区块的区块头确数据(代表共识节点E),则需要采用第50个区块中状态树的根哈希对该增加的合约数据进[0194]为了更好的解释本发明实施例,下面结合表1提供一个完整的链上数据验证的例点先根据0x234_1确定第一块高记录12_45_50,区块链节点根据块高50的第一区块的状态树确定用于验证第一块高记录12_45_50的第一分支路径;区块链节点根据第一块高记录balance300的第二分支路径。区块链节点将第一块高记录12_45_50、第一分支路径和成了查询并验证账户0x234在块高48的区块上的bala账户数据是所述各交易执行后所述第一账户支路径是所述区块链节点确定的用于验证所述第[0240]基于同一发明构思,本发明实施例还提供了一种计算机可读[0244]基于同一发明构思,本发明实施例还提供了一种计算机可读现在流程图一个流程或多个流程和/或方框图一个方框或多个方框[0246]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论