一种基于树状结构的分片区块链生成方法与流程

文档序号:16006861发布日期:2018-11-20 20:10阅读:191来源:国知局

本申请涉及区块链技术领域,特别涉及一种基于树状结构的分片区块链生成方法。



背景技术:

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链的最大特点是无需中心化的服务节点。借助区块链技术可以降低维护高性能中心化设备的人力物力。去中心化意味着在分布式服务集群中没有中心化的配置管理节点负责确定网络中消息的顺序。但是,去中心化结构由于缺失配置管理中心使得分布式服务集群中的成员节点可能会因为网络通信信道的不可靠性导致节点之间的状态不一致,因此区块链引入了一致性协议(共识算法)用于处理去中心化的分布式集群的一致性问题。

传统的共识算法包括2PC,3PC,paxo和基于paxos算法衍生出的一系列算法。共识算法被用于保证分布式系统的一致性。但是传统的共识算法往往需要集群中产生一个领导者节点用于减小用户发往集群的消息量并确定消息的顺序。但由于区块链系统没有中心节点,所以客户端需要将自己的请求发送给所有的服务节点。而不可靠信道和网络延时会使得各个节点对收到的客户端请求的视角不一致,所以区块链的一致性协议首先需要让集群内部的节点确定客户端请求的顺序,然后再决定是否能够执行客户端请求。

传统的区块链是采用了选举领导者的思想,通过选举领导者并让领导者决定执行哪些客户端的请求。此外,为了保证系统的一致性和可验证性,区块链采用了单链表的形式存储已经执行的客户端请求。此外,为了避免系统中的领导者带来过多的中心化,传统区块链采用了工作量证明(proof of work)的方式选举领导者。服务节点会根据规则尝试着找到一个满足要求的客户端请求的集合。同时,为了保证区块链网络中节点的一致性,基于单链表存储形式的一致性协议要求整个区块链服务网络每次只会产生一个客户端请求的集合,并且区块链系统要求每次生成客户端请求的集合时需要利用单向散列函数对该集合进行验证,只有符合要求的集合才能被写入数据库。而由于单向散列函数具有不可逆性,所以服务节点只能利用穷举的方式去暴力寻找符合要求的集合,找寻集合的过程往往耗时很长且需要消耗大量的计算力。

申请内容

鉴于现有技术的不足,本申请旨在提供一种基于树状结构的分片区块链生成方法。

本申请所采用的技术方案如下:

一种基于树状结构的分片区块链生成方法,其包括:

将服务端系统划分为至少一个分组,并分别选取各分组的领导者;

所述领导者根据自身本地数据库状态打包生成至少一区块,并将所述至少一区块广播至其所在分组的所有成员;

验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组。

所述基于树状结构的分片区块链生成方法,其中,所述将服务端系统划分为至少一个分组,并分别选取各分组的领导者具体为:

根据预设条件将所述服务端系统划分为至少一个分组,其中,各分组的成员数量均为预设数量阈值;

根据各分组包含的成员的工作量证明选取领导者,其中,所述领导者为具有最小工作证明量的成员。

所述基于树状结构的分片区块链生成方法,其中,所述领导者根据自身本地数据库状态打包生成至少一区块,并将所述至少一区块广播至其所在分组的所有成员具体包括:

所述领导者获取自身的本地数据库状态,并根据所述本地数据库状态确定可执行的客户端请求以及执行顺序;

根据可执行的客户端请求以及执行顺序打包生成至少一区块,并将所述至少一区块组播至其所在分组的所有成员。

所述基于树状结构的分片区块链生成方法,其中,所述验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组具体包括:

所述领导者生成所述区块产生对应的投票单,并将所述投票单按照预设的环状拓扑结构依次传送至其所在分组包含的所有成员,以对所述区块包含各客户端请求进行投票;

领导者将投票完成的投票单,并根据所述投票完成的投票单确定各分组对应的区块,并将所述区块同步至其他分组。

所述基于树状结构的分片区块链生成方法,其中,所述验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组之后还包括:

根据各分组对应的区块构建默克尔树,并计算所述默克尔树的树根的哈希值;

根据所述哈希值确定领导者偏移量,并根据所述领导者以及领导者偏移量分别确定各分组下一轮的领导者;

各分组下一轮的领导者重复开启下一轮的区块。

所述基于树状结构的分片区块链生成方法,其中,所述根据所述哈希值确定领导者偏移量,并根据所述领导者以及领导者偏移量分别确定各分组下一轮的领导者具体包括:

根据各分组包含的成员数量对所述哈希值进行取模运行,以得到各分组对应的领导者与下一轮领导者之间的距离;

根据各距离按照顺时针方向确定各分组的领导者偏移量,并各分组领导者按照所述领导者偏移量进行偏移,以得到下一轮的领导者。

所述基于树状结构的分片区块链生成方法,其中,所述根据所述哈希值确定领导者偏移量,并根据所述领导者以及领导者偏移量分别确定各分组下一轮的领导者之后还包括:

当接到新成员加入服务端系统的请求时,新成员查询所述服务端系统包含的所有分组以及各分组包含的成员;

新成员完成自身的工作量证明,根据所述工作量证明确定其对应的分组,并将所述工作量证明广播至所述分组包含的所有成员;

各成员对所述新成员进行表决,根据所述表决结果确定新成员是否加入所述分组。

所述基于树状结构的分片区块链生成方法,其中,所述各成员对所述新成员进行表决,根据所述表决结果确定新成员是否加入所述分组之后包括:

当监听到存在分组的成员数量达到预设数量时,判断服务端系统的分裂间隔时间是否达到预设时间阈值;

当达到预设时间阈值时,各分组包含的各成员完成其自身的工作量证明,并将工作量证明广播至其所在分组的其他成员;

各分组的领导者根据接收到工作量证明按照预设条件将其所在分组划分为至少一个子分组,以生成服务端系统新的分组。

所述基于树状结构的分片区块链生成方法,其中,所述各分组的领导者根据接收到工作量证明按照预设条件将其所在分组划分为至少一个子分组,以生成服务端系统新的分组具体包括:

分别获取各子分组包含的成员数量,并根据所述成员数量确定各子分组是否满足预设条件的第一子分组;

将所有未满足预设条件的第一子分组去除,以生成服务端系统新的分组。

所述基于树状结构的分片区块链生成方法,其中,所述各分组的领导者根据接收到工作量证明按照预设条件将其所在分组划分为至少一个子分组,以生成服务端系统新的分组之后还包括:

领导者获取其所在分组划分得到的子分组的数量;

当所述子分组的数量为1时,将所述子分组对应分组包含的客户端请求同步至所述子分组;

当所述子分组的数量为大于1时,将所述子分组对应分组包含的客户端请求按照子分组生成顺序以及子分组的数量均分至各子分组。

有益效果:与现有技术相比,本申请提供了一种基于树状结构的分片区块链生成方法,所述方法包括:将服务端系统划分为至少一个分组,并分别选取各分组的领导者;所述领导者根据自身本地数据库状态打包生成至少一区块,并将所述至少一区块广播至其所在分组的所有成员;验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组。本方法通过树状分组架构提高区块链框架生成区块时的效率,并且根据领导者自身本地数据库状态生成区块,改善了系统生成区块时的资源浪费现象并减小了生成区块时产生的时延。

附图说明

图1为本申请提供的基于树状结构的分片区块链生成方法的一个实施例的流程图。

图2为本申请提供的基于树状结构的分片区块链生成方法的另一个实施例的流程图。

具体实施方式

本申请提供一种基于树状结构的分片区块链生成方法,为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。 应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

下面结合附图,通过对实施例的描述,对申请内容作进一步说明。

请参照图1,图1为本申请提供的基于树状结构的分片区块链生成方法的流程图。所述方法包括:

S10、将服务端系统划分为至少一个分组,并分别选取各分组的领导者。

具体地,所述服务端系统包括多个服务节点,即服务端系统包括多个成员。并且,所述服务端系统在任意时刻其包括的被恶意操纵的服务节点的比重小于四分之一。所述服务端系统划分为至少一个分组指的是根据预设条件将所述服务端系统划分包至少一个包含有预设数量的成员的分组。相应的,所述将服务端系统划分为至少一个分组,并分别选取各分组的领导者具体为:

S11、根据预设条件将所述服务端系统划分为至少一个分组,其中,各分组的成员数量均为预设数量阈值;

S12、根据各分组包含的成员的工作量证明选取领导者,其中,所述领导者为具有最小工作证明量的成员。

具体地,所述预设条件为各分组包含的成员数量为预设数量阈值,也就是说,将所述服务端系统划若干各包含有预设数量阈值成员的分组。并且,当存在少于预设数量阈值的分组时,将该分组包含的所有成员逐出所述服务端系统,并且将作为新成员重新加入所述服务端系统。此外,所述分组指的是所述服务端系统的原始分组,即原始分组构成的树的树根。

此外,所述领导者为各分组的初始领导者,其是根据工作量证明选举得到的。在分组完成后,各分组成员完成工作量证明,并根据各分组成员的工作量证明选举初始领导者,通过所述初始领导者确定其所处分组对应的区块。在本实施例中,所述初始领导者是其所处分组包含的所有成员中具有最小工作量证明的成员。

S20、所述领导者根据自身本地数据库状态打包生成至少一区块,并将所述至少一区块广播至其所在分组的所有成员。

具体地,所述本地数据库状态可以包括本地存储的客户端请求以及客户端请求的请求顺序。所述领导者根据其自身存在的客户端请求以及各客户端请求的请求顺序确定可执行的客户端请求,确定的所有可执行的客户端请求构形成区块。在本实施例中,所述领导者仅考虑其自身本地数据库状态,这样可以避免各成员因网络延时而产生的客户端请求的请求顺序的分歧的问题。此外,所述领导者根据自身本地数据库状态打包生成至少一区块之前,领导者接收并按时间戳顺序存储客户端请求,当领导者存储的客户端请求的数量达到预设阈值时,领导者遍历其存储的所有客户端请求挑选可执行客户端请求,并根据挑选得到的所有可执行客户端请求生成区块。相应的,所述领导者根据自身本地数据库状态打包生成至少一区块,并将所述至少一区块广播至其所在分组的所有成员具体包括:

S21、所述领导者获取自身的本地数据库状态,并根据所述本地数据库状态确定可执行的客户端请求以及执行顺序;

S22、根据可执行的客户端请求以及执行顺序打包生成至少一区块,并将所述至少一区块组播至其所在分组的所有成员。

具体地,所述领导者将所述区块广播给其所在分组的所有成员。所述分组包含的成员可能不在同一网段中,从而所述领导者采用P2P的技术进行组播,即领导者将所述区块组播给其所在分组的所有成员。

S30、验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组。

具体地,所述验证一致性指的是各成员对所述区块包括的所有客户端请求的进行验证,以确定所述区块包括的各客户端请求是否为可执行客户端请求。所述领导者根据所述区块生成一投票单,通过各成员依次填写所述投票单来对所述区块的一致性进行验证。相应的,所述验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组具体包括:

S31、所述领导者生成所述区块产生对应的投票单,并将所述投票单按照预设的环状拓扑结构依次传送至其所在分组包含的所有成员,以对所述区块包含各客户端请求进行投票;

S32、领导者将投票完成的投票单,并根据所述投票完成的投票单确定各分组对应的区块,并将所述区块同步至其他分组。

具体地,所述领导者根据所述区块生成一投票单,所述投票单的结构可以类似于区块结构,其包括头部和主体。其中,所述投票单的头部包含了投票单所属的分组、投票单对应的区块的哈希值和投票单对应区块为其所属分组产生的第几个区块;所述投票单的主体包含投票单对应的分组包含的各成员节点对该区块所包含的客户端请求是否可执行的意见。此外,为了保证恶意节点无法仿造其他成员节点的意见,这里不采用某个固定的常量表示同意或者不同意,而采用客户端请求的哈希值表示同意,客户端请求的哈希值的反码表示不同意。这样各成员可以采用其自身存储的私钥对哈希值或者哈希值的反码进行加密,并将加密后的信息写入投票单的主体。

