一种区块链网络的通信方法及装置
技术领域
本申请涉及区块链技术领域,特别涉及一种区块链网络的通信方法及装置。
背景技术
在传统的区块链网络中,所有节点都需要参与处理所有交易,但是,随着区块链网络节点数量的增加,达成全局共识所需的时间也在不断增加,导致整个区块链系统的吞吐量受到挑战。
为了解决这个问题,一般采用分片技术将整个区块链网络中的节点分成不同的碎片,各个分片能够并行处理不同的交易的方式,提高区块链网络处理交易的并行度,进而提高整个系统的吞吐量。
当前常用的分片技术是Zilliqa,具体由整个网络的节点运行Pow共识算法来决定网络分片,但是,运行Pow共识算法需要大量的工作证明,导致网络分片的时间长,效率低。
发明内容
为解决上述技术问题,本申请实施例提供一种区块链网络的通信方法及装置,以达到缩短网络分片的时间,提高效率的目的,技术方案如下:
一种区块链网络的通信方法,包括:
每当区块链网络中有节点加入或退出,更新邻近度矩阵,所述邻近度矩阵包括:所述区块链网络中每两个节点之间的距离;
在所述区块链网络的节点中,判断是否存在未合并的节点;
若存在,则基于所述邻近度矩阵,在所述区块链网络的节点中,查找距离最小的两个节点;
若所述距离最小的两个节点均为未合并的节点,则将所述距离最小的两个节点合并,得到一个网络分区;
若距离最小的两个节点中有一个节点为目标网络分区内的节点且另一个节点为未合并的节点,则将距离最小的两个节点中未合并的节点,合并到目标网络分区,所述目标网络分区由所述区块链网络中至少两个节点组成的任意一网络分区;
若不存在,则查找距离最小的两个网络分区,将距离最小的两个网络分区合并,直至所述区块链网络中所有节点在同一个网络分区内。
所述方法,还包括:
生成树状结构,所述树状结构中每棵子树分别为一个网络分区。
所述方法还包括:
通过将所述区块链网络中各个节点各自生成的所述树状结构,及各自的邻近度矩阵,发送至所述区块链网络中的其它节点,确定所述区块链网络中各个节点达成共识的树状结构,及邻近度矩阵;
将所述区块链网络中各个节点达成共识的树状结构,及邻近度矩阵,同步到所述区块链网络的各个节点。
所述方法还包括:
基于所述区块链网络中各个节点达成共识的树状结构,确定所述区块链网络中发生交易的节点所属的最小公共分区;
通过在所述最小公共分区中的节点之间进行共识,进行交易。
所述区块链网络中每两个节点之间的距离通过以下步骤确定:
对所述区块链网络中每两个节点中的每个节点,为所述节点生成随机数;
对所述区块链网络中每两个节点,计算两个所述节点的随机数的明式距离,将所述明式距离作为两个所述节点之间的距离。
所述查找距离最小的两个网络分区,包括:
对每两个网络分区,将所述两个网络分区之间距离最小的节点之间的距离作为所述两个网络分区之间的距离;
在确定每两个网络分区之间的距离的情况下,查找距离最小的两个网络分区。
一种区块链网络的通信装置,包括:
更新模块,用于每当区块链网络中有节点加入或退出,更新邻近度矩阵,所述邻近度矩阵包括:所述区块链网络中每两个节点之间的距离;
判断模块,用于在所述区块链网络的节点中,判断是否存在未合并的节点;
第一查找模块,用于若存在未合并的节点,则基于所述邻近度矩阵,在所述区块链网络的节点中,查找距离最小的两个节点;
第一合并模块,用于若所述距离最小的两个节点均为未合并的节点,则将所述距离最小的两个节点合并,得到一个网络分区;
第二合并模块,用于若距离最小的两个节点中有一个节点为目标网络分区内的节点且另一个节点为未合并的节点,则将距离最小的两个节点中未合并的节点,合并到目标网络分区,所述目标网络分区由所述区块链网络中至少两个节点组成的任意一网络分区;
第三合并模块,用于若不存在未合并的节点,则查找距离最小的两个网络分区,将距离最小的两个网络分区合并,直至所述区块链网络中所有节点在同一个网络分区内。
所述装置还包括:
生成模块,用于生成树状结构,所述树状结构中每棵子树分别为一个网络分区。
所述装置还包括:
第一确定模块,用于通过将所述区块链网络中各个节点各自生成的所述树状结构,及各自的邻近度矩阵,发送至所述区块链网络中的其它节点,确定所述区块链网络中各个节点达成共识的树状结构,及邻近度矩阵;
同步模块,用于将所述区块链网络中各个节点达成共识的树状结构,及邻近度矩阵,同步到所述区块链网络的各个节点。
所述装置还包括:
第二确定模块,用于基于所述区块链网络中各个节点达成共识的树状结构,确定所述区块链网络中发生交易的节点所属的最小公共分区;
交易模块,用于通过在所述最小公共分区中的节点之间进行共识,进行交易。
所述装置还包括:第三确定模块,用于:
对所述区块链网络中每两个节点中的每个节点,为所述节点生成随机数;
对所述区块链网络中每两个节点,计算两个所述节点的随机数的明式距离,将所述明式距离作为两个所述节点之间的距离。
所述第三合并模块,具体用于:
对每两个网络分区,将所述两个网络分区之间距离最小的节点之间的距离作为所述两个网络分区之间的距离;
在确定每两个网络分区之间的距离的情况下,查找距离最小的两个网络分区。
与现有技术相比,本申请的有益效果为:
在本申请中,每当区块链网络中有节点加入或退出,通过更新邻近度矩阵,查找及合并等聚类操作实现网络分区,相比于通过工作量证明进行网络分区的方式,降低了运算的复杂度,因此能缩短运算时长,进而提高网络分区的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种区块链网络的通信方法实施例1的流程图;
图2是本申请提供的网络分片的示意图;
图3是本申请提供的一种区块链网络的通信方法实施例2的流程图;
图4是本申请提供的一种区块链网络的通信方法实施例3的流程图;
图5是本申请提供的一种区块链网络的通信方法实施例4的流程图;
图6是本申请提供的一种区块链网络的通信装置的逻辑结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
接下来对本申请实施例公开的区块链网络的通信进行介绍,如图1所示的,为本申请提供的一种区块链网络的通信实施例1的流程图,可以包括以下步骤:
步骤S11、每当区块链网络中有节点加入或退出,更新邻近度矩阵,邻近度矩阵包括:区块链网络中每两个节点之间的距离。
在加入区块链网络的节点为第一个加入的节点时,可以由该节点负责区块链网络的初始化工作。其中,初始化区块链网络的过程可以为:
1.创建初始账户,交易由账户发起;
2.创建创世块。创世块,可以理解为:一个新的区块链启动时,创建的第一个区块。创世块中需要配置一些基本设置,具体可以为:
i.独立的区块链网络id:网络id用于作为连接其他节点的标识。其中,不同网络id的节点无法相互连接
ii.挖矿难易程度:挖矿难度决定了出块的效率,可根据业务需求进行配置
iii.初始账户余额。初始化阶段,初始账户的余额
iv.每个区块的生成需要消耗的资源的上限。
3.初始化区块链,制定区块链相关数据保存的本地目录;
4.将账户与矿工绑定,并开始挖矿。
邻近度矩阵包括:区块链网络中每两个节点之间的距离,例如,若区块链网络中包括6个节点,分别为节点1、节点2、节点3、节点4、节点5和节点6,如表1所示,邻近度矩阵中包括6个节点中每两个节点之间的距离,如,节点1和节点2之间的距离为0.2357,节点1和节点3之间的距离为0.2219。
表1
|
节点1 |
节点2 |
节点3 |
节点4 |
节点5 |
节点6 |
节点1 |
0 |
0.2357 |
0.2219 |
0.3688 |
0.3421 |
0.2348 |
节点2 |
0.2357 |
0 |
0.1483 |
0.2042 |
0.1389 |
0.2540 |
节点3 |
0.2219 |
0.1483 |
0 |
0.1513 |
0.2843 |
0.1099 |
节点4 |
0.3688 |
0.2042 |
0.1513 |
0 |
0.2932 |
0.2216 |
节点5 |
0.3421 |
0.1389 |
0.2843 |
0.2932 |
0 |
0.3921 |
节点6 |
0.2348 |
0.2540 |
0.1099 |
0.2216 |
0.3921 |
0 |
本实施例中,每当区块链网络中有节点加入,更新邻近度矩阵的过程,可以包括:
确定新加入的节点与区块链网络中已存在的各个节点之间的距离,将新加入的节点与区块链网络中已存在的各个节点之间的距离更新至邻近度矩阵。
本实施例中,每当区块链网络中有节点退出,更新邻近度矩阵的过程,可以包括:
从邻近度矩阵中删除与退出的节点相关的节点之间的距离。
本实施例中,区块链网络中每两个节点之间的距离,可以通过以下步骤确定:
S111、对区块链网络中每两个节点中的每个节点,为节点生成随机数。
本实施例中,可以通过以下方式,为节点生成随机数:
让可信第三方为合约提供随机数,一般是一个中心化的解决方案,例如通过可信的oracle提供随机数;
或,让参与的多方都递交各自的随机数,最终合并所有的随机数产生一个最终的随机数;
或,采用区块链上的公开信息,例如区块的哈希值,时间戳或者难度系数作为随机数源;
或,通过共识节点提交的签名片段合并成一个最终的随机数。
S112、对区块链网络中每两个节点,计算两个节点的随机数的明式距离,将明式距离作为两个节点之间的距离。
计算两个节点的随机数的明式距离的过程,可以为:
将两个节点的随机数分别转换为二进制数,并将二进制数中每一位作为n维变量里的一个维度,得到n维变量;
利用如下关系式,计算两个节点的随机数的明式距离:
d12表示明式距离,x1k表示其中一个节点转换得到的n维变量中的其中一个变量,x2k表示另一个节点转换得到的n维变量中的其中一个变量。
当p=1时,明氏距离即为曼哈顿距离;
当p=2时,明氏距离即为欧氏距离;
当p→∞时,明氏距离即为切比雪夫距离。
步骤S12、在区块链网络的节点中,判断是否存在未合并的节点。
若存在,则执行步骤S13;若不存在,则执行步骤S16。
未合并的节点,可以理解为:未与任何一个节点进行合并的节点。
步骤S13、基于邻近度矩阵,在区块链网络的节点中,查找距离最小的两个节点。
本实施例中,基于邻近度矩阵包括的区块链网络中每两个节点之间的距离,在区块链网络的节点中,查找距离最小的两个节点。
步骤S14、若距离最小的两个节点均为未合并的节点,则将距离最小的两个节点合并,得到一个网络分区。
步骤S15、若距离最小的两个节点中有一个节点为目标网络分区内的节点且另一个节点为未合并的节点,则将距离最小的两个节点中未合并的节点,合并到目标网络分区。
目标网络分区由区块链网络中至少两个节点组成的任意一网络分区。
步骤S16、查找距离最小的两个网络分区,将距离最小的两个网络分区合并,直至区块链网络中所有节点在同一个网络分区内。
在步骤S12判断出在区块链网络的节点中,不存在未合并的节点的情况下,表征区块链网络的各个节点均已进行过合并,则继续对网络分区进行合并。对网络分区进行合并,具体可以为:查找距离最小的两个网络分区,将距离最小的两个网络分区合并。
现结合表1,举例对步骤S11-S16进行说明,如表1所示,在区块链网络中节点未合并之前,节点3和节点6之间的距离最小,因此将节点3和节点6合并,得到网络分区{节点3,节点6},如图2(a)所示;接下来对节点2和节点5之间的距离最小,因此将节点2和节点5合并,得到网络分区{节点2,节点5},如图2(b)所示;接下来节点4与节点3之间的距离最小,则将节点4合并到网络分区{3,6},得到网络分区{{节点3,节点6},节点4},如图2(c)所示;接下来节点1与节点6之间距离最小,则将节点1合并到网络分区{{节点3,节点6},节点4},得到网络分区{{{节点3,节点6},节点4},节点1},如图2(d)所示。在不存在未合并的节点的情况下,对网络分区{{{节点3,节点6},节点4},节点1}和{节点2,节点5}进行合并,得到网络分区{{{{节点3,节点6},节点4},节点1},{节点2,节点5}},如图2(e)所示。
其中,查找距离最小的两个网络分区,可以包括:
S161、对每两个网络分区,将两个网络分区之间距离最小的节点之间的距离作为两个网络分区之间的距离;
S162、在确定每两个网络分区之间的距离的情况下,查找距离最小的两个网络分区。
需要说明的是,区块链网络中的每个节点均会执行步骤S11-S16,各自维护邻近度矩阵,并生成网络分区。其中,区块链网络中各个节点各自生成的网络分区可能相同,也可能不同。
在本申请中,每当区块链网络中有节点加入或退出,通过更新邻近度矩阵,查找及合并等聚类操作实现网络分区,相比于通过工作量证明进行网络分区的方式,降低了运算的复杂度,因此能缩短运算时长,进而提高网络分区的效率。
作为本申请另一可选实施例,参照图3,为本申请提供的一种区块链网络的通信方法实施例2的流程示意图,本实施例主要是对上述实施例1描述的区块链网络的通信方法的扩展方案,如图3所示,该方法可以包括但并不局限于以下步骤:
步骤S21、每当区块链网络中有节点加入或退出,更新邻近度矩阵,邻近度矩阵包括:区块链网络中每两个节点之间的距离。
步骤S22、在区块链网络的节点中,判断是否存在未合并的节点。
若存在,则执行步骤S23;若不存在,则执行步骤S26。
步骤S23、基于邻近度矩阵,在区块链网络的节点中,查找距离最小的两个节点。
步骤S24、若距离最小的两个节点均为未合并的节点,则将距离最小的两个节点合并,得到一个网络分区。
步骤S25、若距离最小的两个节点中有一个节点为目标网络分区内的节点且另一个节点为未合并的节点,则将距离最小的两个节点中未合并的节点,合并到目标网络分区。
目标网络分区由区块链网络中至少两个节点组成的任意一网络分区。
步骤S26、查找距离最小的两个网络分区,将距离最小的两个网络分区合并,直至区块链网络中所有节点在同一个网络分区内。
步骤S21-S26的详细过程可以参见实施例1中步骤S11-S16的相关介绍,在此不再赘述。
步骤S27、生成树状结构,树状结构中每棵子树分别为一个网络分区。
在前述步骤已生成各个网络分区之后,生成树状结构。树状结构中每棵子树分别为一个网络分区,例如,如图2(e)所示的树状结构,由节点3和节点6组成的子树为网络分区{节点3,节点6},由节点3、节点6、和节点4组成的子树为网络分区{{节点3,节点6},节点4};由节点3、节点6、节点4和节点1组成的子树为网络分区{{{节点3,节点6},节点4},节点1};由节点2和节点5组成的子树为网络分区{节点2,节点5};由节点3、节点6、节点4、节点1、节点2和节点5组成的子树为网络分区{{{{节点3,节点6},节点4},节点1},{节点2,节点5}}。
本实施例中,生成树状结构,保证在网络分区的前提下,区块链网络中各节点之间能进行交易。
作为本申请另一可选实施例,参照图4,为本申请提供的一种区块链网络的通信方法实施例3的流程示意图,本实施例主要是对上述实施例2描述的区块链网络的通信方法的扩展方案,如图4所示,该方法可以包括但并不局限于以下步骤:
步骤S31、每当区块链网络中有节点加入或退出,更新邻近度矩阵,邻近度矩阵包括:区块链网络中每两个节点之间的距离。
步骤S32、在区块链网络的节点中,判断是否存在未合并的节点。
若存在,则执行步骤S33;若不存在,则执行步骤S36。
步骤S33、基于邻近度矩阵,在区块链网络的节点中,查找距离最小的两个节点。
步骤S34、若距离最小的两个节点均为未合并的节点,则将距离最小的两个节点合并,得到一个网络分区。
步骤S35、若距离最小的两个节点中有一个节点为目标网络分区内的节点且另一个节点为未合并的节点,则将距离最小的两个节点中未合并的节点,合并到目标网络分区。
目标网络分区由区块链网络中至少两个节点组成的任意一网络分区。
步骤S36、查找距离最小的两个网络分区,将距离最小的两个网络分区合并,直至区块链网络中所有节点在同一个网络分区内。
步骤S37、生成树状结构,树状结构中每棵子树分别为一个网络分区。
步骤S31-S37的详细过程可以参见实施例2中步骤S21-S27的相关介绍,在此不再赘述。
步骤S38、通过将区块链网络中各个节点各自生成的树状结构,及各自的邻近度矩阵,发送至区块链网络中的其它节点,确定区块链网络中各个节点达成共识的树状结构,及邻近度矩阵。
区块链网络中各个节点通过将各自生成的树状结构,及各自的邻近度矩阵,发送至区块链网络中的其它节点,确定区块链网络中各个节点达成共识的树状结构,及邻近度矩阵的过程,可以包括:
S381、在准备阶段,区块链网络中各个节点会向区块链网络中其它节点发送包含自己网络id的邻近度矩阵和树状结构以及时间戳的准备消息,同时也会接收区块链网络中其它节点发送的准备消息,对收到的准备消息进行合法性校验,并记录到自己的消息日志中。对每个节点,当节点收集到大于设定个数的节点发送的准备消息,且准备消息通过合法性校验且邻近度矩阵相同,则进入提交阶段。
S382、在提交阶段,区块链网络中每个节点会广播包含最新的邻近度矩阵和树状结构的提交信息,同时接收区块链网络中其它节点的提交消息。当接收到大于设定个数的节点发送的相同的提交信息,则达成共识,将大于设定个数的节点发送的相同的提交信息中的邻近度矩阵和树状结构,作为区块链网络中各个节点达成共识的树状结构,及邻近度矩阵。
步骤S39、将区块链网络中各个节点达成共识的树状结构,及邻近度矩阵,同步到区块链网络的各个节点。
将区块链网络中各个节点达成共识的树状结构,及邻近度矩阵,同步到区块链网络的各个节点,可以理解为:
将区块链网络中各个节点达成共识的树状结构,及邻近度矩阵,同步到区块链网络的各个节点,区块链网络的各个节点将各自的邻近度矩阵替换为区块链网络中各个节点达成共识的邻近度矩阵,并将各自生成的树状结构替换为区块链网络中各个节点达成共识的树状结构。
本实施例中,通过确定区块链网络中各个节点达成共识的树状结构,及邻近度矩阵,并将区块链网络中各个节点达成共识的树状结构,及邻近度矩阵,同步到区块链网络的各个节点,保证区块链网络中各个节点的树状结构及邻近度矩阵的一致性,进而保证区块链网络中节点之间进行交易的可靠性。
作为本申请另一可选实施例,参照图5,为本申请提供的一种区块链网络的通信方法实施例4的流程示意图,本实施例主要是对上述实施例3描述的区块链网络的通信方法的扩展方案,如图5所示,该方法可以包括但并不局限于以下步骤:
步骤S41、每当区块链网络中有节点加入或退出,更新邻近度矩阵,邻近度矩阵包括:区块链网络中每两个节点之间的距离。
步骤S42、在区块链网络的节点中,判断是否存在未合并的节点。
若存在,则执行步骤S43;若不存在,则执行步骤S46。
步骤S43、基于邻近度矩阵,在区块链网络的节点中,查找距离最小的两个节点。
步骤S44、若距离最小的两个节点均为未合并的节点,则将距离最小的两个节点合并,得到一个网络分区。
步骤S45、若距离最小的两个节点中有一个节点为目标网络分区内的节点且另一个节点为未合并的节点,则将距离最小的两个节点中未合并的节点,合并到目标网络分区。
目标网络分区由区块链网络中至少两个节点组成的任意一网络分区。
步骤S46、查找距离最小的两个网络分区,将距离最小的两个网络分区合并,直至区块链网络中所有节点在同一个网络分区内。
步骤S47、生成树状结构,树状结构中每棵子树分别为一个网络分区。
步骤S48、通过将区块链网络中各个节点各自生成的树状结构,及各自的邻近度矩阵,发送至区块链网络中的其它节点,确定区块链网络中各个节点达成共识的树状结构,及邻近度矩阵。
步骤S49、将区块链网络中各个节点达成共识的树状结构,及邻近度矩阵,同步到区块链网络的各个节点。
步骤S41-S49的详细过程可以参见实施例3中步骤S31-S39的相关介绍,在此不再赘述。
步骤S410、基于区块链网络中各个节点达成共识的树状结构,确定区块链网络中发生交易的节点所属的最小公共分区。
基于区块链网络中各个节点达成共识的树状结构,确定区块链网络中发生交易的节点所属的最小公共分区,可以理解为:在区块链网络中各个节点达成共识的树状结构中,确定发生交易的节点所属的最小子树,将发生交易的节点所属的最小子树,作为发生交易的节点所属的最小公共分区。例如,如图2(e)所示的树状结构,假如节点1和节点4之间发生交易,则确定节点1和节点4所属的最小子树为节点3、节点6、节点4和节点1组成的子树,即网络分区{{{节点3,节点6},节点4},节点1}为节点1和节点4的最小公共分区。
步骤S411、通过在最小公共分区中的节点之间进行共识,进行交易。
本实施例中,通过基于区块链网络中各个节点达成共识的树状结构,确定区块链网络中发生交易的节点所属的最小公共分区,通过在最小公共分区中的节点之间进行共识,进行交易,能够减少参与共识的节点的个数,实现跨片通讯,进一步提高区块链网络的吞吐量。
接下来对本申请提供的区块链网络的通信装置进行介绍,下文介绍的数据存储装置与上文介绍的区块链网络的通信方法可相互对应参照。
请参见图6,区块链网络的通信装置包括:更新模块100、判断模块200、第一查找模块300、第一合并模块400、第二合并模块500和第三合并模块600。
更新模块100,用于每当区块链网络中有节点加入或退出,更新邻近度矩阵,所述邻近度矩阵包括:所述区块链网络中每两个节点之间的距离;
判断模块200,用于在所述区块链网络的节点中,判断是否存在未合并的节点;
第一查找模块300,用于若存在未合并的节点,则基于所述邻近度矩阵,在所述区块链网络的节点中,查找距离最小的两个节点;
第一合并模块400,用于若所述距离最小的两个节点均为未合并的节点,则将所述距离最小的两个节点合并,得到一个网络分区;
第二合并模块500,用于若距离最小的两个节点中有一个节点为目标网络分区内的节点且另一个节点为未合并的节点,则将距离最小的两个节点中未合并的节点,合并到目标网络分区,所述目标网络分区由所述区块链网络中至少两个节点组成的任意一网络分区;
第三合并模块600,用于若不存在未合并的节点,则查找距离最小的两个网络分区,将距离最小的两个网络分区合并,直至所述区块链网络中所有节点在同一个网络分区内。
本实施例中,区块链网络的通信装置还可以包括:
生成模块,用于生成树状结构,所述树状结构中每棵子树分别为一个网络分区。
本实施例中,区块链网络的通信装置还可以包括:
第一确定模块,用于通过将所述区块链网络中各个节点各自生成的所述树状结构,及各自的邻近度矩阵,发送至所述区块链网络中的其它节点,确定所述区块链网络中各个节点达成共识的树状结构,及邻近度矩阵;
同步模块,用于将所述区块链网络中各个节点达成共识的树状结构,及邻近度矩阵,同步到所述区块链网络的各个节点。
本实施例中,区块链网络的通信装置还可以包括:
第二确定模块,用于基于所述区块链网络中各个节点达成共识的树状结构,确定所述区块链网络中发生交易的节点所属的最小公共分区;
交易模块,用于通过在所述最小公共分区中的节点之间进行共识,进行交易。
本实施例中,区块链网络的通信装置还可以包括:
第三确定模块,用于:
对所述区块链网络中每两个节点中的每个节点,为所述节点生成随机数;
对所述区块链网络中每两个节点,计算两个所述节点的随机数的明式距离,将所述明式距离作为两个所述节点之间的距离。
本实施例中,所述第三合并模块600,具体可以用于:
对每两个网络分区,将所述两个网络分区之间距离最小的节点之间的距离作为所述两个网络分区之间的距离;
在确定每两个网络分区之间的距离的情况下,查找距离最小的两个网络分区。
需要说明的是,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
以上对本申请所提供的一种数据存储方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。