一种状态数据异步存储的方法及系统技术方案

技术编号:43482208 阅读:48 留言:0更新日期:2024-11-29 16:54
本发明专利技术属于区块链技术领域,本发明专利技术提供了一种状态数据异步存储的方法及系统,在新区块共识通过后,将区块数据完成持久化存储并将状态数据先写入缓存,缓存中的状态数据进行异步持久化存储;在上述过程中,接收到需要进行状态数据读写请求时,基于缓存及持久化存储中的状态数据中最新的版本构建数据副本后进行读写。本发明专利技术可以避免因状态数据缓存机制导致节点异常宕机后状态数据丢失,减少状态数据持久化存储造成的新区块处理阻塞,提高区块链交易吞吐量的同时避免区块链状态执行结果不一致或不正确。

【技术实现步骤摘要】

本专利技术属于区块链,具体涉及一种状态数据异步存储的方法及系统


技术介绍

1、本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。

2、区块链技术是由点对点通信、密码算法、智能合约、共识机制等多种技术组成的具有公开透明、不可篡改、不可抵赖和可追溯等特性的分布式账本技术。区块链上的数据通常包括区块数据和状态数据。其中区块数据采用块链式数据结构,包括区块头和区块体,区块头中包含上一区块的哈希值prehash、当前区块体的哈希值、当前区块的状态根、时间戳等信息,区块体中为当前区块包含的交易记录,每个区块的块高基于时序关系递增。随着新的区块产生,区块中交易读写到的状态数据将会变更,变更后的状态数据将随新区块链的上链持久化存储到磁盘或存储介质中。

3、在区块链中,为保证数据的一致性、正确性,共识通过的区块数据和状态数据均完成了持久化存储后,区块链节点才会开启下一轮共识或区块执行;否则,可能会因前后区块读写数据冲突导致下一区块进行状态数据读写时使用的状态数据非最新数据,导致执行结果不一致或不正确。</p>

4、区块本文档来自技高网...

【技术保护点】

1.一种状态数据异步存储的方法,其特征是,包括以下步骤:

2.如权利要求1所述的一种状态数据异步存储的方法,其特征是,将状态数据先写入缓存前,将所有涉及到状态数据的变更、新增或删除的写数据构成状态数据集合,基于所述状态数据的标识,构建布隆过滤器,且将所述状态数据集合以该区块的块高n为版本,批量写入状态缓存队列,并将该版本的状态数据集合对应的布隆过滤器写入布隆过滤器缓存。

3.如权利要求1所述的一种状态数据异步存储的方法,其特征是,将区块数据完成持久化存储的过程为根据共识规则判定当前区块共识通过,达到持久化上链状态后,将该区块数据和当前区块高度进行持久化存储。...

【技术特征摘要】

1.一种状态数据异步存储的方法,其特征是,包括以下步骤:

2.如权利要求1所述的一种状态数据异步存储的方法,其特征是,将状态数据先写入缓存前,将所有涉及到状态数据的变更、新增或删除的写数据构成状态数据集合,基于所述状态数据的标识,构建布隆过滤器,且将所述状态数据集合以该区块的块高n为版本,批量写入状态缓存队列,并将该版本的状态数据集合对应的布隆过滤器写入布隆过滤器缓存。

3.如权利要求1所述的一种状态数据异步存储的方法,其特征是,将区块数据完成持久化存储的过程为根据共识规则判定当前区块共识通过,达到持久化上链状态后,将该区块数据和当前区块高度进行持久化存储。

4.如权利要求1所述的一种状态数据异步存储的方法,其特征是,缓存中的状态数据进行异步持久化存储的过程包括:状态缓存队列中各版本状态数据集合,异步按照版本号大小从低版本到高版本依次进行持久化存储,每完成一个版本状态数据集合的持久化存储,从状态缓存队列中删除缓存的该版本的状态数据集合,从布隆过滤器缓存中删除该版本的布隆过滤器,更新持久化存储中当前已完成状态数据持久化存储的块高,开启下一版本状态数据集合的持久化存储,直到状态缓存队列中没有待持久化数据。

5.如权利要求1-4中任一项所述的一种状态数据异步...

【专利技术属性】
技术研发人员:史玉良郑永清张世栋仪莉王敏虾闵新平王永良张玉波
申请(专利权)人:山大地纬软件股份有限公司
类型:发明
国别省市:

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

1