CN112818014B - 区块链数据解析方法、装置和电子设备 - Google Patents

区块链数据解析方法、装置和电子设备 Download PDF

Info

Publication number
CN112818014B
CN112818014B CN202011626903.2A CN202011626903A CN112818014B CN 112818014 B CN112818014 B CN 112818014B CN 202011626903 A CN202011626903 A CN 202011626903A CN 112818014 B CN112818014 B CN 112818014B
Authority
CN
China
Prior art keywords
transaction
target
block
last
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011626903.2A
Other languages
English (en)
Other versions
CN112818014A (zh
Inventor
李伟
邱炜伟
匡立中
谭锦志
鲁琦韦华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Qulian Technology Co Ltd
Original Assignee
Hangzhou Qulian Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Qulian Technology Co Ltd filed Critical Hangzhou Qulian Technology Co Ltd
Priority to CN202011626903.2A priority Critical patent/CN112818014B/zh
Publication of CN112818014A publication Critical patent/CN112818014A/zh
Application granted granted Critical
Publication of CN112818014B publication Critical patent/CN112818014B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种区块链数据解析方法、装置和电子设备,其中,方法包括:获取目标交易对应的目标区块的区块头信息,所述目标交易为智能合约变量发生更新时生成;基于所述区块头信息确定目标区块交易信息;根据所述区块头信息和所述交易信息对所述目标交易进行上下文追溯,得到所述目标交易的上下文交易;将所述目标交易和所述上下文交易进行缓存。在用户对区块链数据进行查看时,可以获取到目标交易和上下文信息,使得查看的数据更加聚合,彼此具有关联关系,从而可以进行进一步的数据分析,提高区块链数据解析的有效性。

Description

区块链数据解析方法、装置和电子设备
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链数据解析方法、装置和电子设备。
背景技术
区块链的链上数据是安全且不可篡改的,任何人都可以通过某些访问手段对于区块交易信息进行简单的查询,从而获得链上的数据内容。但是带来的问题是,技术查询手段存在门槛,逻辑虽然简单但是操作过程可能复杂,数据本身分散,没有办法针对数据进行分析利用。
因此,现有技术中存在在进行区块数据查询或解析时得到的数据可利用性差的问题。
发明内容
本申请提供了一种区块链数据解析方法、装置和电子设备,以解决现有技术中存在在进行区块数据查询或解析时得到的数据可利用性差的问题。
第一方面,本申请提供了一种区块链数据解析方法,包括:获取目标交易对应的目标区块的区块头信息,所述目标交易为智能合约变量发生更新时生成;基于所述区块头信息确定目标区块交易信息;根据所述区块头信息和所述交易信息对所述目标交易进行上下文追溯,得到所述目标交易的上下文交易;将所述目标交易和所述上下文交易进行缓存。
可选地,所述区块头信息包括目标区块哈希值和上一区块哈希值,所述交易信息包括目标区块中的交易数量、目标交易信息和目标交易的位置信息;所述根据所述区块头信息和所述交易信息对所述目标交易进行上下文追溯包括:判断所述交易数量是否为1;当所述交易数量为1时,基于所述目标区块哈希值查询下一区块中第一条交易作为所述目标交易的下一条交易,并基于所述上一区块哈希值查询上一区块中最后一条交易信息作为所述目标交易的上一条交易。
可选地,当所述交易数量大于1时,获取所述目标交易的交易位置;判断所述目标交易是否为所述目标区块的第一条交易或最后一条交易;当所述目标交易为所述目标区块的第一交易时,基于所述上一区块哈希值查询上一区块中最后一条交易作为所述目标交易的上一条交易,并在所述目标区块中查找所述目标交易的下一条交易;当所述目标交易为所述目标区块的最后一条交易时,基于所述目标区块哈希值查询下一区块中第一条交易作为所述目标交易的下一条交易,并在所述目标区块中查找所述目标交易的上一条交易;当否时,在所述目标区块中查找所述目标交易的上一条交易和下一条交易。
可选地,所述获取目标交易对应的目标区块的区块头信息包括:获取所述目标交易的交易回执;基于所述交易回执获取目标区块的待解析区块头信息;基于哈希算法对所述待解析区块头信息进行解析,得到所述区块头信息。
可选地,所述基于哈希算法对所述待解析区块头信息进行解析包括:利用所述编码规则对所述待解析区块头信息进行编码,得到编码序列;基于哈希算法对所述编码序列进行解码得到所述区块头信息。
可选地,所述将所述目标交易和所述上下文交易进行缓存包括:按照浏览器数据结构体将所述目标交易和所述上下文交易进行缓存;获取持久化指令,所述持久化指令包括定时持久化指令和/或用户触发指令;基于所述持久化指令将缓存的目标交易和所述上下文交易存储至关系型数据库中。
可选地,在所述获取目标交易对应的目标区块的区块头信息之前,包括:基于消息监听缓存池对智能合约变量的消息列队进行监听,所述消息监听缓存池基于监听端口和指定的智能合约地址对所述智能合约变量进行监听;在监听到所述智能合约变量更新时,基于更新的智能合约变量获取所述目标交易的交易回执。
第二方面,本申请提供了一种区块链数据解析装置,包括:获取模块,用于获取目标交易对应的目标区块的区块头信息,所述目标交易为智能合约变量发生更新时生成;确定模块,用于基于所述区块头信息确定目标区块交易信息;追溯模块,用于根据所述区块头信息和所述交易信息对所述目标交易进行上下文追溯,得到所述目标交易的上下文交易;缓存模块,用于将所述目标交易和所述上下文交易进行缓存。
第三方面,本申请提供了一种电子设备,包括:处理器、通信组件、存储器和通信总线,其中,处理器、通信组件和存储器通过通信总线完成相互间的通信;所述存储器,用于存储计算机程序;所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的区块链数据解析方法。
第四方面,本申请提供了一种计算机可读存储介质,存储有计算机程序,实现第一方面所述区块链数据解析方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,在得到基于智能合约变量发生变化时产生的目标交易对应的目标区块的区块头信息后,基于该区块头信息确定区块交易信息,并基于区块头信息和交易信息对目标交易进行上下文追溯,得到目标交易的上下文交易,并将目标交易和上下文交易进行关联缓存,在用户对区块链数据进行查看时,可以获取到目标交易和上下文信息,使得查看的数据更加聚合,彼此具有关联关系,从而可以进行进一步的数据分析,提高区块链数据解析的有效性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中基于区块链的查询***结构示意图;
图2为本申请实施例中区块链结构示意图;
图3为本申请实施例中区块链网络功能结构示意图;
图4为本申请实施例中区块链数据解析方法流程示意图;
图5为本申请实施例中另一区块链数据解析方法流程示意图;
图6为本申请实施例中另一区块链数据解析方法流程示意图
图7为本申请实施例中区块链数据解析结构示意图;
图8为本申请实施例中电子设备结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一个具体实施例”,其描述了所有可能实施例的子集,但是可以理解,“一个具体实施例”,其描述了所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本文所使用的所有的技术的科学技术与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
正如背景技术所述,相关技术中当前的技术手段大致有两种,一种是利用部署在链上的智能合约的方法,通过反复的调用智能合约预设的查询方法进行变量数据的查询,该方案的缺点在于,查询的方法需要预设,如果为所有数据都预设查询方法,开销过大,而且,解析得到的数据仍然为分散数据,还存在得到的数据可利用性差的问题。
第二种是进行上链前先将上链数据存储在关系型数据库中,这种方式的缺点主要在于,没有有效利用区块链的特点对数据进行一个安全可信的保护,可能存在链上链下数据的不一致,从而失去了使用原本使用区块链技术进行数据安全有效性证明。
基于此,本申请提出了一种区块链数据解析方法,以解决现有集中的数据可利用性差的问题。
在对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
(1)交易(Transaction),等同于计算机术语“事务”,交易包括了需要提交到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中约定俗称地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
例如,部署(Deploy)交易用于向区块链网络中的结点安装指定的智能合约并准备好被调用;调用(Invoke)交易用于通过调用智能合约在区块链中追加交易的记录,并对区块链的状态数据库进行操作,包括更新操作(包括增加、删除和修改状态数据库中的键值对)和查询操作(即查询状态数据库中的键值对)。
(2)区块链(Blockchain),是由区块(Block)形成的加密的、链式的交易的存储结构。
(3)区块链网络(Blockchain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
(4)账本(Ledger),是区块链(也称为账本数据)和与区块链同步的状态数据库的统称。其中,区块链是以文件***中的文件的形式来记录交易;状态数据库是以不同类型的键(Key)值(Value)对的形式来记录区块链中的交易,用于支持区块链中交易的快速查询。
(5)智能合约(Smart Contracts),也称为链码(Chaincode)或应用代码,部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约,来对状态数据库的键值对数据进行更新或查询操作。
(6)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股权授权证明(DPoS, Delegatd Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
下面说明本发明实施例,提供的区块链网络的示例性应用,如图1 所示,图1是本发明实施例提供的区块链数据解析***示意图,包括区块链网络101、共识节点102,认证中心103、业务主体104、客户端节点104-1,业务主体105和客户端节点105-1,下面分别进行说明:
区块链网络101的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如用户终端和服务器,都可以在不需要授权的情况下接入区块链网络101;以联盟链为例,业务主体在获得授权后其下辖的电子设备(例如终端/服务器)可以接入区块链网络101,此时,成为区块链网络101 中的客户端节点。
在一些实施例中,客户端节点104可以只作为区块链网络101的观察者,即提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络101的共识节点102的功能,例如排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实施。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络101中,通过区块链网络101实现数据和业务处理过程的可信和可追溯。
区块链网络101中的共识节点接收来自不同业务主体,例如图1 中示出的业务主体104的客户端节点104-1提交的交易,执行交易以更新账本或者查询账本,执行交易的各种中间结果或最终结果可以返回业务主体104的客户端节点104-1中显示。
例如,客户端节点104-1可以订阅区块链网络101中感兴趣的事件,例如区块链网络101中特定的组织/通道中发生的交易,由共识节点102 推送相应的交易通知到客户端节点104-1,从而触发客户端节点104-1 中相应的业务逻辑。
作为区块链的示例,如图2所示,图2是本发明实施例提供的区块链网络101中区块链的结构示意图,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,新产生的交易的记录被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长,区块之间基于哈希值的链式结构保证了区块中交易的防篡改和防伪造。
下面说明本发明实施例提供的区块链网络的示例性的功能架构,如图3所示,图3是本发明实施例提供的区块链网络101的功能架构示意图,包括应用层301、共识层302、网络层303、数据层304和资源层305,下面分别进行说明:
应用层301封装了区块链网络能够实现的各种业务,包括交易的溯源、存证和验证等。
共识层302封装了区块链网络101中的节点102对区块达成一致性的机制(即共识机制)、交易管理和账本管理的功能。共识机制包括 POS、POW和DPOS等共识算法,支持共识算法的可插拔。交易管理用于验证节点101接收到的交易中携带的数字签名,验证业务主体104 的身份信息,并根据身份信息判断确认其是否具有权限进行交易(从业务主体身份管理读取相关信息);对于获得接入区块链网络101的授权的业务主体而言,均拥有认证中心颁发的数字证书,业务主体利用自己的数字证书中的私钥对提交的交易进行签名,从而声明自己的合法身份。账本管理用于维护区块链和状态数据库。对于取得共识的区块,追加到区块链的尾部;执行取得共识的区块中的交易,当交易包括更新操作时更新状态数据库中的键值对,当交易包括查询操作时查询状态数据库中的键值对并向业务主体的客户端节点返回查询结果。支持对状态数据库的多种维度的查询操作,包括:根据区块序列号(例如交易的哈希值)查询区块;根据区块哈希值查询区块;根据交易序列号查询区块;根据交易序列号查询交易;根据业务主体的账号(序列号)查询业务主体的账号数据;根据通道名称查询通道中的区块链。
网络层303封装了点对点(P2P,PointtoPoint)网络协议、数据传播机制和数据验证机制、接入认证机制和业务主体身份管理的功能。
其中,P2P网络协议实现区块链网络101中节点102之间的通信,数据传播机制保证了交易在区块链网络101中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点 102之间传输数据的可靠性;接入认证机制用于根据实际的业务场景对加入区块链网络101的业务主体的身份进行认证,并在认证通过时赋予业务主体接入区块链网络101的权限;业务主体104身份管理用于存储允许接入区块链网络101的业务主体104的身份、以及权限(例如能够发起的交易的类型)。
数据层304封装了实现账本的各种数据结构,包括以文件***中的文件实现的区块链,键值型的状态数据库和存在性证明(例如区块中交易的哈希树)。
资源层305封装了实现区块链网路101中的各个节点102的计算资源、存储资源和通信资源。
基于上述架构,本发明实施例提出了以下的实现方式。
如图4所示,本申请实施例提供了一种区块链数据解析方法,该数据解析方法应用于上述区块链网络101中。
下面,为了更清楚的说明本申请,首先将智能合约的工作原理进行简单介绍:
构建智能合约:智能合约由区块链内的多个用户共同参与制定,可用于任何用户之间的任何交易。协议当中明确规定了交易双方的权利和义务,开发人员将这些权利和义务以电子化的方式进行编程,代码中包含会触发合约自动执行的条件。
存储智能合约:一旦编码完成,这份智能合约上传至区块链网络上,即全网的每个节点都可以收到这份智能合约。
执行智能合约:智能合约会定期检查是否存在相关事件和触发条件,以满足条件的事件推送到待验证的队列中,区块链上的验证节点先对事件进行签名验证,以确保其有效性,等大多数验证节点对该事件达成共识,智能合约将成功执行,并通知给用户。
参见图4,本申请中的区块链数据解析方法可以包括如下步骤:
S401,获取目标交易对应的目标区块的区块头信息,所述目标交易为智能合约变量发生更新时生成;
S402,基于所述区块头信息确定目标区块交易信息;
S403,根据所述区块头信息和所述交易信息对所述目标交易进行上下文追溯,得到所述目标交易的上下文交易;
S404,将所述目标交易和所述上下文交易进行缓存。
通过步骤S401-步骤S404,在得到基于智能合约变量发生变化时产生的目标交易对应的目标区块的区块头信息后,基于该区块头信息确定区块交易信息,并基于区块头信息和交易信息对目标交易进行上下文追溯,得到目标交易的上下文交易,并将目标交易和上下文交易进行关联缓存,在用户对区块链数据进行查看时,可以获取到目标交易和上下文信息,使得查看的数据更加聚合,彼此具有关联关系,从而可以进行进一步的数据分析,提高区块链数据解析的有效性。
针对步骤S401中的技术方案,在智能合约变量发生更新时生成交易的交易回执,基于交易回执并从目标交易对应的目标区块中取出区块头信息,对区块头进行解析,得到目标区块的区块头信息,其中,区块头信息可以包括目标区块哈希值和上一区块哈希值。
针对步骤S402中的技术方案,在得到解析的区块头信息之后,可以通过区块头信息确定目标区块的区块信息,进而解析得到目标区块的交易信息,例如,包括目标交易信息,目标区块中的交易数量以及目标交易在目标区块中的位置信息。
针对步骤S403中的技术方案,可以利用交易的时间戳或者交易的排序查找目标交易的上下文信息,并且,还可以利用位置信息、交易数量以及区块头信息中的目标区块哈希值和上一区块哈希值在本区块和其他区块中查找目标交易的上下文信息。示例性的,上下文交易可以包括目标交易紧邻的上一个交易和下一个交易,也可以包括上N个交易和下M个交易,其中,N和M为大于或等于1的正整数。具体的,可以基于目标交易的位置信息和区块头信息中的目标区块哈希值确定下一交易,可以基于上一区块哈希值确定目标加以的上一交易。
针对步骤S403中的技术方案,在得到上一交易和下一交易之后,将目标交易和上下文交易的哈希值进行缓存。可以保证区块链上的数据不下链,随时上传至消息队列,在需要进行查看或下载时,可以随时持久化值数据库,数据先进行缓存,再根据需求进行持久化存储,提高查询效率的同时避免了数据先入库再上链的问题。
作为示例性的实施例,区块头信息通常为加密的,因此,获取区块头信息需要对区块头信息进行解析,如图5所示,可以包括如下步骤:
S501,获取所述目标交易的交易回执,所述变量数据为智能合约变量发生更新时生成。用户部署智能合约,并进行若干次数据上链智能合约调用操作,实时对智能合约进行监听,在智能合约变量更新时,实时的获取变量数据的交易回执,例如,在发生交易时,可以实时获取交易回执。
S502,基于所述交易回执获取目标区块的待解析区块头信息。作为示例性的实施例,可以基于交易回执获取目标区块的待解析区块头信息。示例性的,交易回执包括变量数据所在的目标区块的标识信息,可以基于目标区块的标识信息查找目标区块的区块头信息,在本实施例中,得到的区块头信息为反解析交易信息,即为加密信息,利用编码规则将待解析的区块头信息进行序列化,得到加密字符串,将字符串进行反序列化,获得区块头信息。作为示例性的实施例,区块头信息可以包括目标区块哈希值和上一区块哈希值等信息。
S503,基于哈希算法对所述待解析区块头信息进行解析,得到所述区块头信息。作为示例性的实施例,基于哈希算法对待解析区块头信息进行解析,具体的,可以建立区块头数据结构体,暂存需要解码的区块头信息,使用标准序列化方法对区块头数据结构体内的区块头信息进行序列化,可以采用编码规则对区块投信息进行编码,得到字符串序列,例如,可以针对区块头中的16进制字符串,采用抽象语法标记对区块头信息进行表示和编码,获得序列化数据,之后采用哈希算法对所述待解析区块头信息进行解析,例如,可以采用sha256哈希算法进行序列化数组的哈希解码,将解码后的字符串即目标区块哈希值进行16进制转换并返回结果。基于目标区块哈希值查询区块体,例如,可以将目标区块体中的交易信息作为所述变量数据,在本实施例中,还可以变量数据还可以包括区块体中的其他信息,例如,目标区块交易数量信息和所述交易的位置信息。
智能合约变量发生更新时生成交易回执,基于交易回执从目标区块中取出区块头信息,通过区块头信息确定目标区块的区块信息,进而解析得到变量数据,可以在智能合约变量更新时,通过交易回执实时解析变量数据,在将存储在区块链上的数据实时的解析,达到可以进行进一步的数据分析的同时,可以避免链上链下数据不一致的信任安全问题。并且,无需反复的调用智能合约预设的查询方法进行变量数据的查询,节省计算资源。
作为示例性的实施例,交易信息通常按照交易时间戳在区块中按照交易的顺序进行排列。所述区块头信息包括目标区块哈希值和上一区块哈希值;根据所述区块头信息和交易信息对所述目标交易进行上下文追溯包括:
判断所述交易数量是为1,判断目标区块中是否仅存一条交易,当所述交易数量为1时,基于所述目标区块哈希值查询下一区块中第一条交易作为所述目标交易的下一条交易,并基于所述上一区块哈希值查询上一区块中最后一条交易信息作为所述目标交易的上一条交易。具体的,由于目标区块哈希值在下一区块有存储,因此,可以基于目标区块哈希值查询下一区块中的第一条交易作为目标交易的下一条交易。由于目标区块中存储的上一区块哈希值为上一区块的哈希值,因此,可以通过上一区块哈希值在上一区块中查找上一区块中的最一条交易作为目标交易的上一条交易。
作为示例性的实施例,在目标区块中存在多条交易时,可以先查询目标交易的位置信息,并基于该位置信息确定上下文交易的查找范围,示例性的,当所述交易数量大于1时,获取所述目标交易的交易位置;
判断所述目标交易是否为所述目标区块的第一条交易或最后一条交易;当所述目标交易为所述目标区块的第一交易时,基于所述上一区块哈希值查询上一区块中最后一条交易作为所述目标交易的上一条交易,并在所述目标区块中查找所述目标交易的下一条交易;当所述目标交易为所述目标区块的最后一条交易时,基于所述目标区块哈希值查询下一区块中第一条交易作为所述目标交易的下一条交易,并在所述目标区块中查找所述目标交易的上一条交易。具体的,可以按照上述实施例中在上一区块中查找最后一条交易和在下一区块中查找第一条交易的方式查找。当目标交易不为所述目标区块的第一条交易或最后一条交易,即目标区块中存在多条交易,且目标交易处于多条交易的中间位置,在所述目标区块中查找所述目标交易的上一条交易和下一条交易。具体的,可以基于交易发生的时间戳查找上一条交易和下一条交易。
为了方便用户的查询和展示,作为示例性的实施例,可以将数据变量缓存至区块链浏览器的数据结构体中,以下数据缓存与存储流程均以数据消费者是区块链浏览器为例进行说明,具体的,如图6所示,可以包括如下步骤:
S601,按照浏览器数据结构体将所述目标交易和所述上下文交易进行缓存。示例性的,在得到目标交易和上下文交易之后,可以利用消息队列将合约中的目标交易和上下文交易上传到上层应用,按照浏览器数据结构体将所述目标交易和所述上下文交易进行缓存,以供上层应用如区块链浏览器进行查询和展示。
S602,获取持久化指令。
S603,基于所述持久化指令将缓存的目标交易和所述上下文交易存储至关系型数据库中。
示例性的,在对目标交易和上下文交易按照上述数据结构进行缓存之后,可以基于实际需求,确定是否需要持久化至关系型数据库中。在需要进行持久化时,可以获取持久化指令,并基于持久化指令在关系型数据库中将目标交易和上下文信息进行持久化,并返回前端页面进行展示。
作为可选的实施例,浏览器数据结构体可以采用如下结构:
Figure BDA0002879399540000131
Figure BDA0002879399540000141
作为示例性的实施例,对于智能合约动态变量的监听,可以采用消息监听缓存池,通过对合约变量的消息队列进行监听,获取链上实时的变量解析数据更新,具体的,基于消息监听缓存池对智能合约变量的消息列队进行监听,所述消息监听缓存池基于监听端口和指定的智能合约地址对所述智能合约变量进行监听;在监听到所述智能合约变量更新时,基于更新的智能合约变量获取所述更新标识。示例性的,消息监听缓存池可以为预先建立的,具体的,消息监听缓存池的建立可以采用如下方式:选择需要监听的智能合约,并指定监听端口,指定区块链上部署智能合约地址,基于监听端口、智能合约地址建立监听连接,在智能合约变量更新时,例如,发生新的交易时,可以获取更新标识,例如交易回执,在消息监听缓存池中获取变量数据的更新标识,执行上述区块链数据解析方法的实施例。
本申请实施例还提供了一种区块链数据解析装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图7所示,该装置主要包括:
获取模块701,用于获取目标交易对应的目标区块的区块头信息,所述目标交易为智能合约变量发生更新时生成;
确定模块702,用于基于所述区块头信息确定目标区块交易信息;
追溯模块703,用于根据所述区块头信息和所述交易信息对所述目标交易进行上下文追溯,得到所述目标交易的上下文交易;
缓存模块704,用于将所述目标交易和所述上下文交易进行缓存。
基于同一构思,本申请实施例中还提供了一种电子设备,如图8 所示,该电子设备主要包括:处理器801、通信组件802、存储器803 和通信总线804,其中,处理器801、通信组件802和存储器803通过通信总线804完成相互间的通信。其中,存储器803中存储有可被至处理器801执行的程序,处理器801执行存储器803中存储的程序,实现如下步骤:
S1,获取目标交易对应的目标区块的区块头信息,所述目标交易为智能合约变量发生更新时生成;
S2,基于所述区块头信息确定目标区块交易信息;
S3,根据所述区块头信息和所述交易信息对所述目标交易进行上下文追溯,得到所述目标交易的上下文交易;
S4,将所述目标交易和所述上下文交易进行缓存。
上述电子设备中提到的通信总线804可以是外设部件互连标准 (PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线804可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信组件802用于上述电子设备与其他设备之间的通信。
存储器803可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器801的存储装置。
上述的处理器801可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称 NP)等,还可以是数字信号处理器(Digital Signal Processing,简称 DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称 ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称 FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述区块链数据解析方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)) 或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种区块链数据解析方法,其特征在于,包括:
获取目标交易对应的目标区块的区块头信息,所述目标交易为智能合约变量发生更新时生成;
基于所述区块头信息确定目标区块交易信息;
根据所述区块头信息和所述交易信息对所述目标交易进行上下文追溯,得到所述目标交易的上下文交易;
将所述目标交易和所述上下文交易进行缓存;
其中,所述区块头信息包括目标区块哈希值和上一区块哈希值,所述交易信息包括目标区块中的交易数量、目标交易信息和目标交易的位置信息;所述根据所述区块头信息和所述交易信息对所述目标交易进行上下文追溯包括:判断所述交易数量是否为1;当所述交易数量为1时,基于所述目标区块哈希值查询下一区块中第一条交易作为所述目标交易的下一条交易,并基于所述上一区块哈希值查询上一区块中最后一条交易信息作为所述目标交易的上一条交易;当所述交易数量大于1时,获取所述目标交易的交易位置;判断所述目标交易是否为所述目标区块的第一条交易或最后一条交易;当所述目标交易为所述目标区块的第一交易时,基于所述上一区块哈希值查询上一区块中最后一条交易作为所述目标交易的上一条交易,并在所述目标区块中查找所述目标交易的下一条交易;当所述目标交易为所述目标区块的最后一条交易时,基于所述目标区块哈希值查询下一区块中第一条交易作为所述目标交易的下一条交易,并在所述目标区块中查找所述目标交易的上一条交易;当否时,在所述目标区块中查找所述目标交易的上一条交易和下一条交易。
2.如权利要求1所述的区块链数据解析方法,其特征在于,所述获取目标交易对应的目标区块的区块头信息包括:
获取所述目标交易的交易回执;
基于所述交易回执获取目标区块的待解析区块头信息;
基于哈希算法对所述待解析区块头信息进行解析,得到所述区块头信息。
3.如权利要求2所述的区块链数据解析方法,其特征在于,所述基于哈希算法对所述待解析区块头信息进行解析包括:
利用编码规则对所述待解析区块头信息进行编码,得到编码序列;
基于哈希算法对所述编码序列进行解码得到所述区块头信息。
4.如权利要求1所述的区块链数据解析方法,其特征在于,所述将所述目标交易和所述上下文交易进行缓存包括:
按照浏览器数据结构体将所述目标交易和所述上下文交易进行缓存;
获取持久化指令,所述持久化指令包括定时持久化指令和/或用户触发指令;
基于所述持久化指令将缓存的目标交易和所述上下文交易存储至关系型数据库中。
5.如权利要求1-4任意一项所述的区块链数据解析方法,其特征在于,在所述获取目标交易对应的目标区块的区块头信息之前,包括:
基于消息监听缓存池对智能合约变量的消息列队进行监听,所述消息监听缓存池基于监听端口和指定的智能合约地址对所述智能合约变量进行监听;
在监听到所述智能合约变量更新时,基于更新的智能合约变量获取所述目标交易的交易回执。
6.一种区块链数据解析装置,其特征在于,包括:
获取模块,用于获取目标交易对应的目标区块的区块头信息,所述目标交易为智能合约变量发生更新时生成;
确定模块,用于基于所述区块头信息确定目标区块交易信息;
追溯模块,用于根据所述区块头信息和所述交易信息对所述目标交易进行上下文追溯,得到所述目标交易的上下文交易;
缓存模块,用于将所述目标交易和所述上下文交易进行缓存;
其中,所述区块头信息包括目标区块哈希值和上一区块哈希值,所述交易信息包括目标区块中的交易数量、目标交易信息和目标交易的位置信息,所述追溯模块还用于:判断所述交易数量是否为1;当所述交易数量为1时,基于所述目标区块哈希值查询下一区块中第一条交易作为所述目标交易的下一条交易,并基于所述上一区块哈希值查询上一区块中最后一条交易信息作为所述目标交易的上一条交易;当所述交易数量大于1时,获取所述目标交易的交易位置;判断所述目标交易是否为所述目标区块的第一条交易或最后一条交易;当所述目标交易为所述目标区块的第一交易时,基于所述上一区块哈希值查询上一区块中最后一条交易作为所述目标交易的上一条交易,并在所述目标区块中查找所述目标交易的下一条交易;当所述目标交易为所述目标区块的最后一条交易时,基于所述目标区块哈希值查询下一区块中第一条交易作为所述目标交易的下一条交易,并在所述目标区块中查找所述目标交易的上一条交易;当否时,在所述目标区块中查找所述目标交易的上一条交易和下一条交易。
7.一种电子设备,其特征在于,包括:处理器、通信组件、存储器和通信总线,其中,处理器、通信组件和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现权利要求1-5任一项所述区块链数据解析方法。
8.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5任一项所述区块链数据解析方法。
CN202011626903.2A 2020-12-31 2020-12-31 区块链数据解析方法、装置和电子设备 Active CN112818014B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011626903.2A CN112818014B (zh) 2020-12-31 2020-12-31 区块链数据解析方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011626903.2A CN112818014B (zh) 2020-12-31 2020-12-31 区块链数据解析方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN112818014A CN112818014A (zh) 2021-05-18
CN112818014B true CN112818014B (zh) 2022-07-26

Family

ID=75856264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011626903.2A Active CN112818014B (zh) 2020-12-31 2020-12-31 区块链数据解析方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN112818014B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113268546B (zh) * 2021-06-15 2022-04-01 中国电子科技网络信息安全有限公司 一种区块链账本数据抓取解析方法
CN113436017B (zh) * 2021-07-07 2022-06-21 支付宝(杭州)信息技术有限公司 交易处理方法、装置及设备
CN117527832A (zh) * 2024-01-03 2024-02-06 杭州趣链科技有限公司 一种区块链的交易排序方法、装置、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102085997B1 (ko) * 2019-01-30 2020-04-24 연대겸 블록체인 기반의 부동산 거래 서비스 방법 및 시스템
CN111104429A (zh) * 2019-12-19 2020-05-05 中思博安科技(北京)有限公司 一种数据访问方法及装置
CN111445333A (zh) * 2020-03-26 2020-07-24 腾讯科技(深圳)有限公司 区块生成方法、装置、计算机设备以及存储介质
WO2020191935A1 (zh) * 2019-03-22 2020-10-01 深圳市网心科技有限公司 一种区块链跨链通信方法、***、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11057189B2 (en) * 2019-07-31 2021-07-06 Advanced New Technologies Co., Ltd. Providing data authorization based on blockchain

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102085997B1 (ko) * 2019-01-30 2020-04-24 연대겸 블록체인 기반의 부동산 거래 서비스 방법 및 시스템
WO2020191935A1 (zh) * 2019-03-22 2020-10-01 深圳市网心科技有限公司 一种区块链跨链通信方法、***、电子设备及存储介质
CN111104429A (zh) * 2019-12-19 2020-05-05 中思博安科技(北京)有限公司 一种数据访问方法及装置
CN111445333A (zh) * 2020-03-26 2020-07-24 腾讯科技(深圳)有限公司 区块生成方法、装置、计算机设备以及存储介质

Also Published As

Publication number Publication date
CN112818014A (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
WO2021073452A1 (zh) 基于区块链网络的数据处理方法、装置、电子设备及存储介质
CN112818014B (zh) 区块链数据解析方法、装置和电子设备
CN112506987B (zh) 基于区块链的查询方法、装置、设备及存储介质
CN110598434B (zh) 基于区块链网络的房屋信息处理方法、装置、电子设备及存储介质
CN110769274B (zh) 基于区块链网络的直播信息处理方法、装置、电子设备及存储介质
US10282461B2 (en) Structure-based entity analysis
US11095705B2 (en) Content distributed over secure channels
CN112800129A (zh) 区块状态更新方法、装置、***和电子设备
US10192262B2 (en) System for periodically updating backings for resource requests
CN112308561A (zh) 基于区块链的存证方法、***、计算机设备和存储介质
CN111177246A (zh) 一种业务数据的处理方法及装置
CN111064725A (zh) 一种代码零入侵接口校验方法和校验装置
CN112712452A (zh) 基于区块链的审批信息处理方法和装置
CN112235301A (zh) 访问权限的验证方法、装置和电子设备
CN112702419A (zh) 基于区块链的数据处理方法、装置、设备和存储介质
CN111597537B (zh) 基于区块链网络的证书签发方法、相关设备及介质
CN112837023A (zh) 机构的业务协同平台、方法、装置及电子设备
CN112699799A (zh) 基于区块链的人脸识别方法、装置、设备和存储介质
CN112560005A (zh) 身份可信服务***、方法、电子设备和计算机可读介质
US11997216B2 (en) Systems and methods for maintaining secure, encrypted communications across distributed computer networks by linking cryptography-based digital repositories in order to perform blockchain operations in decentralized applications
US20230269086A1 (en) Systems and methods for using secure, encrypted communications across distributed computer networks to efficiently index blockchain states for performing blockchain operations in decentralized applications using cryptography-based digital repositories
US20230306128A1 (en) Systems and methods for using secure, encrypted communications across distributed computer networks to provide variable resiliency when indexing blockchain states for performing blockchain operations in decentralized applications using cryptography-based digital repositories
US20230269085A1 (en) Systems and methods for using secure, encrypted communications across distributed computer networks to efficiently update cryptography-based digital repositories for performing blockchain operations in decentralized applications
US11782823B2 (en) Automatically capturing weather data during engineering tests
CN112597512B (zh) 基于区块链的温度数据管控方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant