本说明书实施例属于区块链,尤其涉及一种区块链中的交易分组方法和区块链节点。
背景技术:
1、区块链(blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
技术实现思路
1、本发明的目的在于提供一种区块链中的交易分组方案,以提高区块链中的交易分组的性能。
2、本说明书第一方面提供一种区块链中的交易分组方法,由区块链节点执行,包括:
3、从待分组的多个交易中获取多个第一交易,所述多个第一交易调用相同的合约;
4、确定各个所述第一交易将要访问的所述合约的状态变量对应的标识集合,所述标识集合中包括所述状态变量在合约执行时的变量标识,所述变量标识用于确定所述状态变量在状态数据库中的键;
5、根据各个所述第一交易的标识集合对所述多个第一交易进行分组。
6、本说明书第二方面提供一种区块链节点,包括:
7、获取单元,用于从待分组的多个交易中获取多个第一交易,所述多个第一交易调用相同的合约;
8、确定单元,用于确定各个所述第一交易将要访问的所述合约的状态变量对应的标识集合,所述标识集合中包括所述状态变量在合约执行时的变量标识,所述变量标识用于确定所述状态变量在状态数据库中的键;
9、分组单元,用于根据各个所述第一交易的标识集合对所述多个第一交易进行分组。
10、本说明书第三方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面所述的方法。
11、本说明书第四方面提供一种区块链节点,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所述的方法。
12、在本说明书实施例提供的方案中,对于调用相同合约的多个交易,通过确定各个交易将要访问的状态变量在合约执行中的标识,从而根据各个交易请求访问的状态变量的标识对该多个交易进行分组。如此,减少了交易分组的计算量和占用的存储资源,提高了交易分组的精细程度,进一步提高了交易执行的并行程度。
1.一种区块链中的交易分组方法,由区块链节点执行,包括:
2.根据权利要求1所述的方法,其中,所述合约与按照大小顺序排列的多个编号对应,其中,所述变量标识包括所述多个编号中的一个编号,所述状态变量的键基于所述合约的合约地址和该状态变量的变量标识生成。
3.根据权利要求1或2所述的方法,所述标识集合中包括第一集合和第二集合,所述第一集合包括所述第一交易请求读取的所述合约的状态变量的变量标识,所述第二集合包括所述第一交易请求写入的所述合约的状态变量的变量标识,
4.根据权利要求1或2所述的方法,所述状态变量中包括第一状态变量,所述第一状态变量为定长变量,所述第一状态变量的第一变量标识通过预先基于所述第一状态变量在所述合约中的声明位置确定。
5.根据权利要求4所述的方法,所述第一状态变量的第一变量标识通过如下步骤确定:
6.根据权利要求2所述的方法,所述状态变量中包括第二状态变量,所述第二状态变量与目标参数符合第一映射关系,所述第一映射关系与所述多个编号中的第一编号对应,所述第一编号基于所述第一映射关系在所述合约中的声明位置确定,所述确定各个所述第一交易请求访问的所述合约的状态变量对应的标识集合包括:
7.根据权利要求6所述的方法,所述第一编号通过如下步骤确定:
8.根据权利要求6所述的方法,所述多个第一交易中包括第二交易,所述第二交易中包括对所述第二状态变量的访问,所述目标参数包括以下任一数据:所述第二交易的交易元数据中的数据、所述合约的第三状态变量的值。
9.根据权利要求8所述的方法,所述第二交易调用所述合约的第一函数,所述确定各个所述第一交易请求访问的所述合约的状态变量对应的标识集合还包括:
10.根据权利要求9所述的方法,所述根据所述第一函数确定所述第一映射关系包括:
11.根据权利要求9所述的方法,所述根据所述第一函数确定所述第一映射关系包括:
12.根据权利要求3所述的方法,所述根据各个所述第一交易的标识集合对所述多个第一交易进行分组,包括:
13.一种区块链节点,包括:
14.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-12中任一项的所述的方法。
15.一种区块链节点,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-12中任一项所述的方法。