一种区块链智能合约运用方法和装置制造方法及图纸

技术编号:35031910 阅读:16 留言:0更新日期:2022-09-24 23:06
本发明专利技术公开了一种区块链智能合约运用方法和装置,其中所述方法包括:初始化任务队列和任务调度器,任务队列用于存放运用智能合约的交易任务,任务调度器用于获取任务队列中交易任务当前状态并提交交易任务至区块链;将智能合约所需数据打包构成交易任务,并将交易任务状态更新为初始状态提交至任务队列;任务调度器定期扫描任务队列当前状态为初始状态的交易任务并提交至区块链,将交易任务状态更新为执行中状态;任务调度器定期扫描任务队列中当前状态为执行中的交易任务,根据对应事件触发状态,更新交易任务状态。本发明专利技术通过将部署、调用合约抽象为交易任务,执行流程解耦,突破了合约单线程执行、执行资源受限等性能瓶颈。执行资源受限等性能瓶颈。执行资源受限等性能瓶颈。

【技术实现步骤摘要】
一种区块链智能合约运用方法和装置


[0001]本说明书涉及计算机软件
,尤其涉及一种区块链智能合约运用方法、装置、电子设备和存储介质。

技术介绍

[0002]基于区块链的智能合约因其具有去中心化、自治化、可观察、可验证、可信息共享等优势,在众多领域中有广泛的应用。然而,单线程串行的智能合约,具有执行资源受限特点及区块链本身TPS、QPS的限制执行,智能合约模型愈发成为系统的性能瓶颈,如何高效地并发执行智能合约交易进而提升系统性能成为现如今区块链技术落地的一大挑战。由于区块链环境中拜占庭节点的存在,智能合约交易的执行与传统数据库有着很大的区别,故传统的数据库并发控制协议不能直接应用到智能合约交易的执行中。因此,在实际的智能合约运行中,存在调用合约的交易无法上链、交易被拒绝、交易响应时间过长的问题。因此,提高区块链智能合约运用性能是需要解决的技术问题。

技术实现思路

[0003]本说明书实施例的目的是针对上述问题,提供一种区块链智能合约运用方法、装置、电子设备和存储介质。
[0004]为解决上述技术问题,本说明书实施例是这样实现的:
[0005]第一方面,提出了一种区块链智能合约运用方法,初始化用于区块链智能合约运用管理的任务队列和任务调度器,所述任务队列用于存放运用所述智能合约进行相应类型交易的交易任务,所述任务调度器用于获取所述任务队列中交易任务的当前状态并提交相应交易任务至所述区块链执行;包括:
[0006]打包所述智能合约所需数据构成所述交易任务,以及更新所述交易任务的状态为初始状态后提交至所述任务队列;
[0007]所述任务调度器定期扫描所述任务队列中当前状态为初始状态的所述交易任务并提交至所述区块链,以及更新所述交易任务的状态为执行中状态;
[0008]所述任务调度器定期扫描所述任务队列中当前状态为执行中状态的所述交易任务,根据所述交易任务对应事件触发状态更新所述交易任务的状态。
[0009]第二方面,提出了一种区块链智能合约运用装置,包括:
[0010]第一模块,用于对管理区块链智能合约运用的任务队列和任务调度器进行初始化,所述任务队列用于存放运用所述智能合约进行相应类型交易的交易任务,所述任务调度器用于获取所述任务队列中交易任务的当前状态并提交相应交易任务至所述区块链执行;
[0011]第二模块,用于打包所述智能合约所需数据构成所述交易任务,以及更新将所述交易任务的状态更新为初始状态后提交至所述任务队列;
[0012]第三模块,用于所述任务调度器定期扫描所述任务队列中当前状态为初始状态的
所述交易任务并提交至所述区块链,以及更新所述交易任务的状态为执行中状态;
[0013]第四模块,用于所述任务调度器定期扫描所述任务队列中当前状态为执行中状态的所述交易任务,根据所述交易任务对应事件触发状态更新所述交易任务的状态。
[0014]第三方面,提出了一种电子设备,包括:处理器;以及
[0015]被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行第一方面所述的方法。
[0016]第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行第一方面所述的方法。
[0017]本说明书可以达到至少以下技术效果:
[0018]本专利技术通过将部署、调用智能合约抽象为同等交易任务,并将任务执行流程解耦,在客户端并发量大等极端情况下,将交易任务队列化,突破了智能合约单线程执行,执行受资源限制,以及区块链本身性能的瓶颈,有效缓解了极端情况下区块链应用崩溃的问题;同时,必要时将智能合约数据进行分片处理,提高了调用智能合约响应效率。
附图说明
[0019]为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0020]图1为本说明书实施例提供的区块链智能合约运用方法示意图之一。
[0021]图2为本说明书实施例提供的区块链智能合约运用方法示意图之二。
[0022]图3为本说明书实施例提供的区块链智能合约运用方法示意图之三。
[0023]图4为本说明书实施例提供的区块链智能合约运用装置示意图之一。
[0024]图5为本说明书实施例提供的区块链智能合约运用装置示意图之二。
[0025]图6为本说明书的一个实施例提供的电子设备的结构示意图。
具体实施方式
[0026]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0027]下面通过具体的实例对本说明书所涉及的一种区块链智能合约运用方案进行详述。
[0028]关键术语
[0029]区块链技术:是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。从本质
上讲,它是一个共享数据库,存储于其中的数据或信息,具有不可伪造、全程留痕、可以追溯、公开透明、集体维护”等特征。基于这些特征,区块链技术奠定了坚实的信任基础,创造了可靠的合作机制,具有广阔的运用前景。按照准入机制分类,区块链分为公有链、联盟链和私有链。
[0030]智能合约:运行在区块链系统内的程序,具有按设定逻辑自动执行、执行结果不可窜改的特性。然而单线程串行的智能合约执行模型愈发成为系统的性能瓶颈,如何高效地并发执行智能合约交易进而提升系统性能成为现如今区块链技术落地的一大挑战。由于区块链环境中拜占庭节点的存在,智能合约交易的执行与传统数据库有着很大的区别,故传统的数据库并发控制协议不能直接应用到智能合约交易的执行中。
[0031]TPS:Transactions Per Second,事务数每秒,衡量软件系统单位时间内处理事务能力的指标。
[0032]QPS:Queries Per Second,查询数每秒,衡量软件系统单位时间内处理查询能力的指标。
[0033]队列:是一种先进先出(First In First Out)的线性表,简称FIFO。在队列一端即对尾插入,在队列另一端即队头删除。队列的特点包括:(1)队列的插入操作称为入队,表的取出操作称为出队;(2)队列的存储结构分为顺序存储或链式存储,顺序存储称为顺本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链智能合约运用方法,其特征在于,初始化用于区块链智能合约运用管理的任务队列和任务调度器,所述任务队列用于存放运用所述智能合约进行相应类型交易的交易任务,所述任务调度器用于获取所述任务队列中交易任务的当前状态并提交相应交易任务至所述区块链执行;包括:打包所述智能合约所需数据构成所述交易任务,以及更新所述交易任务的状态为初始状态后提交至所述任务队列;所述任务调度器定期扫描所述任务队列中当前状态为初始状态的所述交易任务并提交至所述区块链,以及更新所述交易任务的状态为执行中状态;所述任务调度器定期扫描所述任务队列中当前状态为执行中状态的所述交易任务,根据所述交易任务对应事件触发状态更新所述交易任务的状态。2.根据权利要求1所述的方法,其特征在于,所述智能合约进行相应类型交易至少包括部署和/或调用所述智能合约的相应方法。3.根据权利要求1所述的方法,其特征在于,所述交易任务并提交至所述区块链后保留交易哈希副本,以根据所述交易哈希副本查询所述交易任务对应事件触发状态。4.根据权利要求1所述的方法,其特征在于,根据所述交易任务对应事件触发状态更新所述交易任务的状态,包括:若所述交易任务对应事件被触发,则更新所述交易任务状态为成功状态;若所述交易任务对应事件因消耗资源过多被拒绝执行,则更新所述交易任务状态为失败状态;若在阈值时长内,未查询到所述交易任务对应事件触发状态,则更新所述交易任务状态为超时状态。5.根据权利要求1所述的方法,其特征在于,还包括当所述智能合约存储的数据量超过阈值,由用户重新部署所述智能合约以及按照重新部署的所述智能合约地址调用相应方法。6.根据权利要求1所述的方法,其特征在于,还包括当调用所述智能合约的查询方法时,返回该智能合约存储于不同地址的全部数据查询结果。7.一种区块链智能合约运用装置,其特征在于,包括:第一模块,用于对管理区块链智能合约运用的任务队列和任务调度器进行初始化,所述任务队列用于存放运用所述智能合约进行相应类型交易的交易任务,所述任务调度器用于获取所述任务队列中交易任务的当前状态并...

【专利技术属性】
技术研发人员:王晓亮胡江
申请(专利权)人:北京溪塔科技有限公司
类型:发明
国别省市:

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

1