此外,所述领导者将所述投票单按照预设环状拓扑结构顺序发送至位于其后的成员,领导者可以按照顺时针方向确定其后的成员,也可以案子逆时针方向确定其后的成员,并且所述领导者确定的传递顺序为所述投票单的投票顺序,即领导者按照环状拓扑结构顺序将投票单发送至其后的成员,该成员完成投票后再将投票单按照环状拓扑结构顺序发送至其后的成员,依次类推直至所述投票单返回领导者。其中,所述环状拓扑结构是根据上一轮分组分裂时的工作量证明(如,从小到大)的排序结果确定,并且当所述分组为初始分组时,所述环状拓扑结构是根据初始分组生成时的工作量证明排序结果确定。

进一步,当投票单将会沿着环状拓扑结构传输下并传回至领导者时,投票单中包含了该投票单对应的分组包含的所有成员节点对于能否执行区块中的各客户端请求的投票,其中,所以领导者生成所述投票单时会对区块中的所有客户端请求投赞成票,各成员会根据其自身本地数据库状态对各区块中的各客户端请求进行投票。领导者在接收到完成投票的投票单后会将完成投票的投票单广播给分组包含的所有成员,各成员会根据本地记录的对应节点的公钥信息独立校验投票单的正确性和合法性。如果利用公钥解密后得到的结果是对应区块的客户端请求的哈希值或者是哈希值的反码,确定投票单的投票为有效且正确的;并执行区块中获得有效票数的客户端请求。在本实施例中,所述有效票数指的是至少获得超过半数成员的同意,当然所述有效票数可以根据实际情况适当调高。

此外,各分组的领导者将会向其他分组的领导者组播本轮中自己所在分组生成的区块和对应的投票单。在等待一段同步时间后,所有领导者将会利用P2P技术向其他领导者组播自己收到的同步区块和投票单的结果,所有的领导者将比对区块同步结果并填补可能的缺失和纠正错误信息。所述同步时间可以根据服务端系统的应用场景和服务端系统的成员规模而确定,其中,所述在分组成立时,各分组的领导者将其所在分组包含的分组成员信息的作为特定区块广播到整个服务端系统中,以使得确定服务端系统的成员规模。在实际应用中,所述同步时间可以采用移动平均法调整,分组的领导者会根据之前同步区块的时间进行调整。

进一步,领导者可以采用位图的方式表示自己是否收到某个分组的区块,然后根据位图对收到的结果进行对比。同时,领导者将自己同步的区块和投票表广播给自己所在分组的成员让分组内部的其他成员同步信息。成员在收到区块和投票表后会独立验证并按照投票表的结果选择性地执行区块中的请求。

在申请的另一个实施例中,如图2所示,所述验证所述至少一区块的一致性,并根据所述一致性的验证结果执行所述区块,并将所述区块同步至其他分组之后还包括:

S40、根据各分组对应的区块构建默克尔树,并计算所述默克尔树的树根的哈希值;

S50、根据所述哈希值确定领导者偏移量,并根据所述领导者以及领导者偏移量分别确定各分组下一轮的领导者;

S60、各分组下一轮的领导者重复开启下一轮的区块。

具体地,所述默克尔树是所有分组产生的区块以分组在树中的遍历顺序(如先序遍历)排序并构建成为一棵度为2的默克尔树Merkle Hash Tree,并且。当某些分组因为异常情况而无法在该轮工作流程中正常生成区块或者正常完成分组间区块的同步时,则其他分组将会对这些分组填充一个不包含任何客户端请求的特殊的空区块。再通过对生成的默克尔树的树根的哈希值进行取模运算,以得到每个分组下一轮工作时的领导者。相应的,所述根据所述哈希值确定领导者偏移量,并根据所述领导者以及领导者偏移量分别确定各分组下一轮的领导者具体包括:

