区块链定时触发方法、计算机设备和存储介质技术

技术编号:33451143 阅读:14 留言:0更新日期:2022-05-19 00:35
本发明专利技术提供一种区块链定时触发方法、计算机设备和存储介质,该方法包括:部署定时器管理合约;为各智能合约配置定时器管理合约的合约地址,以及,根据合约地址和注册方法生成定时器注册交易的功能;执行第一定时器注册交易,将第一定时器所对应的第一合约地址、第一合约方法、第一调用参数、第一触发时间、第一合约账户存储到合约中;执行第一定时器触发交易:遍历查找触发时间不晚于当前的各第二定时器;分别检查各第二合约账户的余额是否充足:是,则根据对应的第二合约地址、第二合约方法、第二调用参数进行合约方法调用,并将相应手续费从对应的第二合约账户转移至定时器管理合约的合约账户;否,则将对应的第二定时器设置为无效。为无效。为无效。

【技术实现步骤摘要】
区块链定时触发方法、计算机设备和存储介质


[0001]本申请涉及区块链
,具体涉及一种区块链定时触发方法、计算机设备和存储介质。

技术介绍

[0002]在当前区块链系统的智能合约机制中,智能合约(contract)只有在需要执行交易时,加载到虚拟机中执行交易(transaction,简称tx),而无法在不需要执行交易时主动进行任何操作。
[0003]这意味着,在智能合约机制中,实质上并不存在真正意义上的定时触发。例如,A合约在执行交易tx1时,需要设定第二天12点定时执行某项操作,然而当时间来到第二天12点时,没有第二笔需要A合约执行的交易,则A合约此时无法主动进行任何操作。
[0004]针对上述问题,CN201910042850.0号申请提出了一种在智能合约机制外额外设置任务模块、任务管理模块、定时模块,并最终在出块时执行定时任务的方案。
[0005]该方案的缺陷在于:
[0006]如果上述“在出块时执行定时任务”是以执行交易的方式执行的,则该方案必然会重复执行同一笔交易,则该区块链系统需要允许一笔交易被多次执行,该区块链系统存在被交易重放攻击的重大安全风险;
[0007]如果上述“在出块时执行定时任务”不是以执行交易的方式执行的,则该方案的整个定时机制未经过共识,同样存在重大安全风险。
[0008]针对上述问题,申请人在CN202111288061.9号申请中提出了一种智能合约机制内不会引发安全风险的区块链定时触发机制,然而该定时触发机制在定时器管理合约被触发执行定时任务时,存在未对执行定时任务收取手续费(交易费)的问题,导致破坏了区块链的交易费体系。
[0009]注1:本领域技术人员应当理解,交易费体系对于绝大多数区块链系统的必要性;
[0010]注2:本领域技术人员应当理解,本申请中的手续费(交易费)的资产种类为数字人民币、游戏币或其它符合我国法律法规规定的资产种类。

技术实现思路

