本技术涉及区块链,尤其涉及一种区块链中的交易处理方法、装置、设备以及介质。
背景技术:
1、目前的区块链技术中,区块链网络中的区块链节点在创建了新的区块后,需要在区块链网络中对新创建的区块进行共识处理;在该区块的共识过程中,每一个参与共识处理的区块链节点都需要执行该区块中的所有交易,得到区块中的每笔交易分别对应的执行结果,最终得到该区块在区块链网络中的共识结果,当该区块通过共识时,该区块才能添加至区块链。换言之,区块链网络中参与区块共识处理的所有区块链节点需要重复执行该区块中的所有交易,若区块中的交易涉及大型计算任务(例如,高内存占用、机器学习等),那么会造成该区块中的交易的执行效率过低。
技术实现思路
1、本技术实施例提供一种区块链中的交易处理方法、装置、设备以及介质,可以避免区块链网络中的区块链节点重复执行交易,进而提升交易执行效率。
2、本技术实施例一方面提供了一种区块链中的交易处理方法,该方法由区块链网络中参与共识的验证节点执行,区块链网络中还包括参与共识的主节点,主节点是指创建数据区块的区块链节点,该方法包括:
3、当数据区块所包含的交易在主节点中执行完成时,在数据区块所包含的交易中获取待验证的交易a;
4、若交易a中包含链外执行逻辑,则对交易a以及交易a在主节点中的执行结果进行验证处理,得到交易a对应的验证结果;交易a的执行结果是由链外服务设备对主节点发送的交易a进行数据处理后所得到的;
5、根据数据区块所包含的交易对应的验证结果,确定验证节点对数据区块的共识投票信息;共识投票信息用于确定数据区块对应的共识结果。
6、本技术实施例一方面提供了一种区块链中的交易处理方法,包括:
7、接收区块链网络中参与共识的主节点所发送的待执行的交易a,对交易a进行数据处理,得到交易a的执行结果;主节点是指创建数据区块的区块链节点,交易a为数据区块中包含链外执行逻辑的交易;
8、将交易a的执行结果返回至主节点,以使主节点将交易a的执行结果添加至数据区块;数据区块所包含的交易均执行完成时,数据区块所包含的交易的执行结果由区块链网络中参与共识的验证节点进行验证处理。
9、本技术实施例一方面提供了一种区块链中的交易处理装置,该装置应用于区块链网络中参与共识的验证节点,区块链网络中还包括参与共识的主节点,主节点是指创建数据区块的区块链节点,该装置包括:
10、待验证交易获取模块,用于当数据区块所包含的交易在主节点中执行完成时,在数据区块所包含的交易中获取待验证的交易a;
11、交易验证模块,用于若交易a中包含链外执行逻辑,则对交易a以及交易a在主节点中的执行结果进行验证处理,得到交易a对应的验证结果;交易a的执行结果是由链外服务设备对主节点发送的交易a进行数据处理后所得到的;
12、投票信息确定模块,用于根据数据区块所包含的交易对应的验证结果,确定验证节点对数据区块的共识投票信息;共识投票信息用于确定数据区块对应的共识结果。
13、其中,交易验证模块具体用于:
14、若交易a中包含链外执行逻辑,则获取交易a所携带的第一数字签名,以及交易a在主节点中的执行结果所携带的第二数字签名;
15、根据交易a对应的区块链对象的对象公钥对第一数字签名进行验证,得到第一签名验证结果,根据链外服务设备对应的设备公钥对第二数字签名进行验证,得到第二签名验证结果;
16、根据第一签名验证结果、第二签名验证结果、服务设备白名单以及服务设备黑名单,确定交易a对应的验证结果。
17、其中,交易验证模块根据第一签名验证结果、第二签名验证结果、服务设备白名单以及服务设备黑名单,确定交易a对应的验证结果,包括:
18、若第一签名验证结果和第二签名验证结果均指示验证通过,且链外服务设备属于服务设备白名单,且链外服务设备不属于服务设备黑名单,则确定交易a对应的验证结果为验证成功结果;
19、若第一签名验证结果和第二签名验证结果中存在用于指示验证失败的签名验证结果,或者链外服务设备不属于服务设备白名单,或者链外服务设备属于服务设备黑名单,则确定交易a对应的验证结果为验证失败结果。
20、其中,投票信息确定模块具体用于:
21、若数据区块所包含的交易均验证完成,且数据区块所包含的交易对应的验证结果均指示验证成功,则确定验证节点对数据区块的共识投票信息为赞成投票信息;
22、若数据区块中的任一笔交易对应的验证结果指示验证失败,则停止对数据区块中待验证的交易进行验证处理,确定验证节点对数据区块的共识投票信息为反对投票信息。
23、其中,投票信息确定模块若数据区块所包含的交易均验证完成,且数据区块所包含的交易对应的验证结果均指示验证成功,则确定验证节点对数据区块的共识投票信息为赞成投票信息,包括:
24、若数据区块所包含的交易均验证完成,且数据区块所包含的交易对应的验证结果均指示验证成功,则为数据区块所包含的交易添加验证成功标识;
25、将携带验证成功标识的交易所对应的验证结果添加至数据区块,更新验证节点中的状态数据,确定验证节点对数据区块的共识投票信息为赞成投票信息。
26、其中,该装置还包括:
27、赞成投票数统计模块,用于根据区块链网络中参与共识的验证节点和主节点对数据区块的共识投票信息,统计数据区块对应的赞成投票数量;
28、共识结果确定模块,用于若赞成投票数量大于或等于数量阈值,则确定数据区块对应的共识结果为共识通过结果;
29、共识结果确定模块,还用于若赞成投票数量小于数量阈值,则确定数据区块对应的共识结果为共识失败结果。
30、其中,该装置还包括:
31、注册请求发送模块,用于创建与链外服务设备相关联的注册申请请求,将注册申请请求发送至链外服务设备,以使链外服务设备对注册申请请求所携带的区块链注册信息进行有效性验证,得到注册申请请求对应的注册结果;
32、注册成功模块,用于接收链外服务设备返回的注册结果,若注册结果指示注册成功,则将链外服务设备添加至链外设备白名单,将链外服务设备对应的数字证书添加至链外设备证书列表。
33、其中,该装置还包括:
34、注册失败模块,用于若注册结果指示注册失败,则生成与链外服务设备相关联的错误日志信息;错误日志信息用于指示区块链节点重新创建针对链外服务设备的注册申请请求。
35、本技术实施例一方面提供了一种区块链中的交易处理装置,包括:
36、交易执行模块,用于接收区块链网络中参与共识的主节点所发送的待执行的交易a,对交易a进行数据处理,得到交易a的执行结果;主节点是指创建数据区块的区块链节点,交易a为数据区块中包含链外执行逻辑的交易;
37、执行结果发送模块,用于将交易a的执行结果返回至主节点,以使主节点将交易a的执行结果添加至数据区块;数据区块所包含的交易均执行完成时,数据区块所包含的交易的执行结果由区块链网络中参与共识的验证节点进行验证处理。
38、其中,交易执行模块具体用于:
39、接收区块链网络中参与共识的主节点所发送的待执行的交易a,对交易a进行验签处理,得到交易a对应的验签结果;
40、若验签结果指示验签通过,则获取链外服务设备中的节点白名单和节点黑名单;
41、若主节点属于节点白名单,且主节点不属于节点黑名单,则通过链外服务设备中的交易执行组件对交易a进行数据处理,得到交易a的执行结果;
42、根据链外服务设备的设备私钥,为交易a的执行结果生成第二数字签名。
43、其中,该装置还包括:
44、注册请求接收模块,用于接收共识节点发送的注册申请请求,获取注册申请请求所携带的区块链注册信息;共识节点包括主节点和验证节点;
45、注册信息验证模块,用于对区块链注册信息进行有效性验证,得到注册申请请求对应的注册结果,将注册结果返回至共识节点。
46、本技术实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器与处理器相连,存储器用于存储计算机程序,处理器用于调用计算机程序,以使得该计算机设备执行本技术实施例中上述一方面提供的方法。
47、本技术实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序适于由处理器加载并执行,以使得具有处理器的计算机设备执行本技术实施例中上述一方面提供的方法。
48、根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面提供的方法。
49、本技术实施例中,当数据区块所包含的交易在主节点中执行完成时,在数据区块所包含的交易中获取待验证的交易a,若交易a中包含链外执行逻辑,则对该交易a以及交易a的执行结果进行验证处理,得到交易a对应的验证结果;该交易a的执行结果是主节点将交易a发送给链外服务设备并由链外服务设备计算得到的。进而可以根据数据区块所包含的所有交易对应的验证结果,确定验证节点对该数据区块的共识投票信息,由所有参与共识的主节点和验证节点的共识投票信息可以确定数据区块的共识结果。在数据区块的共识过程中,该数据区块中包含链外执行逻辑的交易由主节点将其发送给链外服务设备进行执行,以得到交易的执行结果;而参与共识的验证节点无需重复执行数据区块中的这些交易,只需验证交易的执行结果即可,可以提升数据区块的交易执行效率。
1.一种区块链中的交易处理方法,其特征在于,所述方法由区块链网络中参与共识的验证节点执行,所述区块链网络中还包括参与共识的主节点,所述主节点是指创建数据区块的区块链节点,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述若所述交易a中包含链外执行逻辑,则对所述交易a以及所述交易a在所述主节点中的执行结果进行验证处理,得到所述交易a对应的验证结果,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一签名验证结果、所述第二签名验证结果、服务设备白名单以及服务设备黑名单,确定所述交易a对应的验证结果,包括:
4.根据权利要求1所述的方法,其特征在于,所述根据所述数据区块所包含的交易对应的验证结果,确定所述验证节点对所述数据区块的共识投票信息,包括:
5.根据权利要求4所述的方法,其特征在于,所述若所述数据区块所包含的交易均验证完成,且所述数据区块所包含的交易对应的验证结果均指示验证成功,则确定所述验证节点对所述数据区块的共识投票信息为赞成投票信息,包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
9.一种区块链中的交易处理方法,其特征在于,包括:
10.根据权利要求9所述的方法,其特征在于,所述接收区块链网络中参与共识的主节点发送的待执行的交易a,对所述交易a进行数据处理,得到所述交易a的执行结果,包括:
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
12.一种区块链中的交易处理装置,其特征在于,所述装置应用于区块链网络中参与共识的验证节点,所述区块链网络中还包括参与共识的主节点,所述主节点是指创建数据区块的区块链节点,所述装置包括:
13.一种区块链中的交易处理装置,其特征在于,包括:
14.一种计算机设备,其特征在于,包括存储器和处理器;
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1至8任一项所述的方法,或者执行权利要求9至11任一项所述的方法。
16.一种计算机程序产品,其特征在于,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现权利要求1至8任一项所述的方法,或者实现权利要求9至11任一项所述的方法。
