首页 / 专利库 / 银行与财务事项 / 分布式账本技术 / 区块链 / 区块头 / 基于事务数据分区-链间融合的区块链并行系统及方法

基于事务数据分区-链间融合的链并行系统及方法

阅读:125发布:2020-05-08

专利汇可以提供基于事务数据分区-链间融合的链并行系统及方法专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种基于事务数据分区-链间融合的 区 块 链 并行系统及方法。本发明依据事务数据中包含的源地址及目的地址属性,将并发的事务划分到不同的区块链子网中处理,在各个子网内并行进行共识验证过程,并提出了区块链数据融合方法,将分区后的各个子区块链异步融合为一条融合链。各个客户端调用区块链平台提供的数据服务 接口 ,下载融合链 区块头 ,并通过各个分片链的完整区块链数据,获得全网历史事务数据的全局视图,从而保证了客户端能够生成当前时间合法事务数据。本发明将全局事务数据分区处理,解决了原始区块链技术架构中的优化性能 瓶颈 问题,提升了全局事务处理的通量上限。,下面是基于事务数据分区-链间融合的链并行系统及方法专利的具体信息内容。

1.一种链并行处理系统,包括客户端和区块链平台,所述客户端用于管理账户,并根据事务类型将所述事务发送至所述区块链平台;
所述区块链平台根据地址分片规则对所述事务执行并行处理。
2.根据权利要求1所述的区块链并行处理系统,其特征在于,
所述事务包括片内事务和片间事务;
所述区块链平台包括融合链和至少一条分片链;
所述分片链用于根据地址分片规则并行处理所述片内事务和/或所述片间事务;
所述融合链用于协调所述分片链处理所述片间事务,执行数据融合。
3.根据权利要求2所述的区块链并行处理系统,其特征在于,
所述分片链根据地址分片规则接收所述客户端发送的所述片内事务,并独立完成所述片内事务的共识过程。
4.根据权利要求2所述的区块链并行处理系统,其特征在于,
根据两阶段片间事务处理规则,所述融合链根据地址分片规则接收所述客户端发送的所述片间事务,并协调所述片间事务涉及的所述分片链完成对应的部分地址空间中的所述片间事务共识,所述融合链接收各所述分片链完成的数据,将所述数据融合并保存。
5.根据权利要求4所述的区块链并行处理系统,其特征在于,
所述融合链在接收所述分片链提供的数据后,定期对所述数据进行一致性校验。
6.根据权利要求4所述的区块链并行处理系统,其特征在于,根据两阶段片间事务处理规则处理所述片间事务进一步包括:
在资产定阶段,所述客户端将带有签名的所述片间事务发送至所述融合链,所述融合链接收所述片间事务并验证通过后将所述片间事务分发至对应的所述分片链,所述分片链接收所述片间事务并验证通过后,锁定所述片间事务对应的资产数量;
在结算阶段,所述融合链根据所述分片链的片间事务打包确认信息,向所述分片链发送“片间事务确认”事务或“片间事务撤销”事务,所述分片链根据所述融合链发送的事务类型执行所述片间事务的提交。
7.根据权利要求6所述的区块链并行处理系统,其特征在于,所述分片链根据所述融合链发送的事务类型执行所述片间事务的提交进一步包括:
若所述融合链发送至所述分片链的事务是“片间事务确认”事务,则有源地址和目的地址对应的所述分片链分别确认所述片间事务生效,其中,所述源地址对应的账户资产总额减少对应于所述片间事务的数量,目的地址对应于所述片间事务的数量的账户资产解锁,资产总额增加对应于所述片间事务的数量;
若所述融合链发送至所述分片链的事务是“片间事务撤销”事务,则有所述源地址和所述目的地址对应的所述分片链分别撤销对应于所述片间事务的所述资产的锁定。
8.根据权利要求1-7任一项所述的区块链并行处理系统,其特征在于,所述地址分片规则是一种定期更新的事务分区规则,是指根据上一周期内的地址间事务频率及资金转移关系,将关联度高的地址划分在同一地址段内的事务分区规则。
9.根据权利要求8所述的区块链并行处理系统,其特征在于,
所述地址分片规则进一步包括:在所述系统运行的启动阶段,将地址空间等分成若干个地址段;在所述系统运行的平稳阶段,定期更新所述事务分区规则。
10.一种区块链并行处理方法,所述区块链包括融合链和至少一条分片链,所述方法包括以下步骤:
根据地址分片规则,接收片间事务和/或片内事务;
利用分片链独立完成所述片内事务的共识,其中,所述分片链用于根据地址分片规则并行处理所述片内事务和/或所述片间事务;
根据两阶段片间事务处理规则,利用融合链协调所述分片链并行完成所述片间事务的共识,其中所述融合链用于协调所述分片链处理所述片间事务,执行数据融合。
11.根据权利要求10所述的区块链并行处理方法,其特征在于,
所述根据两阶段片间事务处理规则,利用融合链协调所述分片链并行完成所述片间事务的共识包括:所述融合链根据地址分片规则接收所述片间事务,并协调所述片间事务涉及的所述分片链完成对应的部分地址空间中的所述片间事务共识,所述融合链接收各所述分片链完成的数据,将所述数据融合并保存。
12.根据权利要求10-11任一项所述的区块链并行处理方法,其特征在于,所述地址分片规则是一种定期更新的事务分区规则,根据上一周期内的地址间事务频率及资金转移关系,将关联度高的地址划分在同一地址段内的事务分区规则。
13.根据权利要求12所述的区块链并行处理方法,其特征在于,
所述地址分片规则进一步包括:在所述系统运行的启动阶段,将地址空间等分成若干个地址段;在所述系统运行的平稳阶段,定期更新所述事务分区规则。

