区块链数据的链上链下协同方法技术

技术编号:39869522 阅读:13 留言:0更新日期:2023-12-30 12:58
本发明专利技术涉及区块链技术领域,具体提供一种区块链数据的链上链下协同方法

【技术实现步骤摘要】
区块链数据的链上链下协同方法、系统、终端及存储介质


[0001]本专利技术属于区块链
,具体涉及一种区块链数据的链上链下协同方法

系统

终端及存储介质


技术介绍

[0002]区块链通过分布式数据存储

点对点传输

共识机制以及加密算法等多种技术的集成,具有数据加密存储且不可篡改,操作记录留痕可追溯等特点,可有效解决传统交易模式下数据在流转过程中的造假行为,从而构建可信交易环境,打造可信社会

区块链在能源领域具有广泛的应用潜力,通过区块链技术可以更好地协调分布式能源资源数据,有效进行数据确权,方便进行风险管控,大幅提高资源利用率,降低运营成本

[0003]由于能源数据具有体量大

数据模型复杂以及标准不统一等特性,能源数据只在链上存储往往查询效率低下,尤其对于复杂查询,对区块链整体性能影响较大,已经无法满足正常的查询及数据分析功能,而目前的链上链下数据协同处理机制只把数据导出到链下数据库中存储

[0004]在将链上数据导入链下存储时,数据处理过程中可能会存在数据丢失

数据损坏等问题,或者链下存储的历史数据由于处理不当与链上数据不一致

这就会导致数据失真,失真的数据会严重影响后续的分析结果


技术实现思路

[0005]针对现有技术存在的无法对链上链下数据进行协同导致链下数据与链上数据存在差异,本专利技术提供一种区块链数据的链上链下协同方法

系统

终端及存储介质,以解决上述技术问题

[0006]第一方面,本专利技术提供一种区块链数据的链上链下协同方法,包括:在第一模式下缓存服务接收区块链推送的数据,将所述数据解析成区块结构后对各区块数据进行哈希值校验,将通过校验的数据写入链下数据库;在第二模式下缓存服务定期从区块链抓取数据,通过比对链下数据库的最大区块高度与区块链的最大区块高度的一致性,若两者不一致则向区块链抓取差异数据并将差异数据经哈希值校验后同步至链下数据库

[0007]进一步的,在第一模式下缓存服务接收区块链推送的数据,将所述数据解析成区块结构后对各区块数据进行哈希值校验,将通过校验的数据写入链下数据库,包括:将缓存服务的工作模式配置为第一模式并配置区块最大传输区间,在所述第一模式下缓存服务接收区块链推送的数据,所述数据在最大传输区间内;缓存服务将接收的数据解析成区块结构;获取区块结构中的区块头,并从所述区块头中提取第一哈希值;计算所述第一哈希值对应的数据块的实际哈希值作为第二哈希值,并比对第一哈希值与第二哈希值的一致性;
若第一哈希值与第二哈希值一致则将所述数据写入链下数据库;若第一哈希值与第二哈希值不一致则将发送数据的区块链节点判定为异常节点,并生成异常节点的告警提示

[0008]进一步的,在第二模式下缓存服务定期从区块链抓取数据,通过比对链下数据库的最大区块高度与区块链的最大区块高度的一致性,若两者不一致则向区块链抓取差异数据并将差异数据经哈希值校验后同步至链下数据库,包括:将缓存服务的工作模式配置为第二模式并配置时间间隔和拉取区块数量,以使缓存服务定期从区块链拉取相应数量的数据;定期查询链下数据库最大区块高度并将最新高度更新至缓存的记录文件中;获取区块链的最大区块高度,并区块链的最大区块高度大于记录文件中的最大区块高度,则根据配置的拉取区块数量计算本轮需要同步的目标区块数量;向区块链节点发送数据同步请求,抓取目标区块数量的数据

[0009]进一步的,在向链下数据库写入数据时,所述方法还包括:将数据解析成为链下数据库要求的存储结构,进行异步入库;对写入链下数据库失败的数据区块进行再次写入

[0010]进一步的,所述方法还包括:定时获取链下数据库中的数据,并从中解析第一关键字段;从区块链的相应数据中解析第二关键字段;若第一关键字段与第二关键字段不匹配,则判定本轮获取的数据为异常数据

[0011]第二方面,本专利技术提供一种区块链数据的链上链下协同系统,包括:第一协同单元,用于在第一模式下缓存服务接收区块链推送的数据,将所述数据解析成区块结构后对各区块数据进行哈希值校验,将通过校验的数据写入链下数据库;第二协同单元,用于在第二模式下缓存服务定期从区块链抓取数据,通过比对链下数据库的最大区块高度与区块链的最大区块高度的一致性,若两者不一致则向区块链抓取差异数据并将差异数据经哈希值校验后同步至链下数据库

[0012]进一步的,所述第一协同单元包括:第一配置模块,用于将缓存服务的工作模式配置为第一模式并配置区块最大传输区间,在所述第一模式下缓存服务接收区块链推送的数据,所述数据在最大传输区间内;数据解析模块,用于缓存服务将接收的数据解析成区块结构;哈希提取模块,用于获取区块结构中的区块头,并从所述区块头中提取第一哈希值;哈希比对模块,用于计算所述第一哈希值对应的数据块的实际哈希值作为第二哈希值,并比对第一哈希值与第二哈希值的一致性;数据写入模块,用于若第一哈希值与第二哈希值一致则将所述数据写入链下数据库;节点告警模块,用于若第一哈希值与第二哈希值不一致则将发送数据的区块链节点判定为异常节点,并生成异常节点的告警提示

[0013]进一步的,所述第二协同单元包括:第二配置模块,用于将缓存服务的工作模式配置为第二模式并配置时间间隔和拉
取区块数量,以使缓存服务定期从区块链拉取相应数量的数据;高度缓存模块,用于定期查询链下数据库最大区块高度并将最新高度更新至缓存的记录文件中;高度比对模块,用于获取区块链的最大区块高度,并区块链的最大区块高度大于记录文件中的最大区块高度,则根据配置的拉取区块数量计算本轮需要同步的目标区块数量;数据抓取模块,用于向区块链节点发送数据同步请求,抓取目标区块数量的数据

[0014]进一步的,在向链下数据库写入数据时,所述系统还执行:将数据解析成为链下数据库要求的存储结构,进行异步入库;对写入链下数据库失败的数据区块进行再次写入

[0015]进一步的,所述系统还执行:定时获取链下数据库中的数据,并从中解析第一关键字段;从区块链的相应数据中解析第二关键字段;若第一关键字段与第二关键字段不匹配,则判定本轮获取的数据为异常数据

[0016]第三方面,提供一种终端,包括:处理器

存储器,其中,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法

[0017]第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法

[0018]本专利技术的有益效果在于,本专利技术提供的区块链数据的链上本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种区块链数据的链上链下协同方法,其特征在于,包括:在第一模式下缓存服务接收区块链推送的数据,将所述数据解析成区块结构后对各区块数据进行哈希值校验,将通过校验的数据写入链下数据库;在第二模式下缓存服务定期从区块链抓取数据,通过比对链下数据库的最大区块高度与区块链的最大区块高度的一致性,若两者不一致则向区块链抓取差异数据并将差异数据经哈希值校验后同步至链下数据库
。2.
根据权利要求1所述的方法,其特征在于,在第一模式下缓存服务接收区块链推送的数据,将所述数据解析成区块结构后对各区块数据进行哈希值校验,将通过校验的数据写入链下数据库,包括:将缓存服务的工作模式配置为第一模式并配置区块最大传输区间,在所述第一模式下缓存服务接收区块链推送的数据,所述数据在最大传输区间内;缓存服务将接收的数据解析成区块结构;获取区块结构中的区块头,并从所述区块头中提取第一哈希值;计算所述第一哈希值对应的数据块的实际哈希值作为第二哈希值,并比对第一哈希值与第二哈希值的一致性;若第一哈希值与第二哈希值一致则将所述数据写入链下数据库;若第一哈希值与第二哈希值不一致则将发送数据的区块链节点判定为异常节点,并生成异常节点的告警提示
。3.
根据权利要求1所述的方法,其特征在于,在第二模式下缓存服务定期从区块链抓取数据,通过比对链下数据库的最大区块高度与区块链的最大区块高度的一致性,若两者不一致则向区块链抓取差异数据并将差异数据经哈希值校验后同步至链下数据库,包括:将缓存服务的工作模式配置为第二模式并配置时间间隔和拉取区块数量,以使缓存服务定期从区块链拉取相应数量的数据;定期查询链下数据库最大区块高度并将最新高度更新至缓存的记录文件中;获取区块链的最大区块高度,并区块链的最大区块高度大于记录文件中的最大区块高度,则根据配置的拉取区块数量计算本轮需要同步的目标区块数量;向区块链节点发送数据同步请求,抓取目标区块数量的数据
。4.
根据权利要求1所述的方法,其特征在于,在向链下数据库写入数据时,所述方法还包括:将数据解析成为链下数据库要求的存储结构,进行异步入库;对写入链下数据库失败的数据区块进行再次写入
。5.
根据权利要求1所述的方法,其特征在于,所述方法还包括:定时获取链下数据库中的数据,并从中解析第一关键字段;从区块链的相应数据中解析第二关...

【专利技术属性】
技术研发人员:郑凯邢宏伟李向阳齐庆庆戴振利黄善云张建辉薛念明李恩堂徐崇豪
申请(专利权)人:山东区块链研究院
类型:发明
国别省市:

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

1