[发明专利]追块同步方法、装置、电子设备及计算机存储介质有效
申请号: | 202010465554.4 | 申请日: | 2020-05-28 |
公开(公告)号: | CN111787059B | 公开(公告)日: | 2023-03-03 |
发明(设计)人: | 郭晋岱;侯德光;张一锋;李宏;范贵甫 | 申请(专利权)人: | 中钞信用卡产业发展有限公司杭州区块链技术研究院 |
主分类号: | H04L67/1095 | 分类号: | H04L67/1095;H04L67/1097;H04L67/5682;G06Q40/04 |
代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 彭琼 |
地址: | 310013 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 同步 方法 装置 电子设备 计算机 存储 介质 | ||
本发明实施例提供了一种追块同步方法、装置、电子设备及计算机存储介质。该追块同步方法包括:基于多个线程,并发获取区块链中不同区块的区块数据;基于各个区块的区块数据,获取各个区块内的存证数据;基于各个区块中任一区块的区块高度标识信息,判断任一区块的前一个区块的存证数据是否已经存储至数据库;若确定前一个区块的存证数据已经存储至数据库,则将任一区块的存证数据存储至数据库。根据本发明实施例的追块同步方法、装置、电子设备及计算机存储介质,能够提高追块同步的效率。
技术领域
本发明属于追块同步技术领域,尤其涉及一种追块同步方法、装置、电子设备及计算机存储介质。
背景技术
区块链上的存证数据与智能合约绑定。每个智能合约是一段运行在区块链上程序,具有独立的存储区域。智能合约能够读写属于自己的存储区域内的数据,但无法操作其他智能合约存储区域内的数据。现有市场中,通过智能合约的接口获取业务数据的性能不高。
基于区块链的存证应用经常需要对数据进行大量的、复杂的查询操作,此类操作难以通过智能合约来实现。为了解决这一问题,可以在业务应用层与区块链之间引入中间件。中间件维护了一个传统的关系型或非关系型数据库,以供上层的业务应用进行查询操作。同时,中间件不断地将区块链上的数据同步到数据库中,保证数据库中的数据与区块链上一致。
中间件在同步区块链数据的时候,中间件本地数据较少,需要从第1块开始快速同步区块链上的数据,直到中间件和区块链节点处理的账本数据量基本一致,这个过程我们称之为追块。追块会发生在很多时刻,比如新部署、暂停后重启、前一个块数据量太大。由于区块链是一个分布式的账本,具有状态机的特性,区块数据是一个接一个连续的产出,中间件同步过程也是一个接一个顺序的同步。
现有的区块链存证系统追块同步方案总体思路如下:
首先,查询已经同步到了哪一个区块,确定下一个需要同步的区块高度。然后,通过区块链节点获取区块内的交易信息,并分析出存证智能合约地址,通过存证智能合约地址获取相应的存证信息。最后,获取完该区块内的所有存证信息,继续同步下一个区块。但是,该方案追块同步的效率低下。
因此,如何提高追块同步的效率是本领域技术人员亟需解决的技术问题。
发明内容
本发明实施例提供一种追块同步方法、装置、电子设备及计算机存储介质,能够提高追块同步的效率。
第一方面,本发明实施例提供一种追块同步方法,包括:
基于多个线程,并发获取区块链中不同区块的区块数据;
基于各个区块的区块数据,获取各个区块内的存证数据;
基于各个区块中任一区块的区块高度标识信息,判断任一区块的前一个区块的存证数据是否已经存储至数据库;
若确定前一个区块的存证数据已经存储至数据库,则将任一区块的存证数据存储至数据库。
可选的,基于各个区块的区块数据,获取各个区块内的存证数据,包括:
基于各个区块的区块数据,获取各个区块内的智能合约;
基于各个智能合约和预设的映射关系,获取各个区块内的存证数据;其中,预设的映射关系为智能合约和存证数据之间的映射关系。
可选的,基于各个区块的区块数据,获取各个区块内的智能合约,包括:
基于各个区块的区块数据,确定各个区块的智能合约地址;
根据各个区块的智能合约地址,获取各个区块内的智能合约。
可选的,基于多个线程,并发获取区块链中不同区块的区块数据,包括:
确定区块的区块高度范围;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中钞信用卡产业发展有限公司杭州区块链技术研究院,未经中钞信用卡产业发展有限公司杭州区块链技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010465554.4/2.html,转载请声明来源钻瓜专利网。