本技术涉及基于共识算法的交易处理技术,尤其涉及一种交易处理方法、装置及电子设备、存储介质。
背景技术:
1、随着金融领域的发展,业务需求也越来越高。为了满足业务需求,目前常使用分布式系统和联盟区块链系统对业务需求进行处理。为了满足业务的高性能需求,当前的分布式系统和联盟区块链系统一般采用基于分布式一致性原理的共识算法(主要包括pbft共识算法和raft共识算法)。这些共识算法具有交易吞吐量高、交易确认时延低达秒级、可确保输出结果的最终一致性等优点。
2、但这些共识算法的故障容错率均不高,这就意味着为了保证基于共识算法的系统的高可用性,必须为系统部署足够多的共识节点。因为所有共识节点均要参与共识流程,所以随着系统可用性的增加,共识节点数目会不断增加,从而故障共识节点的数目不断增加,这就会导致共识系统的共识效率会越来越低。除此之外,每个共识节点均维护一份数据副本,而一般来说仅需维护3个数据副本即可保证数据的高可用性,因此随着系统可用性的增加,系统资源的浪费也会越来越严重。
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、除此之外,每个共识集具有一个共识主节点和至少一个备份节点,当共识主节点故障时,所述备份节点更新为共识主节点。因此,随着系统可用性的增加,如果共识主节点出现了故障,只需要将备份节点切换为共识主节点即可,不需要再增加系统中共识节点的数量。通俗得说,只要系统中超过1个共识节点正常,整个系统就可以正常工作。因此,本技术的实施例提供的方法还避免了共识算法的容错率限制所导致的共识效率下降的问题,很大程度上提升了系统的共识效率,从而提升交易的处理速度。
47、除此之外,不同的待处理交易可以同时给到不同的共识分片进行并发处理,极大程度提升了系统的可扩展性,减少了系统的资源浪费。