[0011]鉴于现有技术中的上述缺陷或不足,期望提供一种在智能合约机制内实现不会引发安全风险的定时触发功能、同时避免破坏区块链交易费体系的区块链定时触发方法、计算机设备和存储介质。
[0012]第一方面,本专利技术提供一种适用于区块链节点的区块链定时触发方法,包括:
[0013]部署定时器管理合约;其中,定时器管理合约配置有注册方法;
[0014]为具有定时业务需求的各智能合约配置定时器管理合约的合约地址,以及,根据合约地址和注册方法生成定时器注册交易的功能;
[0015]通过定时器管理合约执行第一定时器注册交易,将所请求注册的第一定时器所对
应的第一合约地址、第一合约方法、第一调用参数、第一触发时间、第一合约账户存储到定时器管理合约中;其中,第一定时器注册交易由第一合约在执行需要设置定时功能的第一交易时,调用注册方法所生成,第一合约还配置用于在执行第一交易时收取执行定时功能所需的手续费并存入第一合约的第一合约账户;
[0016]通过定时器管理合约执行第一定时器触发交易:
[0017]遍历查找定时器管理合约中触发时间不晚于当前时间的各第二定时器;
[0018]分别检查各第二定时器对应的各第二合约账户的余额是否充足:
[0019]是,则根据对应的第二合约地址、第二合约方法、第二调用参数进行合约方法调用以完成定时功能,并将相应的手续费从对应的第二合约账户转移至定时器管理合约的合约账户;
[0020]否,则将对应的第二定时器设置为无效状态。
[0021]第二方面,本专利技术还提供一种计算机设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本专利技术各实施例提供的区块链定时触发方法。
[0022]第三方面,本专利技术还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本专利技术各实施例提供的区块链定时触发方法。
[0023]本专利技术诸多实施例提供的区块链定时触发方法、计算机设备和存储介质通过在区块链上部署配置有注册方法的定时器管理合约,并在其它智能合约中配置在需要设置定时功能时调用该注册方法生成定时器注册交易的功能,实现定时器的注册,同时配置了在执行需要设置定时功能的交易时将执行定时任务的手续费预先收取到合约账户的手续费预收机制;再通过服务端发送定时器触发交易来触发定时器管理合约执行已到时的定时任务,同时配置了在执行定时任务时从相应的合约账户中收取此前预收的手续费的功能;最终既实现了智能合约机制内不会引发安全风险的定时触发功能,又保障了避免破坏区块链交易费体系。
附图说明
[0024]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0025]图1为本专利技术一实施例提供的一种区块链定时触发方法的流程图。
[0026]图2为本专利技术一实施例提供的一种计算机设备的结构示意图。
具体实施方式
[0027]下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与专利技术相关的部分。
[0028]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0029]图1为本专利技术一实施例提供的一种区块链定时触发方法的流程图。
[0030]如图1所示,在本实施例中,本专利技术提供一种适用于区块链节点的区块链定时触发
方法,包括:
[0031]S11:部署定时器管理合约;其中,定时器管理合约配置有注册方法;
[0032]S13:为具有定时业务需求的各智能合约配置定时器管理合约的合约地址,以及,根据合约地址和注册方法生成定时器注册交易的功能;
[0033]S15:通过定时器管理合约执行第一定时器注册交易,将所请求注册的第一定时器所对应的第一合约地址、第一合约方法、第一调用参数、第一触发时间、第一合约账户存储到定时器管理合约中;其中,第一定时器注册交易由第一合约在执行需要设置定时功能的第一交易时,调用注册方法所生成,第一合约还配置用于在执行第一交易时收取执行定时功能所需的手续费并存入第一合约的第一合约账户;
[0034]S17:通过定时器管理合约执行第一定时器触发交易:
[0035]遍历查找定时器管理合约中触发时间不晚于当前时间的各第二定时器;
[0036]分别检查各第二定时器对应的各第二合约账户的余额是否充足:
[0037]是,则根据对应的第二合约地址、第二合约方法、第二调用参数进行合约方法调用以完成定时功能,并将相应的手续费从对应的第二合约账户转移至定时器管理合约的合约账户;
[0038]否,则将对应的第二定时器设置为无效状态。
[0039]以下以定时进行某活动的开奖为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链定时触发方法,其特征在于,所述方法适用于区块链节点,所述方法包括:部署定时器管理合约;其中,所述定时器管理合约配置有注册方法;为具有定时业务需求的各智能合约配置所述定时器管理合约的合约地址,以及,根据所述合约地址和所述注册方法生成定时器注册交易的功能;通过所述定时器管理合约执行第一定时器注册交易,将所请求注册的第一定时器所对应的第一合约地址、第一合约方法、第一调用参数、第一触发时间、第一合约账户存储到所述定时器管理合约中;其中,所述第一定时器注册交易由第一合约在执行需要设置定时功能的第一交易时,调用所述注册方法所生成,所述第一合约还配置用于在执行所述第一交易时收取执行所述定时功能所需的手续费并存入所述第一合约的所述第一合约账户;通过所述定时器管理合约执行第一定时器触发交易:遍历查找所述定时器管理合约中触发时间不晚于当前时间的各第二定时器;分别检查各第二定时器对应的各第二合约账户的余额是否充足:是,则根据对应的第二合约地址、第二合约方法、第二调用参数进行合约方法调用以完成定时功能,并将相应的手续费从对应的第二合约账户转移至所述定时器管理合约的合约账户;否,则将对应...

【专利技术属性】
技术研发人员:何正军王志文吴思进
申请(专利权)人:杭州复杂美科技有限公司
类型:发明
国别省市:

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

1