S51、根据各分组包含的成员数量对所述哈希值进行取模运行,以得到各分组对应的领导者与下一轮领导者之间的距离;

S52、根据各距离按照顺时针方向确定各分组的领导者偏移量,并各分组领导者按照所述领导者偏移量进行偏移,以得到下一轮的领导者。

具体地,所述取模运算是相对于各分组的成员数量进行,即所述取模运算的结果为下一轮工作中新的领导者距离当前工作中领导者在环阵拓扑结构中的顺时针方向的偏移量。这样利用树状的分组结构确定每一轮中不同分组生成的区块的顺序并根据排序结果的哈希值决定下一轮生成区块时每个分组中的领导者的身份,保证选举领导者的不可预测的,从而确保了随机性和公平性。

在申请的再一个实施例中,所述根据所述哈希值确定领导者偏移量,并根据所述领导者以及领导者偏移量分别确定各分组下一轮的领导者之后还包括:

S70、当接到新成员加入服务端系统的请求时,新成员查询所述服务端系统包含的所有分组以及各分组包含的成员;

S80、新成员完成自身的工作量证明,根据所述工作量证明确定其对应的分组,并将所述工作量证明广播至所述分组包含的所有成员;

S90、各成员对所述新成员进行表决,根据所述表决结果确定新成员是否加入所述分组。

具体地,所述新成员通过向服务端系统发送广播,通过该广播查询所述服务端系统信息,其中,所述服务端系统的信息可以包括服务端系统包含的所有分组以及各分组包含的成员。在获取到服务端系统的信息后通过广播查询其需要完成的工作量证明的难度系数,并完成所述工作量证明。所述工作量证明是将上一轮系统产生的所有区块构建成的默克尔树的树根中包含的哈希值作为种子,采用SHA256的单向散列函数作为加密函数,新成员以种子和其自身的ID作为基础,查找到一个字符串,以使得所述种子、ID和字符串拼接得到的数据的哈希值满足难度系数(即数据哈希值的前缀零的个数),并且当新成员查找到该字符串即完成了工作量证明。

进一步,在新成员完成工作量证明后,根据所述工作量证明确定新成员待加入的分组,并且通过广播向新成员对应的分组包含成员发送工作量证明。新成员待加入的分组的领导者根据接收到的工作量证明的排序顺序确定新成员的顺序,并会将自己收到的工作量证明结果以自己收到的时间顺序排列并以分组内部生成区块的流程发送给其他成员节点,表决后的结果确定哪些新成员可以加入分组。当分组决定将一个新成员纳入下一轮分组分裂的候选名单时,该分组的领导者将会将所述新成员广播给其他分组的leader,然后由其他分组的leader广播通知其所在分组的成员待加入服务端系统的新成员加入了服务端系统网络以及其对应的顺序。

此外,为了防止女巫攻击,限定各分组能够接受的新成员的上限不得超过预设数量,例如,服务端系统中达到分裂条件的分组每次分裂时会产生至多2个新的子分组(其中,分裂后原分组消失),则分组可以容纳的成员数量大于预设数量阈值的两倍,并且所述分组可以容纳的成员数量的上限可以根据应用场景进行约束,例如,分组可以容纳的成员数量小于预设数量阈值的三倍。

在申请的又一个实施例中,所述各成员对所述新成员进行表决,根据所述表决结果确定新成员是否加入所述分组之后包括:

S100、当监听到存在分组的成员数量达到预设数量时,判断服务端系统的分裂间隔时间是否达到预设时间阈值;

S110、当达到预设时间阈值时,各分组包含的各成员完成其自身的工作量证明,并将工作量证明广播至其所在分组的其他成员;

S120、各分组的领导者根据接收到工作量证明按照预设条件将其所在分组划分为至少一个子分组,以生成服务端系统新的分组。