说明书全文

基于事务数据分区-链间融合的链并行系统及方法

技术领域

[0001] 本发明涉及计算机领域,特别涉及一种基于事务数据分区-链间融合的区块链并行系统及方法。

背景技术

[0002] 随着计算机技术的不断发展,作为分布式数据存储、点对点传输等计算机技术的新兴应用模式的区块链也取得了重要进步,同时也面临了诸多挑战,可扩展性问题就是其中之一。已知比特币区块链以及以太坊区块链数据均已超过200GB,根据最新统计,完整运行以太坊全部数据的“存档节点”的数据总量已超2TB。根据目前的区块链共识协议,区块链账本数据量会随时间越来越大,尤其以区块链中的公有链为代表,区块链全局账本数据需要在公有链的尽可能多的节点进行全复制存储,这不仅大幅度提高了系统的准入槛,也极大程度的降低了系统可扩展性。
[0003] 区块链技术的最初设计目标是满足小范围的技术社区内的事务数据的验证和使用需求,并未考虑向更广范围的、高并发的互联网应用场景,因此对应的区块链协议更加注重简洁性和健壮性,这就使得现有的区块链全网节点均采用了统一的共识过程,交易数据和区块数据在全网进行广泛的传播,其中,每个共识节点均需要验证并存储所有的区块数据。但是随着技术的不断发展,上述机制导致区块链中的交易处理速度远远低于主流的中心化处理系统。
[0004] 例如,在现有的比特币网络中,每笔交易的数据量一般为平均500字节,若要达到每秒500个交易的处理速度,每个区块链数据节点就需要增加10TB的存储;假设节点的平均网络带宽为10Mbit/s,那么每个节点的每秒可以接收的交易数量上限是1000,但事实上,受上述同步机制的影响,每个区块链网络节点每秒能接收到的交易数量上限只有200左右。这就使得在上述区块链核心协议中,仅对区块链系统的运行参数进行调整所能预期的效率提升十分有限。
[0005] 因此,需要一种可靠性好、可扩展性好并能大幅度提升区块链运行效率的区块链处理系统及方法。

发明内容

