【技术实现步骤摘要】
一种基于区块链的分片方法及装置
本申请涉及互联网
,具体而言,涉及一种基于区块链的分片方法及装置。
技术介绍
随着区块链技术的不断发展,区块链技术对解决信息共享、数据确权、隐私保护等当今互联网核心问题等发挥着重要的作用。区块链网络中包括多个节点,节点是区块链网络中处理数据的基本单位,每个节点可以将处理完成的数据进行打包后生成区块,这些区块按照时间先后顺序连接起来便可以形成区块链。目前,区块链技术可以应用在证券交易、电子商务等应用场景,区块链网络中各个节点可以用于实现对交易数据的验证等,但是考虑到每个节点处理数据的速度有限,而且待验证的数据在各个节点之间传输时也存在一定的延迟,这导致区块链技术的数据处理性能受限,很难适用在实时性要求较高的应用场景下。
技术实现思路
有鉴于此,本申请实施例的目的在于提供一种基于区块链的分片方法及装置,以提高区块链网络进行数据验证的实时性。主要包括以下几个方面:第一方面,本申请实施例提供了一种基于区块链的分片方法,应用于区块链网络中的目标节点中,所 ...
【技术保护点】
1.一种基于区块链的分片方法,其特征在于,应用于区块链网络中的目标节点中,所述方法包括:/n确定所述区块链网络中的第一主节点,若所述第一主节点为所述目标节点,则将所述区块链网络中的各个候选节点分别划分至不同的网络分片中;/n确定所述目标节点所在的目标网络分片中的第二主节点;/n若所述第二主节点为所述目标节点,则基于所述目标网络分片中各个候选节点所处的地址信息和/或网络延迟时间,确定所述目标网络分片中用于参与数据验证的验证节点。/n
【技术特征摘要】
1.一种基于区块链的分片方法,其特征在于,应用于区块链网络中的目标节点中,所述方法包括:
确定所述区块链网络中的第一主节点,若所述第一主节点为所述目标节点,则将所述区块链网络中的各个候选节点分别划分至不同的网络分片中;
确定所述目标节点所在的目标网络分片中的第二主节点;
若所述第二主节点为所述目标节点,则基于所述目标网络分片中各个候选节点所处的地址信息和/或网络延迟时间,确定所述目标网络分片中用于参与数据验证的验证节点。
2.如权利要求1所述的方法,其特征在于,所述基于所述目标网络分片中各个候选节点所处的地址信息,确定所述目标网络分片中用于参与数据验证的验证节点,包括:
根据所述目标网络分片中各个候选节点所处的地址信息,将各个候选节点划分到至少一个聚类;
根据得到的各个聚类,确定所述目标网络分片中用于参与数据验证的预设个数的验证节点。
3.如权利要求2所述的方法,其特征在于,所述地址信息包括地理位置;
所述根据所述目标网络分片中各个候选节点所处的地址信息,将各个候选节点划分到至少一个聚类,包括:
根据所述目标网络分片中各个候选节点所处的地理位置,将地理位置在同一地理区域范围内的所述候选节点划分在同一聚类中;
所述根据得到的各个聚类,确定所述目标网络分片中用于参与数据验证的预设个数的验证节点,包括:
根据得到的各个聚类中包括的所述候选节点的数量,将各个聚类按照所述候选节点的数量由大到小的顺序进行排列;
若排列在首位的聚类中包括的所述候选节点的数量等于所述预设个数,则将所述排列在首位的聚类中的全部候选节点作为所述验证节点;
若所述排列在首位的聚类中包括的所述候选节点的数量小于所述预设个数,则按照各个聚类的排列顺序,依次从各个聚类中选取所述验证节点,直至选取的所述验证节点的数量满足所述预设个数。
4.如权利要求3所述的方法,其特征在于,所述地址信息包括互联网协议IP地址;若所述排列在首位的聚类中包括的所述候选节点的数量大于所述预设个数时,所述方法还包括:
根据以下方式确定所述目标网络分片中用于参与数据验证的预设个数的验证节点:
根据所述排列在首位的聚类中各个候选节点的IP地址,将IP地址处于同一网段的候选节点划分在同一子聚类中;
根据得到的各个子聚类中包括的所述候选节点的数量,将各个子聚类按照所述候选节点的数量由大到小的顺序进行排列;
若排列在首位的子聚类中包括的所述候选节点的数量等于所述预设个数,则将所述排列在首位的子聚类中的全部候选节点作为所述验证节点;
若所述排列在首位的子聚类中包括的所述候选节点的数量小于所述预设个数,则按照各个子聚类的排列顺序,依次从各个子聚类中选取所述验证节点,直至选取的所述验证节点的数量满足所述预设个数。
5.如权利要求3所述的方法,其特征在于,所述地址信息包括互联网协议IP地址;若所述排列在首位的聚类中包括的所述候选节点的数量小于所述预设个数,在从第i个聚类中选取所述验证节点时,所述方法还包括:
若所述第i个聚类中包括的所述候选节点的个数大于待选取的所述验证节点的个数时,i为大于1的整数,根据以下方式确定所述目标网络分片中用于参与数据验证的预设个数的验证节点:
根据所述第i个聚类中各个候选节点的IP地址,将IP地址处于同一网段的候选节点划分在同一子聚类中;
根据得到的各个子聚类中包括的所述候选节点的数量,将各个子聚类按照所述候选节点的数量由大到小的顺序进行排列;
若排列在首位的子聚类中包括的所述候选节点的数量等于所述待选取的所述验证节点的个数,则将所述排列在首位的子聚类中的全部候选节点作为所述验证节点;
若所述排列在首位的子聚类中包括的所述候选节点的数量小于所述待选取的所述验证节点的个数,则按照各个子聚类的排列顺序,依次从各个子聚类中选取所述验证节点,直至选取的所述验证节点的数量满足所述预设个数。
6.如权利要求4所述的方法,其特征在于,所述方法还包括:
若所述排列在首位的聚类中得到的第一目标子聚类中包括的候选节点的数量满足第二预设条件,则根据以下方式确定所述目标网络分片中用于参与数据验证的预设个数的验证节点:
根据所述第一目标子聚类中各个候选节点的网络延迟时间,按照网络延迟时间由小到大的顺序对各个候选节点进行排列;
依次从所述第一目标子聚类中选取所述验证节点,直至选取的所述验证节点的总数量满足所述预设个数;
其中,所述第一目标子聚类为所述排列在首位的子聚类、或者各个子聚类中排列在第j位的子聚类,j为大于1的整数;所述第二预设条件为:所述排列在首位的子聚类中包括的所述候选节点的数量大于所述预设个数;或者,所述排列在首位的子聚类中包括的所述候选节点的数量小于所述预设个数、且从所述第j位子聚类中选取所述验证节点、且所述第j位子聚类包括的所述候选节点的个数大于待选取的所述验证节点的个数。
7.如权利要求5所述的方法,其特征在于,所述方法还包括:
若所述第i个聚类中得到的第二目标子聚类中包括的候选节点的数量满足第三预设条件,则根据以下方式确定所述目标网络分片中用于参与数据验证的预设个数的验证节点:
根据所述第二目标子聚类中各个候选节点的网络延迟时间,按照网络延迟时间由小到大的顺序对各个候选节点进行排列;
依次从所述第二目标子聚类中选取所述验证节点,直至选取的所述验证节点的总数量满足所述预设个数;
其中,所述第二目标子聚类为所述排列在首位的子聚类、或者各个子聚类中排列在第k位的子聚类,k为大于1的整数;所述第三预设条件为:所述排列在首位的子聚类中包括的所述候选节点的数量大于待选取的所述验证节点的个数;或者,所述排列在首位的子聚类中包括的所述候选节点的数量小于待选取的所述验证节点的个数、且从所述第k位子聚类中选取所述验证节点、且所述第k位子聚类包括的所述候选节点的个数大于待选取的所述验证节点的个数。
8.如权利要求1所述的方法,其特征在于,所述目标节点根据以下方式确定所述目标网络分片中各个候选节点的网络延迟时间:
分别向所述目标网络分片中各个候选节点发送回声请求消息,并接收各个候选节点发送的回声应答;
针对所述各个候选节点中每个候选节点,根据向该候选节点发送回声请求消息与接收该候选节点回声应答之间的时间差,确定该候选节点的网络延迟时间。
9.如权利要求1所述的方法,其特征在于,所述确定所述区块链网络中的第一主节点,包括:
根据所述目标节点生成的第一随机值以及其它各个候选节点生成的第一随机值,若所述目标节点生成的第一随机值与其它各个候选节点生成的第一随机值满足预设大小关系,则确定所述第一主节点为所述目标节点。
10.如权利要求9所述的方法,其特征在于,所述预设大小关系包括以下任意一种:
其它各个候选节点生成的第一随机值均大于所述目标节点生成的第一随机值;
其它各个候选节点生成的第一随机值均小于所述目标节点生成的第一随机值。
11.如权利要求1所述的方法,其特征在于,所述将所述区块链网络中的各个候选节点分别划分至不同的网络分片中,包括:
根据所述目标节点生成的第二随机值以及其它各个候选节点生成的第二随机值,生成随机种子;
根据所述随机种子,将各个候选节点分别划分至不同的网络分片中。
12.如权利要求11所述的方法,其特征在于,所述根据所述随机种子,将各个候选节点分别划分至不同的网络分片中,包括:
针对各个候选节点中的首个节点,根据所述随机种子以及预设随机函数,确定首个候选节点对应的第三随机值;
针对除首个节点以外的其它候选节点中的任意一个候选节点,根据该候选节点的上一个候选节点对应的第三随机值,生成与该候选节点对应的第三随机值;其中,每个第三随机值与一个网络分片的序号相匹配;
针对每个候选节点,根据该候选节点对应的第三随机值,将该候选节点分配到与该候选节点对应的第三随机值相匹配的网络分片中。
13.如权利要求1所述的方法,其特征在于,在确定所述区块链网络中的第一主节点之前,还包括:
针对每个候选节点,获取该候选节点的公钥和签名,其中,所述签名为利用该候选节点的私钥进行加密处理后的IP地址的加密信息;
根据该候选节点的公钥对该候选节点的签名进行验证;
若验证通过,则从所述签名中得到该候选节点的IP地址,并根据所述IP地址,获取该候选节点的地理位置。
14.如权利要求13所述的方法,其特征在于,所述根据该候选节点的公钥对该候选节点的签名进行验证,包括:
利用该候选节点的公钥对该候选节点的签名进行解密;
若解密成功,则解析该候选节点的签名中的IP地址,并判断与该候选节点建立连接时的该候选节点的IP地址与所述签名中的IP地址是否一致;
若一致,则确定对该候选节点的签名验证通过。
15.一种基于区块链的分片装置,其特征在于,应用于区块链网络中的目标节点中,所述装置包括:
分片模块,用于确定所述区块链网络中的第一主节点,若所述第一主节点为所述目标节点,则将所述区块链网络中的各个候选节点分别划分至不同的网络分片中;
第一确定模块,用于确定所述目标节点所在的目标网络分片中的第二主节点;
第二确定模块,用于若所述第二主节点为所述目标...
【专利技术属性】
技术研发人员:张紫荣,孔力,范辉,李博,
申请(专利权)人:北京嘀嘀无限科技发展有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。