区块链状态数据的存储方法、同步方法及存储介质技术

技术编号:41591643 阅读:14 留言:0更新日期:2024-06-07 00:03
本申请公开了一种区块链状态数据的存储方法,包括:获取待存储的状态数据和对应的键数据,所述键数据包括区块号和对应的状态节点在状态树中的寻址路径;将所述状态数据和对应的键数据组成键值对,并持久化至磁盘。本申请通过建立有序的键数据存储格式,使得状态节点数据可以顺序写入以及批量读取,减少了存储引擎后台执行归并操作的次数,同时减少了磁盘的寻址次数和寻址距离,节省了寻址时间,有效提高了同步过程的性能和效率。

【技术实现步骤摘要】

本申请属于区块链,特别是涉及一种区块链状态数据的存储方法、同步方法及存储介质


技术介绍

1、区块链是一种由多方共同维护,以块链结构存储数据,使用密码学保证传输和访问安全,能够实现数据一致存储、无法篡改、无法抵赖的技术体系。区块链在运行过程中会持续产生状态数据,区块链状态数据包括区块链节点在执行区块交易后产生的账户状态和合约状态。区块链状态数据的膨胀是当下许多区块链系统面临的问题,尤其对于一些已经长期运行的区块链项目,例如以太坊,区块高度已经达到千万以上。当一个新的节点要加入现有区块链网络时,若按照传统方法,单纯通过区块重放的方式来生成区块链状态数据往往需要耗费大量的时间成本和计算资源。

2、目前主流方案是通过状态同步机制,让新加入的节点直接从全节点或数据节点请求同步状态数据。但是,在此过程中,由于每个数据节点以key-value键值对的形式存储,而在传统方案中,key是value的哈希值,也就是说,key是无序的,大量无序的key-value键值对会使得状态同步过程效率低、速度慢。

3、因此,如何高效存储和同步状态数据是亟待解决的本文档来自技高网...

【技术保护点】

1.一种区块链状态数据的存储方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,当所述待存储的状态数据为多个且区块号不同,所述将所述状态数据和对应的键数据组成键值对,并持久化至磁盘,包括:

3.根据权利要求1所述的方法,其特征在于,当所述待存储的状态数据为多个且区块号相同,所述将所述状态数据和对应的键数据组成键值对,并持久化至磁盘,包括:

4.根据权利要求1所述的方法,其特征在于,所述键数据还包括所述状态树的类型;所述状态树的类型包括账户状态树或合约状态树。

5.一种区块链状态数据的读取方法,其特征在于,包括:

...

【技术特征摘要】

1.一种区块链状态数据的存储方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,当所述待存储的状态数据为多个且区块号不同,所述将所述状态数据和对应的键数据组成键值对,并持久化至磁盘,包括:

3.根据权利要求1所述的方法,其特征在于,当所述待存储的状态数据为多个且区块号相同,所述将所述状态数据和对应的键数据组成键值对,并持久化至磁盘,包括:

4.根据权利要求1所述的方法,其特征在于,所述键数据还包括所述状态树的类型;所述状态树的类型包括账户状态树或合约状态树。

5.一种区块链状态数据的读取方法,其特征在于,包括:

6.一种区块链状态数据的同步方法,应用于第一节点,其特征在于,所述...

【专利技术属性】
技术研发人员:汪小益张启锐张帅刘敬姚文豪
申请(专利权)人:杭州高新区滨江区块链与数据安全研究院
类型:发明
国别省市:

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

1