[0006] 本发明提供一种区块链并行处理系统,包括客户端和区块链平台,所述客户端用于管理账户,并根据事务类型将所述事务发送至所述区块链平台;所述区块链平台根据地址分片规则对所述事务执行并行处理。
[0007] 优选的,所述事务类型包括片内事务和片间事务;所述区块链平台包括融合链和至少一条分片链;所述分片链用于根据地址分片规则并行处理所述片内事务和/或所述片间事务;所述融合链用于协调所述分片链处理所述片间事务,并接收各所述分片链打包的数据,将所述数据融合并保存。
[0008] 优选的,所述分片链根据地址分片规则接收所述客户端发送的所述片内事务,并独立完成所述片内事务的共识过程。
[0009] 优选的,根据两阶段片间事务处理规则,所述融合链根据地址分片规则接收所述客户端发送的所述片间事务,并协调所述片间事务涉及的所述分片链完成对应的部分地址空间中的所述片间事务共识,所述融合链接收各所述分片链完成的数据,将所述数据融合并保存。
[0010] 优选的,所述融合链在接收所述分片链提供的数据后,定期对所述数据进行一致性校验。
[0011] 优选的,根据两阶段片间事务处理规则处理所述片间事务进一步包括:
[0012] 在资产定阶段,所述客户端将带有签名的所述片间事务发送至所述融合链,所述融合链接收所述片间事务并验证通过后将所述片间事务分发至对应的所述分片链,所述分片链接收所述片间事务并验证通过后,锁定所述片间事务对应的资产数量;
[0013] 在结算阶段,所述融合链根据所述分片链的片间事务打包确认信息,向所述分片链发送“片间事务确认”事务或“片间事务撤销”事务,所述分片链根据所述融合链发送的事务类型执行所述片间事务的提交。
[0014] 优选的,所述分片链根据所述融合链发送的事务类型执行所述片间事务的提交进一步包括:
[0015] 若所述融合链发送至所述分片链的事务是“片间事务确认”事务,则所述源地址和目的地址对应的所述分片链分别确认所述片间事务生效,其中,所述源地址对应的账户资产总额减少对应于所述片间事务的数量,目的地址对应于所述片间事务的数量的账户资产解锁,资产总额增加对应于所述片间事务的数量;
[0016] 若所述融合链发送至所述分片链的事务是“片间事务撤销”事务,则所述源地址和所述目的地址对应的所述分片链分别撤销对应于所述片间事务的所述资产的锁定。
[0017] 优选的,所述地址分片规则是一种定期更新的事务分区规则,是指根据上一周期内的地址间事务频率及资金转移关系,将关联度高的地址划分在同一地址段内的事务分区规则。
[0018] 优选的,所述地址分片规则进一步包括:在所述系统运行的启动阶段,将地址空间等分成若干个地址段;在所述系统运行的平稳阶段,定期更新所述事务分区规则。
[0019] 根据本发明的另一个方面,还提供一种区块链并行处理方法,包括以下步骤:根据地址分片规则,接收片间事务和/或片内事务;利用分片链独立完成所述片内事务的共识;根据两阶段片间事务处理规则,利用融合链协调所述分片链并行完成所述片间事务的共识。
[0020] 优选的,所述根据两阶段片间事务处理规则,利用融合链协调所述分片链并行完成所述片间事务的共识包括:所述融合链根据地址分片规则接收所述片间事务,并协调所述片间事务涉及的所述分片链完成对应的部分地址空间中的所述片间事务共识,所述融合链接收各所述分片链完成的数据,将所述数据融合并保存。
[0021] 优选的,所述地址分片规则是一种定期更新的事务分区规则,根据上一周期内的地址间事务频率及资金转移关系,将关联度高的地址划分在同一地址段内的事务分区规则。
[0022] 优选的,所述地址分片规则进一步包括:在所述系统运行的启动阶段,将地址空间等分成若干个地址段;在所述系统运行的平稳阶段,定期更新所述事务分区规则。
[0023] 相对于现有技术,本发明取得了如下有益技术效果:
[0024] 1、本发明提供的基于事务数据分区-链间融合的区块链并行系统及方法,解决了现有区块链基础架构和核心协议面临的通量优化受限及扩展性受限的问题;
[0025] 2、本发明提供的基于事务数据分区-链间融合的区块链并行系统及方法,从待处理的事务数据可分区并行处理和异步数据融合的度入手,在区块链基础架构和核心协议之上,提出了区块链异步并行分区数据融合方法,解决了现有通量优化方案(如参数优化、跨链通信、链外通道)的瓶颈问题;
[0026] 3、本发明提供的基于事务数据分区-链间融合的区块链并行系统及方法,其通量优化预期可以达到现有的独立区块链通量优化技术的N/4至N倍(其中,N为分区个数);
[0027] 4、本发明提供的基于事务数据分区-链间融合的区块链并行系统及方法,能够与现有的独立区块链通量优化技术正交使用,即本发明提供的基于事务数据分区-链间融合的区块链并行系统及方法可以同时与现有的独立区块链通量优化技术结合使用,通过从不同的角度对区块链进行通量优化,从而获得更好的通量优化效果。附图说明
[0028] 图1是本发明优选实施例提供的区块链并行系统的架构示意图。
[0029] 图2是本发明优选实施例提供的融合链片间事务处理模块结构示意图。
[0030] 图3是本发明优选实施例提供的融合链的区块链融合模块结构示意图。
[0031] 图4本发明优选实施例提供的分片链片间事务处理模块结构示意图。
[0032] 图5是本发明优选实施例提供的分片X中账户A向账户B转移数量为V的资产的片内事务处理流程图
[0033] 图6是本发明优选实施例提供的分片1中账户A向分片2中账户B转移数量为V的资产的片间事务处理流程图。
[0034] 图7是本发明优选实施例提供的为分片链数据融合流程图。

具体实施方式

[0035] 为了使本发明的目的、技术方案以及优点更加清楚明白,以下结合附图,对本发明的实施例中提供的基于事务数据分区-链间融合的区块链并行系统及方法进一步详细说明。
[0036] 在区块链现有基础架构和协议框架下对区块链技术进行优化,已提出了多种方式,例如基础优化、侧链优化和容量优化。其中基础优化主要是通过优化协议内置的参数,例如,区块间隔或区块大小,以及优化运行环境参数,例如,挖矿节点的GPU、内存、硬盘或网络带宽等,这种优化方式带来的优化效果通常只能在一定的范围内实现,无法在高通量场景下应用;而侧链优化时为了实现多链之间的业务互通,其关注的核心问题仅限于业务场景的跨链,并没有给通量需求带来技术进步;另外,支付通道网络的提出虽然可以一定程度缓解交易性能不足的问题,但是目前该方法并没有支持多方之间支付通道匿名性,当发生争议时,需要向网络公开支付通道中的余额状态,无法满足匿名的需求。支付通道网络还存在着通道失衡、阻塞、交易处理延迟波动大等问题,无法长期稳定提升系统整体性能。
[0037] 随着高并发和高通量业务场景应用需求的不断增加,上述优化方式制约了区块链技术的发展。发明人经认真研究,发现现有技术中缺乏对区块链通量的优化主要是由于未能考虑“事务数据”(或称交易数据)可分区并行处理及多链(或称多分片链)数据可异步融合的特性而导致的。一方面,在现有的公有链协议中,为了避免“双花攻击”,事务数据在整个网络内尽可能被所有共识节点进行重复验证,其中也包含了不存在“双花攻击”问题的事务数据,这就导致了事务数据重复验证的可靠性冗余;另一方面,受现有区块链系统架构和协议的制约,各种优化方式均受到了网络带宽和共识节点的限制,无论是参数调优、跨链通信或者链外通道,其处理速率受限于硬件性能。
[0038] 为了解决现有技术中区块链的通量优化问题,发明人提出通过链间(片间)事务数据分区结合链间(片间)异步数据融合的方式,将现有区块链事务的串行处理过程转化为异步并行处理过程,使得通量优化技术建立在区块链基础架构和核心协议的基础之上,从而不再受限于带宽和单点瓶颈,以便更好的适应高通量和高并发的业务应用场景。下面将结合具体实施例进行详细描述。
[0039] 在本发明一个实施例中,图1是本发明优选实施例提供的区块链并行系统的架构示意图,如图1所示,本发明提供了一种基于事务数据分区-链间融合的区块链并行系统,该系统包括区块链平台和客户端。
[0040] 其中,客户端用于管理账户私钥。当用户发出新的事务时,根据事务的类型(片内/片间)将事务发送给区块链平台进行相应的处理,并使用区块链平台的数据服务获取其本地账户的全网最新状态信息。
[0041] 区块链平台由融合链和分片链组成。其中,每条分片链依据地址分片规则并行处理某一部分地址空间中地址的相关事务(片内/片间)。
[0042] 在本发明的一个实施例中,片内事务由各分片链独立完成共识过程,片间事务由融合链节点协调该事务所涉及的分片链采用“两阶段片间事务处理”方法完成共识过程。当事务在分片链共识完成后,融合链将各分片链数据异步融合,将原始事务最终保存至融合链中。
[0043] 在本发明的一个实施例中,上述区块链并行处理系统可以包含至少一个客户端,其中每个客户端均可包括至少一个分片账户。
[0044] 在本发明的一个实施例中,区块链平台包括一条融合链和至少一条分片链。
[0045] 在本发明的一个实施例中,区块链平台中的融合链及分片链均由多个节点组成,如图1所示,其中每个节点所包括的功能模块至少包括“区块链融合模块”、“片间事务处理模块”、“片内事务处理模块”以及“地址分片模块”等。例如,当客户端将片间事务发送给融合链的片间事务处理模块时,是指客户端将片间事务发送给融合链中的节点,由节点运行程序的片间事务处理模块来对该事务进行处理。
[0046] 在本发明的一个实施例中,客户端包括账户私钥管理模块、事务数据管理模块和数据同步模块。
[0047] 其中,账户私钥管理模块用于生成并在本地保存账户私钥。在本发明的一个实施例中,账户私钥管理模块利用了椭圆曲线数字签名算法(ECDSA)与Keccak-256算法得到私钥对应的账户地址,供事务数据管理模块使用;
[0048] 事务数据管理模块包括事务数据发送单元与事务数据监听单元。其中,事务数据发送单元用于根据用户构造的事务中所涉及的账户地址以及当时刻区块链平台地址分片规则,确定事务类型并发送至融合链或分片链,成功后,即可将该事务移至事务数据监听单元;事务数据监听单元可用于监听客户端已发送事务的执行状态(等待/成功/失败),在检测到事务打包确认或返回错误信息后,将结果反馈给用户。
[0049] 在本发明的一个实施例中,若事务数据发送单元确定上述事务类型为片间事务,则将该事务发送至融合链“片间事务处理模块”;若事务数据发送单元确定上述事务类型为片内事务,则将该事务发送至对应分片链“片内事务处理模块”;
[0050] 数据同步模块用于定期向各分片查询本地账户最新状态,更新本地账户信息。
[0051] 在本发明的一个实施例中,上述区块链平台中的融合链包括区块链融合模块、地址分片模块、数据服务模块和片间事务处理模块。其中,区块链融合模块用于根据分区事务融合规则,将全网各分片链事务异步地添加至融合链中,从而为上层应用提供完整的账户状态信息。在系统正常运行过程中,融合链的片间事务处理模块根据地址分片规则接收的客户端发来的“片间事务”,协调所涉及的分片链,按照“两阶段片间事务处理”方法完成“片间事务”在各分片的共识以及最终保存至融合链。地址分片模块负责定期依据帐户间事务记录计算地址分片规则,减少片间事务比例。数据服务模块为客户端、上层应用等提供区块链基础信息查询服务。
[0052] 在本发明的一个实施例中,融合链包含了多个融合链节点,其中,每个节点均包含“片间事务处理模块”、“区块链融合模块”、“地址分片模块”、“数据服务模块”;并且每个节点的“片间事务处理模块”仅负责一部分地址空间中片间事务处理操作,在实现并行处理客户端发出的片间事务处理请求的同时,避免了客户端的片间事务在分片链重复执行。
[0053] 在本发明的一个实施例中,由于各节点可独立进行分片链数据融合操作,为保证融合链节点间数据一致性,融合链节点间可以定期校验各自数据是否一致,例如,账户状态树根节点HASH值、区块头链一致性等,一般来说,相对于区块链的共识过程,上述校验过程可忽略不计。
[0054] 在本发明的一个实施例中,图2是本发明优选实施例提供的融合链片间事务处理模块结构示意图,如图2所示,融合链片间事务处理模块包括事务检验单元、片间事务处理数组和分片链片间事务处理协调单元。具体的:
[0055] 1)事务检验单元用于接收来自客户端的片间事务,并检验事务基本信息,是否为片间事务、是否应该由本节点转发、源地址对应账户状态等。具体的,若校验通过,则将该事务加入到片间事务处理数组当中,并向客户端反馈“事务接收”;若检验不通过,则向客户端返回错误信息;
[0056] 2)片间事务处理数组用于缓存正在处理的片间事务,并记录该片间事务的执行状态;
[0057] 3)分片链片间事务处理协调单元用于将片间事务处理数组中事务分发给所涉及分片链的片间事务处理模块,并协调各模块采用“两阶段片间事务处理”方法并行执行片间事务。具体的,若最终执行成功,则将片间事务从片间事务处理数组中移除,并向客户端返回“执行成功”;若最终执行失败或执行超时,则将片间事务从片间事务处理数组中移除,并向客户端返回“执行失败”。
[0058] 在本发明的一个实施例中,图3是本发明优选实施例提供的融合链的区块链融合模块结构示意图,如图3所示,区块链融合模块包括分片链数据获取单元、分片链事务检验及融合单元和片间事务融合数组。具体的:
[0059] 1)分片链数据获取单元用于定期从各分片链获取最新区块信息,经过区块检验之后,将通过检验的分片链区块中事务推送给分片链事务检验及融合模块;
[0060] 2)片间事务融合数组用于缓存正在处理的片间事务,并记录该片间事务的融合状态;
[0061] 3)分片链事务检验及融合单元在接收到分片链数据获取单元提供的事务信息后,对片内事务与片间事务分别进行处理,并按序将事务添加至节点本地融合链中,以便定期与其他融合链节点一同进行融合链数据一致性校验。
[0062] 在本发明的一个实施例中,上述片内事务在经事务有效性验证后,可直接将该事务添加至节点本地融合链中;上述片间事务由于在处理过程中使用“两阶段片间事务处理”方法,因此在获取到的所有分片链数据中会包含多个与某一个片间事务相关的事务记录。
[0063] 在本发明的一个实施例中,可以按照时间顺序,将第一次获取到某片间事务相关事务记录时将其添加至片间事务融合数组,并记录对应分片链编号及对应区块号。
[0064] 在本发明的一个实施例中,若两个所涉及分片链在之后一定时间段内包含该片间事务的所有“两阶段片间事务处理”方法相关事务且执行状态为“成功”,则将该片间事务从片间事务融合数组中移除并添加至节点本地融合链中。
[0065] 在本发明的一个实施例中,若一定时间段内,没有接收到完整的“两阶段片间事务处理”方法相关事务或接收到“事务撤销”事务,则将该事务移出片间事务融合数组。
[0066] 在本发明的一个实施例中,融合链的地址分片模块与分片链地址分片模块设计及实现原理相同,采用优选的分区方法对当前时段的待验证处理的事务进行分区。
[0067] 在本发明的一个实施例中,融合链数据服务模块通过索引融合链以及各模块数据信息,为上层应用提供完整的账户状态信息。
[0068] 在本发明的一个实施例中,图1所示的区块链平台中的分片链可用于接收并执行特定地址空间中账户状态改变的相关事务(片内/片间),并维护特定地址空间中账户的最新状态,从而为上层应用提供该地址空间中最新的账户状态信息。其中,分片链包括分片链片内事务处理模块、分片链片间事务处理模块、分片链地址分片模块以及分片链数据服务模块
[0069] 在本发明的一个实施例中,当系统在正常运行过程中,如果是片内事务,则由分片链片内事务处理模块依据地址分片规则接收客户端发来的事务,并在本分片内完成共识过程;如果是片间事务,则由分片链片间事务处理模块接收由融合链节点的融合链片间事务处理模块发来的片间事务,采用“两阶段片间事务处理”方法,保证片间事务的正常执行。
[0070] 在本发明的一个实施例中,当分片链片内事务处理模块接收到客户端发来的片内事务之后,将执行以下步骤进行处理:
[0071] 1)检验接收到的事务的基本信息,例如,是否属于本分片的片内事务、源账户资金是否充足、是否存在“双花攻击”等;
[0072] 2)若检验通过,则将该事务添加至本地事务池,例如,待执行事务的缓存结构中,并按序或者按照收益大小打包执行;
[0073] 3)若检验不通过,则向客户端返回“事务执行失败”的信息,并将该事务丢弃。
[0074] 在本发明的一个实施例中,图4本发明优选实施例提供的分片链片间事务处理模块结构示意图,如图4所示,分片链片间事务处理模块包括事务检验单元、片间事务处理数组以及两阶段片间事务处理单元。
[0075] 其中,事务检验单元用于接收融合链节点发来的片间事务,用于检验由融合链片间事务处理模块转发的片间事务基本信息,例如,源地址/目的地址是否属于该分片、若为本分片源地址其余额是否充足等。具体的,若检验通过,则将该事务加入到片间事务处理数组当中,并向融合链片间事务处理模块返回“事务接收”信息;若检验不通过,则向融合链片间事务处理模块返回“事务错误”信息。
[0076] 片间事务处理数组用于缓存正在处理的片间事务并记录其执行状态。
[0077] 两阶段片间事务处理单元负责协助融合链片间事务处理模块采用“两阶段片间事务处理”方法完成片间事务处理操作。
[0078] 在本发明的一个实施例中,分片链地址分片模块与融合链地址分片模块设计及实现原理相同,采用优选的分区方法对当前时段的待验证处理的事务进行分区。
[0079] 在本发明的一个实施例中,分片链数据服务模块通过索引分片链以及各模块数据信息,为上层应用提供完整的账户状态信息。
[0080] 下面结合具体实施例说明本发明提供的优选的事务分区方法。
[0081] 在本发明的一个实施例中,假设事务数据包含的核心内容为地址A向地址B的交易行为,其包含的典型数据结构为:“源地址A”、“目的地址B”、“转移金额V”、“事务序号N”、“事务输入(Input)”、“其他”,其中的地址为非对称密钥技术中公钥经Keccak-256算法得到的哈希值的后160位(20字节)。
[0082] 为了降低片间事务比例,从而提高网络整体事务执行并发度,提升网络整体通量,发明人经研究提出了一种有效的事务分区方法,即将网络整体运行过程划分为启动阶段与平稳运行阶段,针对不同阶段分别采用不同的事务分区方法。其基本思路在于,将地址空间账户地址划分为多个地址段,由每个分片链负责维护某一地址段的账户最新状态信息,每个片内事务发往该事务源地址对应分片链处理,每个片间事务由区块链平台采用“两阶段片间事务处理”方法完成共识过程。
[0083] 在本发明的一个实施例中,由于在网络启动阶段,不清楚各地址间事务关系,因此可将地址空间等分成N个地址段(N代表分片链条数),每条分片链负责维护地址空间中1/N的地址的最新状态。例如,由公钥经Keccak-256算法得到的哈希值构成的账户地址,随机分布在0~2^160的地址空间中,假设分片链划分的个数为N,则选取源地址前log2N位的二进制地址编码作为事务数据划分依据,即地址前log2N为二进制编码的十进制数值加1即为该地址对应分片链编号。则有,当N=4时,地址分片情况如下表1所示。
[0084] 表1地址分片示例
[0085]
[0086] 在本发明第一个实施例中,由于在网络平稳运行阶段,网络能够整体定期更新地址分片(事务分区)规则,依据上一周期内地址间事务频率及资金转移关系,应用改进的社区发现算法可将关联度较高的地址划分至1个地址段内,从而降低网络整体片间事务比率,提高网络整体通量平。由于分片规则更新后,各分片链处理账户地址相较与前一时段可能有所不同,对于新增地址,分片链通过融合链数据服务模块获取新增地址对应账户的最新状态信息。此外,在每一周期内,对于网络中新出现的地址,由于其没有事务记录,客户端可通过访问融合链数据服务模块,将其划分到其第一笔接收事务的源地址所属地址段中。
[0087] 在本发明的一个实施例中,上述两阶段片间事务处理方法是指将片间事务处理方法分为资产锁定与结算两个阶段,具体的:
[0088] 在第一阶段,即,资产锁定阶段,可执行如下步骤:
[0089] 1)事务发出:客户端通过查询融合链数据服务模块,获取构造片间事务Tx的基本信息,并指明由事务源地址A、目的地址B、资产转移金额V等信息,随后使用片间事务Tx源地址的私钥对该事务进行签名。最后,将片间事务Tx发送给融合链片间事务处理模块;
[0090] 2)事务验证:融合链片间事务处理模块在接收到片间事务Tx之后。首先,验证其有效性与正确性。若验证通过,则将事务Tx加入片间事务处理数组,更新事务Tx执行状态为“预执行”,并向客户端返回“事务接收”。若验证不通过,则将事务Tx丢弃,并向客户端返回验证不通过的原因;
[0091] 3)事务分发:融合链片间事务处理模块将事务Tx分发给所涉及的分片链,即,源地址所在分片与目的地址所在分片;
[0092] 4)资产锁定:源地址所在分片链的片间事务处理模块在收到事务Tx并检验通过后,将事务Tx打包进本地区块链中,从而将源地址账户中数量为V的资产锁定。目的地址所在分片链的片间事务处理模块在收到事务Tx并检验通过后,将事务Tx打包进本地区块链中,为目的地址账户增加一笔数量为V的锁定资产。
[0093] 至此,资产锁定阶段结束。
[0094] 而在第二阶段,即,结算阶段,可执行如下步骤:
[0095] 1)事务确认:当融合链片间事务处理模块将事务Tx发送给所涉及分片链之后,启动计时器,计时时长为T。若在T时间段内收到由区块链数据融合模块提交的源地址所在分片链与目的地址所在分片链的事务打包确认信息,融合链片间事务处理模块向两条所涉及的分片链片间事务处理模块发送“事务Tx确认”事务,向客户端返回“事务确认”信息,并将事务Tx从片间事务处理数组中移出。若超过时间T没有收到两条分片链的事务打包确认信息(收到一条或均没有收到)或收到分片链片间事务处理模块返回的“事务错误”信息,融合链片间事务处理模块向两条所涉及分片链片间事务处理模块发送“事务Tx撤销”事务,向客户端返回“事务处理超时”信息,并将事务Tx从片间事务处理数组中移出。
[0096] 2)事务提交:依据融合链片间事务处理模块返回的不同信息。
[0097] 其中,融合链片间事务处理模块发送“事务Tx确认”事务:源地址所在分片链将“事务Tx确认”事务打包进本地分片链,即,确认片间事务Tx生效,源地址对应账户资产总额减少V;目的地址所在分片链将“事务Tx确认”事务打包进本地分片链,即,确认片间事务Tx生效,目的地址对应账户数量为X的锁定资产解锁,其资产总额增加X;
[0098] 而融合链片间事务处理模块发送“事务Tx撤销”事务,即,源地址所在分片链与目的地址所在分片链将“事务Tx撤销”事务打包进本地分片链,撤销先前资产锁定操作;
[0099] 至此,两阶段片间事务处理方法执行结束。
[0100] 在本发明的一个实施例中,由于在分区数(分片链个数)为N的网络中,区块链数据融合过程以及融合链数据一致性校验过程相比于区块打包过程可忽略不计,若所有事务均为片内事务,网络整体通量提升水平约为N倍;若所有事务均为片间事务,由于片间事务处理包含2个阶段并涉及2个分片链,网络整体通量提升水平为N/4倍。
[0101] 假设网络中片间事务占网络总事务的比例为α,则网络整体通量提升水平为:
[0102]
[0103] 因此,网路整体通量提升水平在N/4倍至N倍之间。
[0104] 而在地址间事务完全随机发生的网络中,各地址随机向各分片地址发送资金转移事务,此时片间事务占网络总事务的比例:
[0105]
[0106] 则有,网络整体通量提升倍数为:
[0107]
[0108] 由此可知,本发明提供的基于事务数据分区-链间融合的区块链并行处理系统及方法中,通过利用各分片链并行处理客户端发出的事务,利用融合链节点协调片间事务执行与异步分片链数据融合,不仅能够保证系统可扩展性、事务数据一致性,还能够实现网络整体通量水平的大幅提升。
[0109] 特别是在当前主流的区块链技术架构中,普遍继承了原始区块链设计中的单链运行模式,导致了实际业务场景下普遍面临通量较低、扩展性较差等问题,而相关研究主要集中在跨链、链外状态通道等技术路线,缺少多链数据融合方向的深入研究。发明人研究发现了区块链内的核心事务数据在业务模式上可分区,且在运行确定性层面可融合,这为链上海量事务数据的分区并行处理提供了技术前提。根据上述分析可知,相比于现有技术,本发明的技术方案可实现链上事务数据的高效并行处理及可靠验证确认流程,可N/4至N倍提升现有区块链网络内的事务处理通量。因此,本发明的技术方案巧妙解决了主流区块链技术架构中单链扩展性受限及通量较低的问题。
[0110] 下面结合具体应用实例对本发明提供的基于事务数据分区-链间融合的区块链并行处理系统及方法进一步详细说明,其中,该应用实例中涉及的主要数据结构定义如下表所示:
[0111]
[0112]
[0113]
[0114] 在本发明的一个实施例中,图5是本发明优选实施例提供的分片X中账户A向账户B转移数量为V的资产的片内事务处理流程图。如图5所示,该流程具体如下:
[0115] 首先,由账户A所在客户端访问区块链平台中任意区块链节点(融合链或分片链)的数据服务模块,获取账户A与并账户B所属分片编号X;
[0116] 其次,由账户A所在客户端访问分片X数据服务模块,获取账户A的事务序号N,构造事务T并由账户A的私钥签名;
[0117] 最后,由账户A所在客户端将该事务发送至分片X的节点,由分片链X完成事务共识过程。
[0118] 其中,若执行失败,则向账户A所在客户端返回“事务错误”信息;若成功执行,则账户A资产总额减少V,账户B资产总额增加V,账户A事务序号增加1,事务正常结束。
[0119] 通过以上过程,实现了不同分片链内事务优化划分,提升了事务执行的并行化程度,并提升网络整体通量水平。
[0120] 在本发明的一个实施例中,图6是本发明优选实施例提供的分片1中账户A向分片2中账户B转移数量为V的资产的片间事务处理流程图,此处省略了账户A与账户B所属分片的判断过程,并简化了“两阶段片间事务处理”方法。如图6所示,该流程具体如下:
[0121] 客户A所在客户端在成功构建事务之后,将该事务发给融合链节点,由融合链节点检验该事务的有效性;若检验失败,融合链节点向账户A所在客户端返回“事务错误”信息;若检验成功,则按照“两阶段片间事务处理”方法,完成该事务的执行确认过程,从而最终将分片1账户A资产总额减少V,分片2账户B资产总额增加V,分片1账户A事务序号增加1。
[0122] 虽然对于单一片间事务,以上过程是串行处理的,但单一片间事务仅涉及2个分片链,对于全网而言,全网片间事务依旧能够并行执行,相比于现有单链架构,仍能够实现通量大幅提升。
[0123] 在本发明的一个实施例中,图7是本发明优选实施例提供的为分片链数据融合流程图。如图7所示所示,该流程的步骤具体如下:
[0124] 在正常运行过程中,各分片链保存内部区块链数据,并且由各分片链独立维护分片链数据。融合链区块链数据融合模块循环监听各分片链区块链数据更新情况,若某分片链有新区块共识完成,则将该区块中事务数据按照区块内打包顺序排列,不同分片链间区块按照区块产生的时间戳从小打大排序,之后按照事务类型以不同方式提交至融合链当中。
[0125] 其中,对于片内事务,经事务有效性验证后,可直接将该事务添加至节点本地融合链;对于片间事务,由于在片间事务处理过程中使用“两阶段片间事务处理”方法,因此在获取到的所有分片链数据中会包含多个与某一个片间事务相关的事务记录。
[0126] 例如,可以按照时间顺序,在第一次获取到某片间事务相关事务记录时将其添加至片间事务融合数组,并记录对应分片链编号及对应区块号。若两个所涉及分片链在之后一定数量的区块内包含该片间事务的所有“两阶段片间事务处理”方法相关事务且执行状态为“成功”,则将该片间事务从片间事务融合数组中移除并添加至节点本地融合链中。若一定数量区块内,没有接收到完整的“两阶段片间事务处理”方法相关事务或接收到“事务撤销”事务,则将该移出片间事务融合数组。
[0127] 而对于事务确认事务以及事务撤销事务,则不添加进融合链。
[0128] 在以上过程中,由于区块链数据融合过程仅用于记账,即,将各分片链中原始事务记录在融合链中,融合链数据融合生成过程不需要引入新的共识验证机制,这也使其所需时间,即,分片链数据融合与节点间一致性校验,远小于各分片链新区块打包执行所需时间。从而与各分片链一起在保证全网历史事务数据可信性和完整性的情况下,为上层应用提供即时、完整的账户状态信息。
[0129] 根据本发明的另一个方面,还提供一种区块链并行处理方法,包括以下步骤:
[0130] 根据地址分片规则,接收片间事务和/或片内事务;
[0131] 利用分片链独立完成所述片内事务的共识;
[0132] 根据两阶段片间事务处理规则,利用融合链协调所述分片链并行完成所述片间事务的共识。
[0133] 尽管在上述实施例中,采用了具体的数据结构为例对本发明提供的基于事务数据分区-链间融合的区块链并行处理系统及方法进行了说明,但本领域普通技术人员应理解,除了上述实施例中介绍的数据结构外,本发明提供的区块链并行处理系统及方法还具有更加广泛的应用领域。
[0134] 虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所做出的各种改变以及变化。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