具体地,所述预设时间阈值为预先设定,用于确定服务端系统是否达到分离要求。也就是说,当服务端系统当前分组所处时长达到预设时间阈值时,说明服务端系统达到分离时间要求。在本实施例中,设定分离条件包括分组的成员数量达到预设数量阈值且服务端系统距离上次分组分裂的分离间隔时间达到预设时间阈值。当服务端系统中至少存在一个分组达到分离条件时,达到分裂条件的分组将会生成一个指定区块,通过指定区块请求服务端系统进入分裂状态。当服务端系统中产生用于控制服务端系统进入分组分裂状态的指定区块时,服务端系统将停止下一轮生成区块的流程并引入工作量证明的方式对系统中现存的分组进行分裂和重组。所述分组分裂时工作量证明的哈希函数种子来源于系统上一轮生成区块时得到的结果所构成的默克尔树的树根的值。分裂分组的成员在完成工作量证明后将在其自身的工作量证明的结果广播给其所在分组中所有的成员,当成员收到其他成员的工作量证明结果后将结果进行排序,领导者收到了能够组成分组的标准数量的工作量证明后将这些成员划分到一个新的分组中并将分组的信息打包成一个区块按照生成普通区块的通知给其他节点。收到包含了新的分组信息的区块后,各个成员独立校验数据的正确性然后更新其自身的本地分组信息。

进一步,在分组分裂完成后,需要严重分裂得到的各子分组的成员数量,以保证各子分组的成员数量均为预设数量。相应的,示例性的,所述各分组的领导者根据接收到工作量证明按照预设条件将其所在分组划分为至少一个子分组,以生成服务端系统新的分组具体包括:

分别获取各子分组包含的成员数量,并根据所述成员数量确定各子分组是否满足预设条件的第一子分组;

将所有未满足预设条件的第一子分组去除,以生成服务端系统新的分组。

具体地,所述预设条件为成员数量为预设数量。也就是说,在分裂得到子分组后,依次验证各子分组的成员数量,即分别获取各子分组的成员数量,并将各成员数量分别与预设数量进行比较,以确定所有不满足预设条件的第一子分组,并将不满足预设条件的所有第一子分组去除,将不满足预设条件的第一子分组的所有成员逐出服务端系统,并作为新成员重新加入服务端系统,这样可以保证分裂得到的各子分组的初始成员数量均与为预设数量。此外,在分裂分组完成后,分裂得到的各子分组通过工作量证明的方式选取初始领导者,并且区块生成过程中采用偏移量的方式随机确定下一轮领导者。

进一步,在分裂分组完成后,需要根据分裂得到的子分组数量划分分组对应的客户端请求。相应的,所述各分组的领导者根据接收到工作量证明按照预设条件将其所在分组划分为至少一个子分组,以生成服务端系统新的分组之后还包括:

领导者获取其所在分组划分得到的子分组的数量;

当所述子分组的数量为1时,将所述子分组对应分组包含的客户端请求同步至所述子分组;

当所述子分组的数量为大于1时,将所述子分组对应分组包含的客户端请求按照子分组生成顺序以及子分组的数量均分至各子分组。

具体地,若分组在分裂期间只产生了一个新的分组,则这个新的分组将会继承原分组处理客户端请求的所有的映射规则。若分组分裂成了多个子分组,则子分组依据产生时的顺序和数量均分原分组的映射关系。新的子分组的映射关系必然是原分组映射关系的一个非空子集且不同子分组之间的映射关系互不相交。当系统完成分组分裂后,客户端并不能第一时间知道映射关系的变化,所以客户端还是会按照过期的本地映射缓存发送自己的请求。当原分组的成员收到来自客户端的请求时,若原分组至少产生了一个子分组,则必然有一个子分组可以响应该请求。原分组成员此时会告知客户端原分组映射关系所发生的变动。这种方式不需要客户端第一时间更新本地缓存,同时客户端无需立即更新整个服务网络的映射关系变动,而是只更新自己当前请求涉及到的变动。这种模式可以避免传统的采用分组思想的区块链因朴素分组而导致客户端向整个服务网络广播请求而可能导致的广播风暴。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1