本说明书实施例公开了一种区块链事件处理方法、装置以及相应的电子设备、计算机可读存储介质,所述方法包括:获得链外数据库中的指定区块高度的待处理区块以及上述待处理区块的交易回执;依据上述交易回执包含的智能合约事件类型,对智能合约事件进行处理。本申请对区块链待处理区块及其交易回执所产生的事件,以及解析并处理以智能合约方式产生的事件,可以有效扩展至链外应用场景,提高链外应用处理区块链数据能力。用处理区块链数据能力。用处理区块链数据能力。
【技术实现步骤摘要】
一种区块链事件处理方法和装置
[0001]本说明书涉及区块链
,尤其涉及一种区块链事件处理方法、装置以及相应的电子设备、计算机可读存储介质。
技术介绍
[0002]区块链将数据区块以顺序相连的方式组合成的链式结构,具有数据不可篡改性和去中心化两大特性,使得其所记录的信息更加真实可靠,可以解决互信的问题。智能合约作为以太坊区块链业务逻辑实现载体,其事件机制允许触发调用事件参数存储到交易日志中,以便于合约地址关联,以便监听到事件发生时,通过事件回调函数执行下一步操作。
[0003]因此,在区块链数据的链外同步场景中,如何使得智能合约在链外应用中实现业务逻辑处理,实现区块链事件处理,是需要解决的技术问题。
技术实现思路
[0004]本说明书实施例的目的是针对上述问题,提供一种区块链事件处理方法、装置以及相应的电子设备、存储介质。
[0005]为解决上述技术问题,本说明书实施例是这样实现的:
[0006]第一方面,提出了一种区块链事件处理方法,包括:
[0007]获得链外数据库中的指定区块高度的待处理区块以及所述待处理区块的交易回执;
[0008]依据所述交易回执包含的智能合约事件类型,对所述智能合约事件进行处理。
[0009]进一步地,在创建并部署所述智能合约至所述区块链之前,保存所述智能合约的abi文件至所述链外数据库。
[0010]进一步地,所述获得链外数据库中的指定区块高度的待处理区块及所述待处理区块的交易回执,包括:
[0011]获得所述链外数据中记录的所述已处理区块高度;
[0012]依据所述已处理区块高度,获得所述指定区块高度的待处理区块;
[0013]当所述链外数据库已保存所述待处理区块的全部所述交易回执时,获得所述待处理区块的所述交易回执。
[0014]进一步地,所述智能合约事件类型包括合约创建事件;和/或,当所述交易回执包含的智能合约事件类型为合约创建事件,对所述智能合约事件进行处理的过程,包括保存合约名称、合约版本和合约地址至所述链外数据库。
[0015]进一步地,所述智能合约事件类型包括合约其他事件;和/或,当所述交易回执包含的智能合约事件类型为合约其他事件,对所述智能合约事件进行处理的过程,包括:
[0016]依据所述交易回执中所述事件对应的合约地址,从所述链外数据库中获得合约版本和合约名称;
[0017]依据所述合约名称和所述合约版本,从所述链外数据库中获得所述智能合约的
abi文件;
[0018]依据所述智能合约的abi文件对所述事件进行解析。
[0019]进一步地,当所述交易回执包含的智能合约事件类型为合约其他事件,对所述智能合约事件进行处理的过程,还包括:将解析后的事件按照所述智能合约的业务处理逻辑进行处理,并更新所述链外数据库。
[0020]进一步地,按照所述待处理区块中的交易哈希顺序,对所述待处理区块的所述交易回执中的事件进行处理;和/或,所述链外数据库包括合约表、abi文件表和业务表。
[0021]第二方面,提出了一种区块链事件处理装置,包括:
[0022]第一模块,能够获得链外数据库中的指定区块高度的待处理区块及所述待处理区块的交易回执;
[0023]第二模块,能够依据所述交易回执包含的智能合约事件类型,对所述智能合约事件进行处理。
[0024]第三方面,提出了一种电子设备,包括:处理器;以及
[0025]被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使得所述处理器执行第一方面所述的方法。
[0026]第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行第一方面所述的方法。
[0027]本说明书可以达到至少以下技术效果:
[0028]本申请首先在区块链中获得链外数据库中的指定区块高度的待处理区块以及上述待处理区块的交易回执,依据上述交易回执包含的智能合约事件类型,对智能合约事件进行处理。本申请对区块链待处理区块及其交易回执所产生的事件,以及解析并处理以智能合约方式产生的事件,可以有效扩展至链外应用场景,提高链外应用处理区块链数据能力。
附图说明
[0029]为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0030]图1为本说明书实施例提供的一种区块链事件处理方法流程示意图之一。
[0031]图2为本说明书实施例提供的一种区块链事件处理方法流程示意图之二。
[0032]图3为本说明书实施例提供的一种区块链事件处理方法流程示意图之三。
[0033]图4为本说明书实施例提供的一种区块链事件处理方法流程示意图之四。
[0034]图5为本说明书实施例提供的一种区块链事件处理装置示意图。
[0035]图6为本说明书的一个实施例提供的电子设备的结构示意图。
具体实施方式
[0036]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明
书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0037]下面通过具体的实例对本说明书所涉及的一种区块链事件处理方案进行详述。
[0038]本专利技术的目的是提出一种区块链事件处理的方案,以解决在区块链数据的链外同步场景中,如何使得智能合约在链外应用中实现业务逻辑处理,以便实现区块链交易数据的链外同步的技术问题。以以太坊为例进行说明,事件是以太坊虚拟机日志基础设施提供的一个便利的接口,当调用包含一个或多个事件的智能合约时,会触发调用事件参数存储到交易日志中,这些日志与智能合约地址关联并记录在区块链中,当监听到有事件发生时,通过事件回调函数执行下一步操作。区块链用户在进行开发智能合约时,将需要同步到链外的智能合约状态以事件形式编写在智能合约逻辑中。同时在智能合约的构造函数中,将智能合约创建成功消息以事件形式记录,其中智能合约创建成功的事件中包括合约地址、合约名称、版本。在用户进行开发完合约后,对合约进行编译产生相关的abi文件,并将合约名、合约版本和abi文件记录到链外数据库中。为此,本专利技术的技术方案思路为:在区块链中创建并部署用于对区块链数据进行链外同步事件处理的智能合约,通过获得链外数据库中的指定区块高度的待处理区块以及上述待处理区块的交易回执,结合上述交易回执包含的智能合约事件类型,对上述智能合约事件进本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种区块链事件处理方法,其特征在于,包括:获得链外数据库中的指定区块高度的待处理区块以及所述待处理区块的交易回执;依据所述交易回执包含的智能合约事件类型,对所述智能合约事件进行处理。2.根据权利要求1所述的方法,其特征在于,在创建并部署所述智能合约至所述区块链之前,保存所述智能合约的abi文件至所述链外数据库。3.根据权利要求2所述的方法,其特征在于,所述获得链外数据库中的指定区块高度的待处理区块及所述待处理区块的交易回执,包括:获得所述链外数据中记录的所述已处理区块高度;依据所述已处理区块高度,获得所述指定区块高度的待处理区块;当所述链外数据库已保存所述待处理区块的全部所述交易回执时,获得所述待处理区块的所述交易回执。4.根据权利要求3所述的方法,其特征在于,所述智能合约事件类型包括合约创建事件;和/或,当所述交易回执包含的智能合约事件类型为合约创建事件,对所述智能合约事件进行处理的过程,包括保存合约名称、合约版本和合约地址至所述链外数据库。5.根据权利要求3所述的方法,其特征在于,所述智能合约事件类型包括合约其他事件;和/或,当所述交易回执包含的智能合约事件类型为合约其他事件,对所述智能合约事件进行处理的过程,包括:依据所述交易回执中所述事件对应的合约地址,从所述链外数据库中获得合约版本和合约...
【专利技术属性】
技术研发人员:张亚宁,
申请(专利权)人:杭州溪塔科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。