本技术涉及区块链,尤其涉及一种区块链智能合约的执行方法、装置、设备及存储介质。
背景技术:
1、区块链智能合约是一种特殊协议,旨在提供、验证及执行合约。具体来说,智能合约是区块链被称之为去中心化的重要原因,它允许我们在不需要第三方的情况下,执行可追溯、不可逆转和安全的交易。智能合约包含了有关交易的所有信息,只有在满足要求后才会被执行。
2、然而,区块链的智能合约编译执行一般不具有跨平台的可扩展性,现有技术中为了能够实现区块链智能合约的执行,通常是需要由特定的语言编写智能合约,然后推送到区块链的每个节点上进行分别编译、执行,以确保智能合约得到执行,但是由于不同的机器的硬件性能的不同,对智能合约的编译和执行的效率也不同,智能合约对于部分硬件性能较低的节点来说,会造成极大的影响,严重时会造成节点的下线。
3、综上所述,如何能够简便,高效率的提升区块链智能合约的执行是本领域亟需解决的技术问题。
技术实现思路
1、本技术提供一种区块链智能合约的执行方法、装置、设备及存储介质,用以解决如何能够简便,高效率的提升区块链智能合约的执行的技术问题。
2、第一方面,本技术提供一种区块链智能合约的执行方法,应用于区块链系统中的第一个节点,包括:
3、接收用户发送的预先编写的智能合约和交易请求;
4、在检测到所述第一个节点未开启智能合约功能时,对所述交易请求进行执行,得到交易结果,并生成非智能合约执行节点标识,所述非智能合约执行节点标识用于指示所述非智能合约节点未开启智能合约功能;
5、根据所述交易结果和所述非智能合约执行节点标识,生成非智能节点区块,所述非智能节点区块中包括智能合约校验请求,所述交易请求和所述智能合约,所述非智能合约执行节点标识;
6、将所述非智能节点区块发送至下一个节点。
7、结合第一方面,在一些实施例中,所述方法还包括:
8、接收所述用户发送的智能合约检测请求;
9、根据所述智能合约检测请求,所述智能合约,确定是否开启智能合约功能。
10、第二方面,本技术提供一种区块链智能合约的执行方法,应用于区块链系统中的除第一个节点之外的其他节点,包括:
11、接收上一个节点发送的非智能节点区块,所述非智能节点区块中包括智能合约校验请求,交易请求和智能合约,非智能合约执行节点标识,所述非智能合约执行节点标识用于指示所述上一个节点未开启智能合约功能;
12、根据所述智能合约校验请求,所述智能合约,所述非智能合约执行节点标识,确定是否能执行所述智能合约;
13、若确定不能执行所述智能合约,则生成区块校验完成标识,所述区块校验完成标识用于指示在当前节点完成了智能合约校验;
14、将所述区块校验完成标识插入所述非智能节点区块中,得到更新后的非智能节点区块,并将所述更新后的非智能节点区块更新至所述区块链系统中。
15、结合第二方面,在一些实施例中,所述方法还包括:
16、若确定能执行所述智能合约,则执行所述智能合约,生成所述智能合约执行结果;
17、根据所述智能合约执行结果,生成智能合约区块,并将所述智能合约区块更新至所述区块链系统中,所述智能合约区块中包括所述智能合约执行结果,所述智能合约,所述交易请求。
18、结合第二方面,在一些实施例中,所述方法还包括:
19、接收所述上一个节点发送的智能节点区块,所述智能节点区块中包括其他智能合约和其他交易请求;
20、根据所述其他交易请求,执行所述其他智能合约,生成其他智能合约执行结果;
21、根据所述其他智能合约执行结果,生成其他智能合约区块,并将所述其他智能合约区块更新至所述区块链系统中,所述其他智能合约区块中包括所述其他智能合约执行结果,所述其他智能合约,所述其他交易请求。
22、第三方面,本技术提供一种区块链智能合约的执行装置,包括:
23、第一接收模块,用于接收用户发送的预先编写的智能合约和交易请求;
24、交易执行模块,用于在检测到第一个节点未开启智能合约功能时,对所述交易请求进行执行,得到交易结果,并生成非智能合约执行节点标识,所述非智能合约执行节点标识用于指示所述非智能合约节点未开启智能合约功能;
25、区块生成模块,用于根据所述交易结果和所述非智能合约执行节点标识,生成非智能节点区块,所述非智能节点区块中包括智能合约校验请求,所述交易请求和所述智能合约,所述非智能合约执行节点标识;
26、区块发送模块,用于将所述非智能节点区块发送至下一个节点。
27、结合第三方面,在一些实施例中,所述装置还包括:
28、第二接收模块,用于接收所述用户发送的智能合约检测请求;
29、确定模块,用于根据所述智能合约检测请求,所述智能合约,确定是否开启智能合约功能。
30、第四方面,本技术提供一种区块链智能合约的执行装置,包括:
31、第一接收模块,用于接收上一个节点发送的非智能节点区块,所述非智能节点区块中包括智能合约校验请求,交易请求和智能合约,非智能合约执行节点标识,所述非智能合约执行节点标识用于指示所述上一个节点未开启智能合约功能;
32、确定模块,用于根据所述智能合约校验请求,所述智能合约,所述非智能合约执行节点标识,确定是否能执行所述智能合约;
33、第一生成模块,用于若确定不能执行所述智能合约,则生成区块校验完成标识,所述区块校验完成标识用于指示在当前节点完成了智能合约校验;
34、更新模块,用于将所述区块校验完成标识插入所述非智能节点区块中,得到更新后的非智能节点区块,并将所述更新后的非智能节点区块更新至所述区块链系统中。
35、结合第四方面,在一些实施例中,所述装置还包括:
36、第二生成模块,用于若确定能执行所述智能合约,则执行所述智能合约,生成所述智能合约执行结果;
37、第三生成模块,用于根据所述智能合约执行结果,生成智能合约区块,并将所述智能合约区块更新至所述区块链系统中,所述智能合约区块中包括所述智能合约执行结果,所述智能合约,所述交易请求。
38、结合第四方面,在一些实施例中,所述装置还包括:
39、第二接收模块,用于接收所述上一个节点发送的智能节点区块,所述智能节点区块中包括其他智能合约和其他交易请求;
40、第四生成模块,用于根据所述其他交易请求,执行所述其他智能合约,生成其他智能合约执行结果;
41、第五生成模块,用于根据所述其他智能合约执行结果,生成其他智能合约区块,并将所述其他智能合约区块更新至所述区块链系统中,所述其他智能合约区块中包括所述其他智能合约执行结果,所述其他智能合约,所述其他交易请求。
42、第五方面,本技术提供一种电子设备,包括:存储器,处理器,通信接口;
43、所述存储器存储计算机执行指令;
44、所述处理器执行所述存储器存储的计算机执行指令,以实现上述第一方面所述的方法。
45、第六方面,本技术提供一种电子设备,包括:存储器,处理器,通信接口;
46、所述存储器存储计算机执行指令;
47、所述处理器执行所述存储器存储的计算机执行指令,以实现上述第二方面所述的方法。
48、第七方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述任一方面所述的区块链智能合约的执行方法。
49、本技术提供的区块链智能合约的执行方法、装置、设备及存储介质,在检测到第一个节点未开启智能合约功能时,对接收到的用户发送的交易请求进行执行,得到交易结果,并生成非智能合约执行节点标识,然后根据交易结果和非智能合约执行节点标识,生成非智能节点区块并发送至下一节点,区块链系统中的除第一个节点之外的其他节点在接收到上一个节点发送的非智能节点区块后,根据智能合约校验请求,智能合约,非智能合约执行节点标识,确定是否能执行智能合约,若确定不能执行智能合约,则生成区块校验完成标识,并将区块校验完成标识插入非智能节点区块中,得到更新后的非智能节点区块,将更新后的非智能节点区块更新至区块链系统中,通过上述方法可以在保障智能合约执行的同时,减少了整个区块链上对智能合约的编译、执行的时间,进而提升了区块链数据处理效率。