CN112463310A - 基于节点分片的事务数据处理方法、***、设备和介质 - Google Patents
基于节点分片的事务数据处理方法、***、设备和介质 Download PDFInfo
- Publication number
- CN112463310A CN112463310A CN202011424745.2A CN202011424745A CN112463310A CN 112463310 A CN112463310 A CN 112463310A CN 202011424745 A CN202011424745 A CN 202011424745A CN 112463310 A CN112463310 A CN 112463310A
- Authority
- CN
- China
- Prior art keywords
- transaction
- fragment
- account
- committee
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013467 fragmentation Methods 0.000 title claims abstract description 18
- 238000006062 fragmentation reaction Methods 0.000 title claims abstract description 18
- 238000003672 processing method Methods 0.000 title claims abstract description 10
- 239000012634 fragment Substances 0.000 claims abstract description 234
- 238000012545 processing Methods 0.000 claims abstract description 100
- 238000000034 method Methods 0.000 claims abstract description 62
- 238000004590 computer program Methods 0.000 claims description 10
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 abstract description 5
- 238000012795 verification Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000033772 system development Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种基于节点分片的事务数据处理方法、***、设备和介质。该方法包括:网关分片接收至少一个客户端发送的事务数据;网关分片按照预设周期向每个事务处理分片发送对应的事务数据包;每个事务处理分片处理至少一个有效事务数据得到与事务处理分片对应的账户变量值集;每个事务处理分片发送账户变量值集至委员会分片;委员会分片基于有效账户变量值集更新委员会分片、网关分片和每个事务处理分片中与至少一个账户地址对应的账户数据。解决了高数据吞吐量的区块链网络开发难度大且维护成本高的问题。
Description
技术领域
本申请一般涉及区块链网络技术领域,具体涉及一种基于节点分片的事务数据处理方法、***、设备和介质。
背景技术
区块链网络是一种去中心化(即不依赖第三方)的分布式互联网数据存储***,可以通过分布式节点进行事务数据的验证、传递和存储。
在区块链网络中,由于事务数据的处理过程需要每个节点参与,随着区块链网络中节点的不断增多,导致事务数据的吞吐量下降,事务数据的处理过程效率低下。
相关技术中,为了解决该问题,将区块链网络中的节点进行了分链处理,每个分链包括至少一个节点,每个分链可以并行处理事务数据,但是,由于每个分链是独立的平行链,需要增加跨分链通信机制,将该多个分链连接,增加了区块链网络的开发和维护难度,现有的区块链网络虽然具有较高的数据吞吐量,但是网络开发和维护难度大。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种可以提高数据吞吐量并降低区块链网络的维护成本的基于节点分片的事务数据处理方法、***、设备和介质。
第一方面,本申请提供了一种基于节点分片的事务数据处理方法,包括:
网关分片接收至少一个客户端发送的事务数据,事务数据包括账户地址;
网关分片按照预设周期向每个事务处理分片发送对应的事务数据包,事务数据包包括至少一个事务数据;
每个事务处理分片处理至少一个有效事务数据得到与事务处理分片对应的账户变量值集;
每个事务处理分片发送账户变量值集至委员会分片;
委员会分片基于有效账户变量值集更新委员会分片、网关分片和每个事务处理分片中与至少一个账户地址对应的账户数据;
第二方面,本申请提供了一种基于节点分片的事务数据处理装置,包括:
接收模块,被配置为网关分片接收至少一个客户端发送的事务数据,事务数据包括账户地址;
第一发送模块,被配置为网关分片按照预设周期向每个事务处理分片发送对应的事务数据包,事务数据包包括至少一个事务数据;
处理模块,被配置为每个事务处理分片处理至少一个有效事务数据得到与事务处理分片对应的账户变量值集;
第二发送模块,被配置为每个事务处理分片发送账户变量值集至委员会分片;
更新模块,被配置为委员会分片基于有效账户变量值集更新委员会分片、网关分片和每个事务处理分片中与至少一个账户地址对应的账户数据;
第三方面,本申请提供了一种计算机设备,计算机设备包括:
处理器;
用于存储处理器的可执行指令的存储器;
其中,处理器被配置为执行如第一方面的基于节点分片的事务数据处理方法;
第四方面,本申请提供了一种计算机可读介质,计算机可读介质中存储有计算机程序,当计算机程序被处理器执行时,实现如第一方面的基于节点分片的事务数据处理方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请实施例提供的基于节点分片的事务数据处理方法、***、设备和介质,可以网关分片接收至少一个客户端发送的事务数据,事务数据包括账户地址;网关分片按照预设周期向每个事务处理分片发送对应的事务数据包;每个事务处理分片处理至少一个有效事务数据得到与事务处理分片对应的账户变量值集;每个事务处理分片发送账户变量值集至委员会分片;委员会分片基于有效账户变量值集更新委员会分片、网关分片和每个事务处理分片中与至少一个账户地址对应的账户数据。可以提高数据吞吐量,提高事务数据处理效率,***开发难度小,维护成本低,可扩展性强。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例提供的一种基于节点分片的事务数据处理***的结构示意图;
图2为本申请实施例提供的一种基于节点分片的事务数据处理方法的流程示意图;
图3为本申请实施例提供的另一种基于节点分片的事务数据处理方法的流程示意图;
图4为本申请实施例提供的一种基于节点分片的事务数据处理装置的结构示意图;
图5为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1是本申请实施例提供的一种基于节点分片的事务数据处理***的结构示意图。如图1所示,该***包括:网关分片110、至少一个事务处理分片120、委员会分片130和客户端140,其中,客户端140和网关分片110连接,网关分片110与每个事务处理分片120连接,每个事务处理分片120与委员会分片130连接,网关分片110也与委员会分片130连接,其中,该连接方式可以是有线通信连接或者无线通信连接。其中,网关分片110包括至少一个网关节点111,每个事务处理分片120包括至少一个事务处理节点121,委员会分片130包括至少一个委员会节点131。
请继续参考图1,在该***中,该网关分片110用于接收至少一个客户端140发送的至少一个事务数据,并基于事务数据中的账户地址,确定与每个事务数据对应的事务处理分片120,按照预设周期将与每个事务处理分片120对应的至少一个事务数据打包,得到事务数据包,并发送事务数据包给对应的事务处理分片120中的每个事务处理节点121。其中,预设周期可以基于实际需要确定,本申请实施例对此不做限定。可以理解的是,网关分片110中的任一个网关节点111均可以执行该过程。
每个事务处理分片120用于接收网关分片110发送的事务数据包,事务处理分片120中的事务处理节点121可以对接收到的事物数据包中的至少一个事务数据进行验证,若对任一事务数据验证失败,向网关分片110发送验证失败结果消息,网关分片110向与该事务数据对应事务请求发起客户端140发送事务处理失败通知;若对任一事务数据验证成功,确定该事务数据为有效事务数据,获取至少一个有效事物数据,并处理每个有效事务数据得到账户变量值集;并在该账户变量值集共识成功后,将该账户变量值集发送给至委员会分片130中的每个委员会节点131,否则,事务处理分片120缓存该至少一个有效事务数据,等待下一轮的共识过程,将该至少一个有效事务数据在下一轮的共识过程中进行共识,直至共识成功。
委员会分片130用于接收每个事物处理分片120发送的账户变量值集,委员会分片130中的委员会节点131可以对接收到的每个账户变量值集进行验证,若对任一账户变量值集验证失败,向发送该账户变量值集的事务处理分片120发送验证失败结果消息;若对账户变量值集验证成功,确定该账户变量值集为有效变量值集,且确定接收到的每个事务处理分片120发送的每个账户变量值集均为有效账户变量值集,则基于该与每个事务处理分片对应的有效账户变量值集更新委员会分片140、网关分片110和每个事务处理分片130与至少一个账户地址对应的账户数据。
需要说明的是,本申请实施例提供的基于节点分片的事务数据处理***中,节点的节点设备可以是具备数据处理能力的终端设备,例如计算机或者服务器等。节点所属的分片是基于节点设备的配置文件中的节点配置信息确定的,该节点配置信息至少包括节点设备的节点类型,如网关节点、事务处理节点或委员会节点,对于事务处理节点,该节点信息中还包括该事务处理节点对应的事务处理分片的分片标识。可以理解的是,在该***搭建完成后,该***中的每个节点可以向其他节点同步每个节点的节点配置信息。
本申请实施例提供一种基于节点分片的事务数据处理方法,该方法应用于如图1所示的基于节点分片的事务数据处理***中,如图2所示,该方法包括:
步骤201、网关分片接收至少一个客户端发送的事务数据。
在本步骤中,网关分片中的任一网关节点可以接收至少一个客户端发送的事务数据,该事务数据包括与账户地址,该账户地址包括与事务数据对应的事务请求的账户地址。
步骤202、网关分片按照预设周期向每个事务处理分片发送对应的事务数据包。
在本申请实施例中,网关分片中的网关节点通常会在短时间内接收到多个事务数据,如果将该事务数据逐一发送至与事务数据对应的事务处理分片中,会增加网络消耗,通常情况下每个网关节点会周期性的向事务处理分片发送每个周期内获取的多个事务数据,降低网络消耗,防止网络堵塞。
在本步骤中,网关分片按照预设周期向每个事务处理分片发送对应的事务数据包的过程可以包括:确定与每个事物数据对应的事务处理分片,按照预设周期将每个周期时长内的与每个事务处理分片对应的至少一个事务数据打包,得到与事务处理分片对应的事务数据包;将该事务数据包签名后发送至与该事务数据包对应的事务处理分片。例如,预设周期的每个周期时长可以为500毫秒(ms)。
可以理解的是,在本申请实施例中,每个事务数据中的账户地址包括事务请求的发起账户地址,则确定与每个事物数据对应的事务处理分片的过程可以是:基于节点配置信息得到事务处理分片的分片数量;对每个事务数据,确定与事务数据对应的发起账户地址与分片数量比值的余数;确定余数与标准值的和为目标分片标识;确定与目标分片标识对应的事务处理分片为与事物数据对应的事务处理分片。其中,标准值为数值1。优选的,可以基于账户地址后4位确定与每个事物数据对应的事务处理分片,减少数据处理量。
步骤203、每个事务处理分片处理至少一个有效事务数据得到与事务处理分片对应的账户变量值集。
在本申请实施例中,每个事务处理分片在接收到事务数据包后,首先需要对该事务数据包进行验证,该验证过程可以包括签名验证和有效性验证,其中,签名性验证的目的是用于确定事务数据包是否为网关节点发送,签名验证的过程可以是:获取事务数据包中的签名公钥,利用该签名公钥验证签名事务数据包,若可以验证成功,签名验证通过,获取事务数据包;有效性验证的目的是用于确定与事务数据对应的事务请求是否合理且可以执行,例如,对于与某一转账事务请求对应的事务数据,需要确定与事务请求的发起账户地址对应的账户余额是否大于或等于转账金额,若是,则确定该事务数据为有效事务数据。
其中,对事务数据包进行验证的过程中,首先进行签名验证,若签名验证失败,向对应的事务处理分片发送验证失败结果消息;若签名验证成功,再进行有效性验证,该有效性验证通常需要对每个事务数据逐一进行,当对事务数据对应的有效性验证成功后,确定该事务数据为有效事务数据。
可以理解的是,在本申请实施例中,每个事务数据中的账户地址还包括事务请求的目标账户地址,在本步骤中,每个事务处理分片处理至少一个有效事务数据得到与事务处理分片对应的账户变量值集的过程是:对于每个有效事务数据,确定与有效事务数据对应的发起账户地址关联的账户变量值;确定与有效事务数据对应的目标账户地址关联的账户变量值;将与每个发起账户地址关联的账户变量值和每个目标账户地址关联的账户变量值的集合,确定为与事务处理分片对应的账户变量值集。
示例的,假设事务处理分片1接收到两个有效事务数据,其中,第一个有效事务数据对应的事务请求为:账户地址A发出一个转账事务给账户地址B,转账金额X,第二个有效事务数据对应的事务请求为:账户地址B发出一个转账事务给账户地址C,转账金额Y,由于与账户地址A和账户地址B对应的事务处理分片为事务处理分片1,则确定的与事务处理分片1对应的账户变量值集由账户变化值△1A=-X,△1B=X,△1B=-Y,△1C=Y组成。
可以理解的是,在本申请实施例中,每个事务处理分片中的每个事务处理节点需要将与该事务处理分片对应的账户变量值集进行共识,并在共识成功后,获取与账户变量值集对应的第一共识证明,该第一共识证明包括事务处理分片中每个正常事务处理节点对共识结果的签名。并执行步骤204,否则,缓存该账户变量值集,等待下一轮的共识过程,在下一轮共识过程中对该账户变量值集进行共识。其中,该共识过程中采用的算法可以是实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)共识算法。由于可以通过多个事务处理分片处理事务数据,可以提高区块链网络的数据吞吐量和处理效率,提高区块链网络的性能。
步骤204、每个事务处理分片发送账户变量值集至委员会分片。
在本申请实施例中,为了降低事务处理分片中的事务处理节点将账户变量值集发送至委员会分片过程中的数据传输量,防止网络堵塞,可以对每个事务处理分片中的事务处理节点进行分组,得到至少两个第一事务处理节点组,同时,将委员会分片中的委员会节点分成与事务处理节点组数量相同的第一委员会节点组,建立至少两个第一事务处理节点组和至少两个第一委员会节点组之间的一一对应关系,使每个第一事务处理节点组中的事务处理节点发送合法账户变量值集至对应的第一委员会节点组中的每个委员会节点。
在本步骤中,每个事务处理分片发送账户变量值集至委员会分片的过程可以是:对于每个事务处理分片,基于事务处理分片中的事务处理节点数量确定第一事务处理节点组数量和与每个第一事务处理节点组对应的事务处理节点数量;为每个第一事务处理节点组分配与事务处理节点数量对应的事务处理节点;确定与每个第一事务处理节点组对应的第一委员会节点组;每个第一事务处理节点组中的每个事务处理节点发送合法账户变量值集至与第一事务处理节点组对应的第一委员会节点组中的每个委员会节点。可以理解的是,每个事务处理节点发送合法账户变量值集至与事务处理节点组对应的每个委员会节点的过程中,同时发送了与该合法账户变量值集对应的第一共识证明。
需要说明的是,在本申请实施例中,基于事务处理分片中的事务处理节点数量确定第一事务处理节点组数量和与每个第一事务处理节点组对应的事务处理节点数量的过程,可以基于对账户变量值集进行共识过程中采用的共识算法确定,若本申请实施例中的账户变量值集是采用PBFT共识算法进行共识的,由于PBFT共识算法需要保证该事务处理分片中的正常事务处理节点的数量为容错节点数为则第一事务处理节点组数量为
表示N与3的比值无余数时,第一事务处理节点组数量为3,N与3的比值有余数时,第一事务处理节点组数量为2,该每个第一事务处理节点组中的事务处理节点数量为其中N为事务处理节点的数量,表示对数值向下取整,表示对数值向上取整。可以理解的是,当N为3时,可以将事务处理节点分为两个第一事务处理节点组,其中,一个第一事务处理节点组包括一个事务处理节点,另一个第一事务处理节点组包括两个事务处理节点。
其中,为每个第一事务处理节点组分配与事务处理节点数量对应的事务处理节点的过程可以是:对于每个第一事务处理节点组,从至少一个事务处理节点中随机选择与事务处理节点数量对应的至少一个事物处理节点,将该至少一个事物处理节点确定为与第一事务处理节点组对应的事物处理节点。可以理解的是,在本申请实施例中,每个第一事务处理节点组中的事务处理节点不相同。
其中,确定与每个第一事务处理节点组对应的第一委员会节点组的过程可以是:基于节点配置信息确定委员会节点的数量,确定委员会节点的数量与事务处理节点组数量的比值,得到与每个第一委员会节点组对应的第一委员会节点数量,从多个委员会节点中为每个第一委员会节点组选取与第一委员会节点数量对应的委员会节点,建立第一委员会节点组与每个事务处理节点组的匹配关系。可以理解的是,在本申请实施例中,每个第一委员会节点组中的委员会节点不同。
可选的,建立每个第一委员会节点组与每个第一事务处理节点组的匹配关系的过程可以是:为每个第一事务处理节点组分配节点组标识,为每个第一委员会节点组分配节点组标识,建立节点组标识相同的第一事务处理节点组与第一委员会节点组之间的匹配关系,得到第一委员会节点组与每个事务处理节点组的匹配关系。
步骤205、委员会分片基于有效账户变量值集更新委员会分片、网关分片和每个事务处理分片中与至少一个账户地址对应的账户数据。
在本申请实施例中,委员会分片接收到每个事务处理分片发送的账户变量值集后,对该账户变量值集进行验证,该验证过程包括基于第一共识证明的签名验证和对账户变量值集中的账户变量值的有效性验证,验证成功后,确定接收到的每个事务处理分片发送的每个账户变量值集是否均为有效账户变量值集,若是,基于有效账户变量值集更新委员会分片、网关分片和每个事务处理分片中与至少一个账户地址对应的账户数据,否则,缓存该已获取的有效账户变量值集,并继续接收到每个事务处理分片发送的账户变量值集,直至确定接收到的每个事务处理分片发送的每个账户变量值集是否均为有效账户变量值集时,基于该有效账户变量值集和已经获取的有效账户变量值集更新委员会分片、网关分片和每个事务处理分片中与至少一个账户地址对应的账户数据。
在本步骤中,如图3所示,该委员会分片基于至少一个有效账户变量值集更新委员会分片、网关分片和每个事务处理分片中,与合法账户地址对应的账户数据的过程可以包括:
步骤2051、遍历每个有效账户变量值集得到至少一个账户数据变化量,以及与每个账户数据变化量对应的账户地址。
步骤2052、基于与每个账户地址对应的至少一个账户数据变化量,确定与每个账户地址对应的合并账户变量值。
步骤2053、基于与每个账户地址对应的合并账户变量值,更新委员会分片中与每个账户地址对应的账户数据。
在本步骤中,基于与每个账户地址对应的合并账户变量值,更新委员会分片中与每个账户地址对应的账户数据的过程包括:获取与每个账户地址对应的原始账户数据,确定原始账户数据与该账户地址对应的合并账户变量值之和,将该和值确定为与该账户地址对应的更新后的账户数据。
示例的,假设遍历每个有效账户变量值集得到与账户地址D对应的账户数据变化量包括:账户变化量△1D、账户变化量△2D和账户变化量△5D,合并该三个账户变化量,得到与账户地址对应的合并账户变量值△D=△1D+△2D+△5D。获取与账户地址D对应的原始账户数据△5D’,原始账户数据△5D’与合并账户变量值△D的和值VD为与账户地址D对应的更新后的账户数据。
可以理解的是,在本申请实施例中,委员会分片中的委员会节点需要对与每个账户地址对应的更新后的账户数据进行共识,并在共识成功后,获取与账户地址对应的第二共识证明,该第二共识证明包括每个正常委员会节点对共识结果的签名。其中,该共识过程中采用的算法可以是PBFT共识算法。
步骤2054、发送与至少一个账户地址对应的合并账户变量值至网关分片和每个事务处理分片,以使网关分片和每个事务处理分片更新与至少一个账户地址对应的账户数据。
在本步骤中,委员会分片发送与至少一个账户地址对应的合并账户变量值至网关分片和每个事务处理分片的过程可以包括:基于委员会节点的数量确定第二委员会节点组数量和与第二每个委员会节点组对应的委员会节点数量;为每个第二委员会节点组分配与委员会节点数量对应的委员会节点。
对于网关分片,确定与每个第二委员会节点组对应的网关节点组;每个第二委员会节点组中的每个委员会节点发送合并账户变量值至与第二委员会节点组对应的网关节点组中的每个网关节点;
或者,对于每个事务处理分片,确定与每个第二委员会节点组对应的第二事务处理节点组;每个第二委员会节点组中的每个委员会节点发送合并账户变量值至与第二委员会节点组对应的第二事务处理节点组中的每个事务处理节点。
需要说明的是,在本申请实施例中,基于委员会节点的数量确定第二委员会节点组数量和与第二每个委员会节点组对应的委员会节点数量的过程,可以参考上述实施例中基于事务处理分片中的事务处理节点数量确定第一事务处理节点组数量和与每个第一事务处理节点组对应的事务处理节点数量的过程,本申请实施例对此不做赘述。
为每个第二委员会节点组分配与委员会节点数量对应的委员会节点的过程,可以参考上述实施例中为每个第一事务处理节点组分配与事务处理节点数量对应的事务处理节点的过程,本申请实施例对此不做赘述。
确定与每个第二委员会节点组对应的网关节点组,或者确定与每个第二委员会节点组对应的第二事务处理节点组的过程,可以参考上述实施例中确定与每个第一事务处理节点组对应的第一委员会节点组的过程,本申请实施例对此不做赘述。
在本步骤中,网关分片和每个事务处理分片更新与至少一个账户地址对应的账户数据的过程可以是:对于网关分片或者每个事务处理分片,接收到委员会分片中的委员会节点发送的与至少一个账户地址对应的合并账户变量值后,对该合并账户变量值进行验证,该验证过程包括对于第二共识证明的签名验证和对合并账户变量值的有效性验证,验证成功后,基于上述步骤2053的方法更新网关分片或者每个事务处理分片中与至少一个账户地址对应的账户数据;若验证失败,则丢弃接收到的数据。
可选的,在本申请实施例中,在委员会分片基于至少一个有效账户变量值集更新委员会分片、网关分片和每个事务处理分片中至少一个账户地址对应的账户数据之后,网关分片向与每个账户地址对应的客户端发送事务成功处理结果。如转账成功提示。
综上所述,本申请实施例提供的基于节点分片的事务数据处理方法,网关分片接收至少一个客户端发送的事务数据,事务数据包括账户地址;网关分片按照预设周期向每个事务处理分片发送对应的事务数据包;每个事务处理分片处理至少一个有效事务数据得到与事务处理分片对应的账户变量值集;每个事务处理分片发送账户变量值集至委员会分片;委员会分片基于有效账户变量值集更新委员会分片、网关分片和每个事务处理分片中与至少一个账户地址对应的账户数据。可以提高数据吞吐量,提高事务数据处理效率,***开发难度小,维护成本低,可扩展性强。
本申请实施例提供一种基于节点分片的事务数据处理装置,如图4所示,该装置30包括:
接收模块301,被配置为网关分片接收至少一个客户端发送的事务数据,事务数据包括账户地址;
第一发送模块302,被配置为网关分片按照预设周期向每个事务处理分片发送对应的事务数据包,事务数据包包括至少一个事务数据;
处理模块303,被配置为每个事务处理分片处理至少一个有效事务数据得到与事务处理分片对应的账户变量值集;
第二发送模块304,被配置为每个事务处理分片发送账户变量值集至委员会分片;
更新模块305,被配置为委员会分片基于有效账户变量值集更新委员会分片、网关分片和每个事务处理分片中与至少一个账户地址对应的账户数据。
可选的,第一发送模块302,被配置为:
确定与每个事物数据对应的事务处理分片;
按照预设周期将与每个事务处理分片对应的至少一个事务数据打包,得到与事务处理分片对应的事务数据包;
发送事务数据包至与事务数据包对应的事务处理分片。
可选的,第一发送模块302,被配置为:
确定事务处理分片的分片数量;
对每个事务数据,确定与事务数据对应的发起账户地址与分片数量比值的余数;
确定余数与标准值的和为目标分片标识;
确定与目标分片标识对应的事务处理分片为与事物数据对应的事务处理分片。
可选的,处理模块303,被配置为:
对于每个有效事务数据,确定与有效事务数据对应的发起账户地址关联的账户变量值;
确定与有效事务数据对应的目标账户地址关联的账户变量值;
将与每个发起账户地址关联的账户变量值和每个目标账户地址关联的账户变量值的集合,确定为与事务处理分片对应的账户变量值集。
可选的,第二发送模块304,被配置为:
对于每个事务处理分片,基于事务处理分片中的事务处理节点数量确定第一事务处理节点组数量和与每个第一事务处理节点组对应的事务处理节点数量;
为每个第一事务处理节点组分配与事务处理节点数量对应的事务处理节点;
确定与每个第一事务处理节点组对应的第一委员会节点组;
每个第一事务处理节点组中的每个事务处理节点发送合法账户变量值集至与第一事务处理节点组对应的第一委员会节点组中的每个委员会节点。
可选的,更新模块305,被配置为:
遍历每个有效账户变量值集得到至少一个账户数据变化量,以及与每个账户数据变化量对应的账户地址;
基于与每个账户地址对应的至少一个账户数据变化量,确定与每个账户地址对应的合并账户变量值;
基于与每个账户地址对应的合并账户变量值,更新委员会分片中与每个账户地址对应的账户数据;
发送与至少一个账户地址对应的合并账户变量值至网关分片和每个事务处理分片,以使网关分片和每个事务处理分片更新与至少一个账户地址对应的账户数据。
可选的,更新模块305,被配置为:
基于委员会节点的数量确定第二委员会节点组数量和与第二每个委员会节点组对应的委员会节点数量;
为每个第二委员会节点组分配与委员会节点数量对应的委员会节点;
对于网关分片,确定与每个第二委员会节点组对应的网关节点组;
每个第二委员会节点组中的每个委员会节点发送合并账户变量值至与第二委员会节点组对应的网关节点组中的每个网关节点;
或者,对于每个事务处理分片,确定与每个第二委员会节点组对应的第二事务处理节点组;
每个第二委员会节点组中的每个委员会节点发送合并账户变量值至与第二委员会节点组对应的第二事务处理节点组中的每个事务处理节点。
综上所述,本申请实施例提供的基于节点分片的事务数据处理装置,网关分片接收至少一个客户端发送的事务数据,事务数据包括账户地址;网关分片按照预设周期向每个事务处理分片发送对应的事务数据包;每个事务处理分片处理至少一个有效事务数据得到与事务处理分片对应的账户变量值集;每个事务处理分片发送账户变量值集至委员会分片;委员会分片基于有效账户变量值集更新委员会分片、网关分片和每个事务处理分片中与至少一个账户地址对应的账户数据。可以提高数据吞吐量,提高事务数据处理效率,***开发难度小,维护成本低,可扩展性强。
图5是根据一示例性实施例示出的一种计算机设备,该计算机设备包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM403中,还存储有***操作所需的各种程序和数据。CPU401、ROM402以及RAM403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本申请的实施例,上文图2至图3描述的过程可以被实现为计算机软件程序。例如,本申请的各个实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本申请的***中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的方法、装置和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块、第一发送模块、处理模块、处理模块和更新模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,接收模块还可以被描述为“用于网关分片接收至少一个客户端发送的事务数据的接收模块”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中描述的基于节点分片的事务数据处理方法。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种基于节点分片的事务数据处理方法,其特征在于,包括:
网关分片接收至少一个客户端发送的事务数据,所述事务数据包括账户地址;
所述网关分片按照预设周期向每个事务处理分片发送对应的事务数据包,所述事务数据包包括至少一个事务数据;
每个所述事务处理分片处理至少一个有效事务数据得到与所述事务处理分片对应的账户变量值集;
每个所述事务处理分片发送所述账户变量值集至委员会分片;
所述委员会分片基于有效账户变量值集更新所述委员会分片、所述网关分片和每个所述事务处理分片中与至少一个账户地址对应的账户数据。
2.根据权利要求1所述方法,其特征在于,所述按照预设周期向每个事务处理分片发送对应的事务数据包,包括:
确定与每个所述事物数据对应的事务处理分片;
按照预设周期将与每个所述事务处理分片对应的至少一个所述事务数据打包,得到与所述事务处理分片对应的事务数据包;
发送所述事务数据包至与所述事务数据包对应的所述事务处理分片。
3.根据权利要求2所述方法,其特征在于,所述账户地址包括事务请求的发起账户地址,所述确定与每个所述事物数据对应的事务处理分片,包括:
确定所述事务处理分片的分片数量;
对每个所述事务数据,确定与所述事务数据对应的所述发起账户地址与所述分片数量比值的余数;
确定所述余数与标准值的和为目标分片标识;
确定与所述目标分片标识对应的所述事务处理分片为与所述事物数据对应的事务处理分片。
4.根据权利要求1所述方法,其特征在于,所述账户地址包括事务请求的目标账户地址,所述处理至少一个有效事务数据得到与所述事务处理分片对应的账户变量值集,包括:
对于每个有效事务数据,确定与所述有效事务数据对应的所述发起账户地址关联的账户变量值;
确定与所述有效事务数据对应的所述目标账户地址关联的账户变量值;
将与每个所述发起账户地址关联的账户变量值和每个所述目标账户地址关联的账户变量值的集合,确定为与所述事务处理分片对应的账户变量值集。
5.根据权利要求1所述方法,其特征在于,所述委员会分片包括至少一个委员会节点,所述事务处理分片包括至少一个事务处理节点,所述每个所述事务处理分片发送所述账户变量值集至委员会分片,包括:
对于每个所述事务处理分片,基于所述事务处理分片中的事务处理节点数量确定第一事务处理节点组数量和与每个第一事务处理节点组对应的事务处理节点数量;
为每个所述第一事务处理节点组分配与所述事务处理节点数量对应的所述事务处理节点;
确定与每个第一所述事务处理节点组对应的第一委员会节点组;
每个所述第一事务处理节点组中的每个所述事务处理节点发送所述合法账户变量值集至与所述第一事务处理节点组对应的所述第一委员会节点组中的每个所述委员会节点。
6.根据权利要求1所述方法,其特征在于,所述基于有效账户变量值集更新所述委员会分片、所述网关分片和每个所述事务处理分片中与至少一个账户地址对应的账户数据,包括:
遍历每个有效账户变量值集得到至少一个账户数据变化量,以及与每个所述账户数据变化量对应的所述账户地址;
基于与每个所述账户地址对应的至少一个账户数据变化量,确定与每个所述账户地址对应的合并账户变量值;
基于与每个所述账户地址对应的所述合并账户变量值,更新所述委员会分片中与每个所述账户地址对应的账户数据;
发送与至少一个所述账户地址对应的所述合并账户变量值至所述网关分片和每个所述事务处理分片,以使所述网关分片和每个所述事务处理分片更新与至少一个所述账户地址对应的账户数据。
7.根据权利要求6所述方法,其特征在于,所述网关分片包括至少一个网关分片,所述发送与至少一个所述账户地址对应的合并账户变量值至所述网关分片和每个所述事务处理分片,包括:
基于所述委员会节点的数量确定第二委员会节点组数量和与第二每个委员会节点组对应的委员会节点数量;
为每个所述第二委员会节点组分配与所述委员会节点数量对应的所述委员会节点;
对于所述网关分片,确定与每个所述第二委员会节点组对应的网关节点组;
每个所述第二委员会节点组中的每个所述委员会节点发送所述合并账户变量值至与所述第二委员会节点组对应的所述网关节点组中的每个所述网关节点;
或者,对于每个所述事务处理分片,确定与每个所述第二委员会节点组对应的第二事务处理节点组;
每个所述第二委员会节点组中的每个所述委员会节点发送所述合并账户变量值至与所述第二委员会节点组对应的所述第二事务处理节点组中的每个所述事务处理节点。
8.一种基于节点分片的事务数据处理***,其特征在于,包括:
网关分片,用于接收至少一个客户端发送的事务数据,所述事务数据包括账户地址;
网关分片,用于按照预设周期向每个事务处理分片发送对应的事务数据包,所述事务数据包包括至少一个事务数据;
每个所述事务处理分片,用于处理至少一个有效事务数据得到与所述事务处理分片对应的账户变量值集;
每个所述事务处理分片,用于发送所述账户变量值集至委员会分片;
所述委员会分片,用于基于有效账户变量值集更新所述委员会分片、所述网关分片和每个所述事务处理分片中与至少一个账户地址对应的账户数据。
9.一种计算机设备,其特征在于,所述计算机设备包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为执行如权利要求1至7任一所述的基于节点分片的事务数据处理方法。
10.一种计算机可读介质,其特征在于,所述计算机可读介质中存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1至7任一所述的基于节点分片的事务数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011424745.2A CN112463310B (zh) | 2020-12-08 | 2020-12-08 | 基于节点分片的事务数据处理方法、***、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011424745.2A CN112463310B (zh) | 2020-12-08 | 2020-12-08 | 基于节点分片的事务数据处理方法、***、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112463310A true CN112463310A (zh) | 2021-03-09 |
CN112463310B CN112463310B (zh) | 2024-04-23 |
Family
ID=74800261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011424745.2A Active CN112463310B (zh) | 2020-12-08 | 2020-12-08 | 基于节点分片的事务数据处理方法、***、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463310B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114520812A (zh) * | 2021-08-16 | 2022-05-20 | 西安电子科技大学 | 用于区块链分片***的存储轮换方法、***、设备及应用 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107292735A (zh) * | 2017-05-27 | 2017-10-24 | 唐盛(北京)物联技术有限公司 | 一种基于区块链技术的抵押融资方法及*** |
WO2019133621A2 (en) * | 2017-12-26 | 2019-07-04 | Akamai Technologies, Inc. | High performance distributed system of record with distributed random oracle |
US20200026699A1 (en) * | 2018-07-20 | 2020-01-23 | True Blockchain Technology Ltd. | Highly Performant Decentralized Public Ledger with Hybrid Consensus |
CN111736963A (zh) * | 2020-06-08 | 2020-10-02 | 中国科学院计算技术研究所 | 一种用于无主链多分片区块链的事务处理***及方法 |
-
2020
- 2020-12-08 CN CN202011424745.2A patent/CN112463310B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107292735A (zh) * | 2017-05-27 | 2017-10-24 | 唐盛(北京)物联技术有限公司 | 一种基于区块链技术的抵押融资方法及*** |
WO2019133621A2 (en) * | 2017-12-26 | 2019-07-04 | Akamai Technologies, Inc. | High performance distributed system of record with distributed random oracle |
US20200026699A1 (en) * | 2018-07-20 | 2020-01-23 | True Blockchain Technology Ltd. | Highly Performant Decentralized Public Ledger with Hybrid Consensus |
CN111736963A (zh) * | 2020-06-08 | 2020-10-02 | 中国科学院计算技术研究所 | 一种用于无主链多分片区块链的事务处理***及方法 |
Non-Patent Citations (1)
Title |
---|
张志威;王国仁;徐建良;杜小勇;: "区块链的数据管理技术综述", 软件学报, no. 09 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114520812A (zh) * | 2021-08-16 | 2022-05-20 | 西安电子科技大学 | 用于区块链分片***的存储轮换方法、***、设备及应用 |
CN114520812B (zh) * | 2021-08-16 | 2023-02-14 | 西安电子科技大学 | 用于区块链分片***的存储轮换方法、***、设备及应用 |
Also Published As
Publication number | Publication date |
---|---|
CN112463310B (zh) | 2024-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109493050B (zh) | 基于区块链主链加并行多子链的转账方法 | |
US20190074966A1 (en) | Revocation of cryptographic keys in the absence of a trusted central authority | |
CN109472572B (zh) | 基于区块链主链加并行多子链的合约*** | |
US20190287099A1 (en) | Distributed ledger update method | |
CN108848148B (zh) | 基于区块链的交易信息确认方法及装置 | |
CN111275438B (zh) | 区块链网络的共识方法、装置、设备和存储介质 | |
CN109493052B (zh) | 一种基于主链加并行多子链的跨链合约*** | |
CN113657900A (zh) | 一种跨链交易验证方法、***以及跨链交易*** | |
CN112749968B (zh) | 基于区块链的业务数据记录方法及装置 | |
CN111582843A (zh) | 一种基于聚合签名的区块链隐私交易方法 | |
CN109005208B (zh) | 用于推送信息的方法和装置 | |
CN110930254A (zh) | 基于区块链的数据处理方法、装置、终端及介质 | |
CN110928880A (zh) | 基于区块链的数据处理方法、装置、终端及介质 | |
CN110990790B (zh) | 一种数据处理方法及设备 | |
CN112311779A (zh) | 应用于区块链***的数据访问控制方法及装置 | |
CN112463310A (zh) | 基于节点分片的事务数据处理方法、***、设备和介质 | |
CN112181599B (zh) | 模型训练方法、装置及存储介质 | |
CN111310242B (zh) | 设备指纹生成的方法、装置、存储介质及电子设备 | |
US20090083379A1 (en) | Enabling connections for use with a network | |
CN112910643B (zh) | 一种区块链中随机数的生成方法及装置 | |
CN114372799A (zh) | 一种平行链***及其共识方法、设备及储存介质 | |
CN112988738B (zh) | 用于区块链的数据分片方法和装置 | |
CN111585940B (zh) | 一种资源管理方法及其相关设备 | |
CN114820179A (zh) | 区块链验签方法及相关设备 | |
CN115118727B (zh) | 分布式计算架构的数据传输方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |