一种超级节点竞选方法、装置及存储介质转让专利

申请号 : CN201910757152.9

文献号 : CN110460471B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙大伟张锦喜彭奕填叶亚芳马利平

申请人 : 广州蚁比特区块链科技有限公司

摘要 :

本申请实施例的目的在于提供一种超级节点竞选方法、装置及存储介质,应用于节点,所述方法包括:确定该节点与发起交易的节点的距离;判断该距离是否超过预设的距离;若是,则节点通过可验证随机函数竞选超级节点,并在满足可验证随机函数要求后确定自身为超级节点。

权利要求 :

1.一种超级节点竞选方法,其特征在于,应用于节点,所述方法包括:确定所述节点与发起交易的节点的距离;

判断所述距离是否超过预设的距离;

若是,则所述节点通过可验证随机函数竞选超级节点,并在满足所述可验证随机函数要求后确定自身为超级节点。

2.根据权利要求1所述方法,其特征在于,所述确定所述节点与所述发起交易的节点的距离,包括:根据所述节点的经纬度以及所述发起交易的节点的经纬度通过谷歌S2算法确定所述节点与所述发起交易的节点的距离。

3.根据权利要求2所述方法,其特征在于,在所述根据所述节点的经纬度以及所述发起交易的节点的经纬度通过谷歌S2算法确定所述节点与所述发起交易的节点的距离之前,所述方法还包括:获取所述节点的经纬度以及所述发起交易的节点的经纬度,所述节点的经纬度由所述节点的网际协议IP地址生成,所述发起交易的节点的经纬度由所述发起交易的节点的网际协议IP地址生成。

4.根据权利要求3所述方法,其特征在于,在所述获取所述节点的经纬度以及所述发起交易的节点的经纬度之后,所述方法还包括:将所述节点的经纬度以及所述发起交易的节点的经纬度发送给区块链上的验证节点;

接收所述验证节点返回的验证成功信息。

5.根据权利要求1所述方法,其特征在于,所述通过可验证随机函数竞选超级节点,并在满足所述可验证随机函数要求后确定自身为超级节点,包括:根据所述节点的私钥和接收到的共识随机数生成新的随机数,所述共识随机数由上一轮出块成功的超级节点在竞选为超级节点时生成并广播在区块链上;

判断所述新的随机数是否满足规定的数值要求;

若是,则将所述新的随机数和所述节点的公钥在所述区块链上进行广播,以使所述区块链上的除所述节点以外的节点根据所述节点的公钥对所述新的随机数进行验证,并在所述区块链上的除所述节点以外的节点验证成功后确定自身为超级节点。

6.根据权利要求1所述方法,其特征在于,在所述节点通过可验证随机函数竞选超级节点,并在满足所述可验证随机函数要求后确定自身为超级节点之后,所述方法还包括:根据与所述节点以外的超级节点的出块协议判断是否进行出块;

若是,则进行出块。

7.一种超级节点竞选装置,其特征在于,应用于节点,所述装置包括:确定模块,用于确定所述节点与发起交易的节点的距离;

判断模块,用于判断所述距离是否超过预设的距离;

竞选模块,用于在所述判断模块判断所述距离超过预设的距离之后,通过可验证随机函数竞选超级节点,并在满足所述可验证随机函数要求后确定自身为超级节点。

8.根据权利要求7所述超级节点竞选装置,其特征在于,所述确定模块确定所述节点与所述发起交易的节点的距离,包括:根据所述节点的经纬度以及所述发起交易的节点的经纬度通过谷歌S2算法确定所述节点与所述发起交易的节点的距离。

9.一种电子设备,包括存储器、处理器,所述存储器上存储有所述处理器可执行的存储介质,当所述电子设备运行时,所述处理器执行所述存储介质以实现权利要求1至6任一项所述的方法的步骤。

10.一种存储介质,其特征在于,所述存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1‑6任一项所述的方法。

说明书 :

一种超级节点竞选方法、装置及存储介质

技术领域

[0001] 本申请涉及区块链技术领域,具体而言,涉及一种超级节点竞选方法、装置及存储介质。

背景技术

[0002] 目前,超级节点的选取方法一般是随机选取,例如,从100个参与竞选超级节点的节点中随机选取多个节点作为超级节点,但这种随机选取的方法有可能造成选取的超级节点与交易发起的节点过近,进而引起作弊的问题。

发明内容

[0003] 本申请实施例的目的在于提供一种超级节点竞选方法、装置及存储介质,用于解决随机选取的超级节点与交易发起的节点过近,进而引起作弊的问题。
[0004] 为了实现上述目的,本申请提供了以下技术方案如下:
[0005] 第一方面:本申请提供了一种超级节点竞选方法,应用于节点,所述方法包括:
[0006] 确定所述节点与发起交易的节点的距离;
[0007] 判断所述距离是否超过预设的距离;
[0008] 若是,则所述节点通过可验证随机函数竞选超级节点,并在满足所述可验证随机函数要求后确定自身为超级节点。
[0009] 上述方案设计的方法,在节点竞选超级节点前,先通过确定节点与发起交易的节点的距离来进行筛选,将与发起交易的节点距离较近的节点去除,再在去除较近节点后的节点中选取超级节点,解决了选取的超级节点与发起交易的节点距离过近带来的作弊问题,使得超级节点的选取更加公正。
[0010] 在第一方面的可选实施方式中,所述确定所述节点与所述发起交易的节点的距离,包括:
[0011] 根据所述节点的经纬度以及所述发起交易的节点的经纬度通过谷歌S2算法确定所述节点与所述发起交易的节点的距离。
[0012] 上述方案设计的方法,通过谷歌S2距离算法来根据节点的经纬度计算节点间的空间距离,该算法消耗的运算资源较小,满足节点服务器的性能需求。
[0013] 在第一方面的可选实施方式中,在所述根据所述节点的经纬度以及所述发起交易的节点的经纬度通过谷歌S2算法确定所述节点与所述发起交易的节点的距离之前,所述方法还包括:
[0014] 获取所述节点的经纬度以及所述发起交易的节点的经纬度,所述节点的经纬度由所述节点的网际协议IP地址生成,所述发起交易的节点的经纬度由所述发起交易的节点的网际协议IP地址生成。
[0015] 上述方案设计的方法,通过节点的网际协议IP地址生成节点对应的经纬度,使用现有的IP换算经纬度方法就能实现,运算快,性能稳定。
[0016] 在第一方面的可选实施方式中,在所述获取所述节点的经纬度以及所述发起交易的节点的经纬度之后,所述方法还包括:
[0017] 将所述节点的经纬度以及所述发起交易的节点的经纬度发送给区块链上的验证节点;
[0018] 接收所述验证节点返回的验证成功信息。
[0019] 上述方案设计的方法,通过验证节点对经纬度进行验证,达到防止数据被篡改的效果。
[0020] 在第一方面的可选实施方式中,所述通过可验证随机函数竞选超级节点,并在满足所述可验证随机函数要求后成为超级节点,包括:
[0021] 根据所述节点的私钥和接收到的共识随机数生成新的随机数,所述共识随机数由上一轮出块成功的超级节点在竞选为超级节点时生成并广播在区块链上;
[0022] 判断所述新的随机数是否满足规定的数值要求;
[0023] 若是,则将所述新的随机数和所述节点的公钥在所述区块链上进行广播,以使所述区块链上的除所述节点以外的节点根据所述节点的公钥对所述新的随机数进行验证,并在所述区块链上的除所述节点以外的节点验证成功后确定为超级节点。
[0024] 上述方案设计的方法,通过可验证随机函数来确定超级节点,使得验证时其他节点无需知道该节点的私钥就可以达到验证的效果。
[0025] 在第一方面的可选实施方式中,在所述将所述新的随机数和所述节点的公钥在所述区块链上进行广播之后,所述方法还包括:
[0026] 根据与所述节点以外的超级节点的出块协议判断是否进行出块;
[0027] 若是,则进行出块。
[0028] 上述方案设计的方法,通过出块协议来判断超级节点是否出块,使得出块更加迅速方便。
[0029] 第二方面:本申请提供一种超级节点竞选装置,应用于节点,所述装置包括:
[0030] 确定模块,用于确定所述节点与发起交易的节点的距离;
[0031] 判断模块,用于判断所述距离是否超过预设的距离;
[0032] 竞选模块,用于在所述判断模块判断所述距离超过预设的距离之后,通过可验证随机函数竞选超级节点,并在满足所述可验证随机函数要求后确定为超级节点。
[0033] 上述方案设计的装置,在节点竞选超级节点前,先通过确定节点与发起交易的节点的距离来进行筛选,将与发起交易的节点距离较近的节点去除,再在去除较近节点后的节点中选取超级节点,解决了选取的超级节点与发起交易的节点距离过近带来的作弊问题,使得超级节点的选取更加公正。
[0034] 在第二方面的可选实施方式中,所述确定模块确定所述节点与所述发起交易的节点的距离,包括:
[0035] 根据所述节点的经纬度以及所述发起交易的节点的经纬度通过谷歌S2算法确定所述节点与所述发起交易的节点的距离。
[0036] 在第二方面的可选实施方式中,所述装置还包括获取模块,所述获取模块,用于在所述确定模块根据所述节点的经纬度以及所述发起交易的节点的经纬度通过谷歌S2算法确定所述节点与所述发起交易的节点的距离之前,获取所述节点的经纬度以及所述发起交易的节点的经纬度,所述节点的经纬度由所述节点的网际协议IP地址生成,所述发起交易的节点的经纬度由所述发起交易的节点的网际协议IP地址生成。
[0037] 在第二方面的可选实施方式中,所述装置还包括发送模块和接收模块,所述发送模块,用于在所述获取模块获取所述节点的经纬度以及所述发起交易的节点的经纬度之后,将所述节点的经纬度以及所述发起交易的节点的经纬度发送给区块链上的验证节点;
[0038] 所述接收模块,用于接收所述验证节点返回的验证成功信息。
[0039] 第三方面:本申请还提供一种电子设备,包括:处理器、与处理器连接的存储器,存储器存储有处理器可执行的机器可读存储介质,当所述计算设备运行时,处理器执行该机器可读存储介质,以执行时执行第一方面、第一方面的任一可选的实现方式中的所述方法。
[0040] 第四方面:本申请提供一种非暂态计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行第一方面、第一方面的任一可选的实现方式中的所述方法。
[0041] 第五方面:本申请提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行第一方面、第一方面的任一可选的实现方式中的所述方法。
[0042] 本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。

附图说明

[0043] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0044] 图1为本申请第一实施例提供的超级节点竞选方法第一流程示意图;
[0045] 图2为本申请第一实施例提供的超级节点竞选方法第二流程示意图;
[0046] 图3为本申请第一实施例提供的超级节点竞选方法第三流程示意图;
[0047] 图4为本申请第一实施例提供的超级节点竞选方法第四流程示意图;
[0048] 图5为本申请第二实施例提供的超级节点竞选装置结构示意图;
[0049] 图6为本申请第三实施例提供的电子设备结构示意图。

具体实施方式

[0050] 为了便于本领域技术人员理解,下面对本申请实施例中的词语进行解释和说明。
[0051] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用于执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0052] 另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0053] 所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
[0054] 第一实施例
[0055] 如图1所示,本申请提供一种超级节点竞选方法,应用于节点,该节点是指该区块链中除发起交易的节点的任意一节点服务器,下面以除发起交易的节点的任意一节点服务器为执行主体执行以下方法步骤,包括:
[0056] 步骤S100:确定该节点与发起交易的节点的距离。
[0057] 步骤S102:判断该距离是否超过预设的距离,若是,则转到步骤S104。
[0058] 步骤S104:该节点通过可验证随机函数竞选超级节点,并在满足所述可验证随机函数要求后确定自身为超级节点。
[0059] 上述步骤S100~S104中的该发起交易的节点表示的是一条交易记录中的交易发起方,例如,在区块链上的节点A与节点B进行了一次交易,如果这次交易是节点A发起的,那么A可记为发起交易的节点;超级节点是指能够收集、打包、验证交易信息到区块中的节点;可验证随机函数(Verifiable Random Function,VRF)是指结合非对称密钥技术的哈希函数,例如result=VRF_Hash(SK,info),SK是私钥,info是任意一个数,该区块链上的节点A通过私钥和info生成一个结果result,该区块链上的其他节点想要验证结果result是否正确,只需要知道这个结果result、info以及节点A的私钥SK对应的公钥就可以进行验证。另外,这里需要说明的是,本实施例中的超级节点竞选方法不限定其共识算法,例如工作量证明(Proof of Work,POW)、权益证明(Proof of Stake,POS)以及委托权益证明(Delegated Proof of Stake,DPOS)都可以适用。
[0060] 其中,步骤S100中的确定该节点与发起交易的节点的距离表示的是确定除该发起交易节点的任意一节点与发起交易的节点的空间距离。
[0061] 步骤S102表达的含义是除该发起交易节点的任意一节点与发起交易的节点的距离需满足一定的距离要求才能参与竞选超级节点,其距离要求也就是S102中的预设的距离,该预设的距离表达的含义可为以下几种情况:第一,可以将离该发起交易节点距离最近的节点的距离作为该预设的距离,此时表达的含义是参与竞选超级节点的节点不能是离发起交易的节点最近的节点,例如,发起交易的节点为该区块链中的第五节点,通过计算第六节点与第五节点的距离最近,那么参与竞选超级节点的节点是除第五、第六节点以外的该区块链上的所有节点;第二,可以设置一个距离范围,该距离范围大于离该发起交易节点距离最近的节点的距离,此时可能会发生该发起交易的节点周围一定距离的多个节点被去除参与竞选超级节点的资格,例如,发起交易的节点为该区块链中的第五节点,通过计算第六节点与第五节点的距离最近,并且距离为500km,那么设置的距离范围要大于该500km,该范围可以根据实际情况进行调节,假设设置的距离范围为800km,此时,第七节点与第八节点算出的距离该第五节点的距离分别为600km和700km,那么除了第六节点不能参与竞选超级节点外,第七节点和第八节点也不能参与竞选超级节点;第三,可以计算出所有节点距离发起交易节点的距离,对所有节点与发起交易节点的距离进行统计,将这些距离值按照从小到大进行排序,去除排序较前的一定百分比的节点参与竞选超级节点的资格。通过前述的距离要求设置,解决了选取的超级节点可能与发起交易的节点空间距离过近,进而可能会带来超级节点与发起交易的节点对应的用户相互串通作弊的问题。
[0062] 在步骤S102中选取了参与竞选超级节点的节点之后,则执行步骤S104,这些节点通过可验证随机函数再来竞选超级节点,满足可验证随机函数的要求的节点即成为超级节点,这里需要说明的是,最后竞选成功的超级节点的数量可为多个,只要参与竞选超级节点的节点中满足了可验证随机函数的要求即可成为超级节点。
[0063] 上述方案设计的方法,在节点竞选超级节点前,先通过确定节点与发起交易的节点的距离来进行筛选,将与发起交易的节点距离较近的节点去除,再在去除较近节点后的节点中选取超级节点,解决了选取的超级节点可能与发起交易的节点空间距离过近,进而可能会带来超级节点与发起交易的节点对应的用户相互串通作弊的问题,使得超级节点的选取更加公正。
[0064] 在本实施例的可选实施方式中,如图2所示,步骤S100中的确定该节点与发起交易的节点的距离,具体可为:
[0065] 步骤S1002:根据该节点的经纬度以及发起交易的节点的经纬度通过谷歌S2算法确定节点与发起交易的节点的距离。
[0066] 在步骤S1002中,将谷歌S2距离算法同步在该区块链程序中,由此,区块链上的节点可以根据在得到节点的经纬度之后,执行谷歌S2距离算法程序可以计算节点间的距离。
[0067] 上述方案设计的方法,可以通过谷歌S2距离算法来根据节点的经纬度计算节点间的空间距离,谷歌S2距离算法消耗的运算资源较小,满足节点服务器的性能需求。
[0068] 在本实施例的可选实施方式中,如图2所示,在步骤S1002之前,该方法还包括:
[0069] 步骤S1000:获取该节点的经纬度以及发起交易的节点的经纬度,该节点的经纬度由该节点的网际协议IP地址生成,发起交易的节点的经纬度由发起交易的节点的网际协议IP地址生成。
[0070] 步骤S1000中的该节点也表示为除该发起交易节点的任意一节点,前述经纬度的生成包括以下两种方式:第一,除该发起交易节点的任意一节点的经纬度以及发起交易的节点的经纬度可以由该区块链上的特定节点来进行计算,在此之前,该区块链上的所有节点将各自的网际协议IP地址公布在区块链上,然后该特定节点根据每个节点的网际协议IP地址计算每个节点的经纬度并存储,在后续步骤S1002需要计算节点间的距离时,则该特定节点发送给除该发起交易节点以外的每个节点他们自身的经纬度与发起交易的节点的经纬度,由于由一个特定节点来统一计算经纬度,该特定节点容易被篡改,所以在该区块链上还可以设置验证节点,在该特定节点计算经纬度之后,将经纬度发送给验证节点来进行验证,验证成功之后,再由该特定节点发送给除该发起交易节点以外的每个节点他们自身的经纬度与发起交易的节点的经纬度。
[0071] 第二,除该发起交易节点的任意一节点的经纬度以及发起交易的节点的经纬度可以由除该发起交易节点的任意一节点自己来进行计算,不用给特定节点来计算,除该发起交易节点的任意一节点根据自己的网际协议IP和发起交易的节点的网际协议IP来计算自己的经纬度以及发起交易的节点的经纬度,进一步根据经纬度计算空间距离,由于经纬度是节点自己来进行计算,为了防止节点作弊,则除该发起交易节点的任意一节点会将计算得到的经纬度发送给验证节点来进行验证,在验证节点验证之后接收验证节点发来的验证成功消息之后,继续根据经纬度计算除该发起交易节点的任意一节点与发起交易的节点的距离,后续还可以将计算的距离来发送给验证节点来进行验证,来保证公正性。其中,前述的网际协议IP地址生成经纬度的方法可为Logstash转换方法或者利用百度的精准IP定位方法。
[0072] 在本实施例的可选实施方式中,如图3所示,步骤S104中的通过可验证随机函数竞选超级节点,并在满足可验证随机函数要求后确定为超级节点,以任意一个参与竞选超级节点的节点为执行主体,具体可为:
[0073] 步骤S1040:根据该节点的私钥和接收到的共识随机数生成新的随机数,该共识随机数由上一轮出块成功的超级节点在竞选为超级节点时生成并广播在区块链上。
[0074] 步骤S1042:判断新的随机数是否满足规定的数值要求,若是,则转到步骤1044。
[0075] 步骤S1044:将新的随机数和该节点的公钥在区块链上进行广播,以使该区块链上的除该节点以外的节点根据该节点的公钥对该节点产生的新的随机数进行验证,并在该区块链上的除该节点以外的节点验证成功后确定自身为超级节点。
[0076] 上述步骤S1040~S1044可表述为可验证随机函数的执行过程,其实可验证随机函数我们可以看成是抽签过程,例如可以这样来对上述步骤进行理解,假设现在是第10轮抽签,根据距离筛选后的节点数量可为100个,这100个节点以各自的私钥加上一个全网都知道的随机数(也就是前述所说的共识随机数)生成一个新的随机数,该全网都知道的随机数由上一轮也就是第9轮的多个超级节点中产生的块被确定为最终块的超级节点在之前第9轮竞选为超级节点时产生的新的随机数(比如该全网都知道的随机数是这轮的轮次为数值10)。在此之前设置一个条件,该生成的新的随机数满足规定的数值要求,例如,谁生成的新的随机数的数值大于10,那么生成的随机数大于10的节点就可以成为超级节点,假设5号节点生成的新的随机数为数值11,但是此时只有5号节点自己才知道自己抽到了数值11满足规定的数值要求,要想其他节点接受5号节点成为超级节点,那么5号节点则需要将自己产生的新的随机数和自己的公钥广播在区块链上,在其他节点验证后,其他节点也就知道5号节点是真的产生了11,那么其他节点也就接受5号节点成为这第10轮的超级节点,其中,每一轮抽签产生的超级节点可以为多个,例如,在5号节点成为第10轮的超级节点之后,其他的节点也还可以成为第10轮的超级节点,只需要他们生成的新的随机数满足规定的数值要求。
[0077] 在本实施例的可选实施方式中,如图4所示,在步骤S104通过可验证随机函数竞选超级节点,并在满足可验证随机函数要求后确定为超级节点之后,该方法还包括:
[0078] 步骤S106:根据与该节点以外的超级节点的出块协议判断是否进行出块,若是,则转到步骤S108。
[0079] 步骤S108:该节点进行出块。
[0080] 上述步骤S106~S108表达的含义是,在前述步骤S104选出了多个超级节点之后,在这多个超级节点中需要选择一个超级节点来对该发起交易的节点对应的交易记录来进行记录,并将该记录存储并同步在该区块链上,也就是所谓的出块。在步骤S106中该多个超级节点可根据提前设置好的协议,这多个超级节点共同商量出是哪个超级节点来对这个交易记录进行出块,例如步骤S104选出的超级节点有5号、11号、23号、33号、44号、55号节点,这几个节点根据之前设定的出块协议商量出这轮由5号超级节点来对交易记录进行出块,那么5号节点则进行出块,在确定了出块的超级节点之后,该超级节点在之前竞选超级节点时生成并广播在区块链上的新的随机数则作为下一轮竞选超级节点的共识随机数,承接前述的例子所说,5号节点在竞选超级节点时生成的新的随机数11则作为下一轮竞选超级节点的共识随机数。其中,决定超级节点出块的方式除了上述所说的根据预先设定的出块协议来决定,还可以如POW机制一样,根据这些超级节点的工作量来决定。
[0081] 另外,在这多个超级节点中的任意一个超级节点对本次的交易记录进行出块之后,则这多个超级节点作废,在下一次的交易记录产生之后进行超级节点的重新竞选,例如,承接前述的例子所说,5号节点在对发起交易的节点的交易记录出块之后,这第10轮的超级节点5号、11号、23号、33号、44号、55号,全部作废,在下一次的交易记录产生之后,重新进行第11轮的超级节点竞选,也就是重复前述的所有步骤过程。
[0082] 第二实施例
[0083] 如图5所示,本申请提供一种超级节点竞选装置,应用于节点,该装置包括:
[0084] 确定模块200,用于确定节点与发起交易的节点的距离;
[0085] 判断模块202,用于判断距离是否超过预设的距离;
[0086] 竞选模块204,用于在判断模块202判断距离超过预设的距离之后,通过可验证随机函数竞选超级节点,并在满足可验证随机函数要求后确定自身为超级节点。
[0087] 上述方案设计的装置,在节点竞选超级节点前,先通过确定节点与发起交易的节点的距离来进行筛选,将与发起交易的节点距离较近的节点去除,再在去除较近节点后的节点中选取超级节点,解决了选取的超级节点与发起交易的节点距离过近带来的作弊问题,使得超级节点的选取更加公正。
[0088] 在第二实施例的可选实施方式中,确定模块200确定节点与发起交易的节点的距离,包括:
[0089] 根据节点的经纬度以及发起交易的节点的经纬度通过谷歌S2算法确定节点与发起交易的节点的距离。
[0090] 在第二实施例的可选实施方式中,该装置还包括获取模块206,用于在确定模块200根据节点的经纬度以及发起交易的节点的经纬度通过谷歌S2算法确定节点与发起交易的节点的距离之前,获取节点的经纬度以及发起交易的节点的经纬度,节点的经纬度由节点的网际协议IP地址生成,发起交易的节点的经纬度由发起交易的节点的网际协议IP地址生成。
[0091] 在第二实施例的可选实施方式中,该装置还包括发送模块208和接收模块210。
[0092] 发送模块208,用于在获取模块206获取节点的经纬度以及发起交易的节点的经纬度之后,将节点的经纬度以及发起交易的节点的经纬度发送给该区块链上的验证节点。
[0093] 接收模块210,用于接收验证节点返回的验证成功信息。
[0094] 上述方案设计的装置,通过验证节点对经纬度进行验证,达到防止数据被篡改的效果。
[0095] 第三实施例
[0096] 如图6所示,本申请提供一种电子设备,包括:处理器301、与处理器连接的存储器302,存储器302存储有处理器301可执行的存储介质,当所述计算设备运行时,处理器301执行该存储介质,以执行时执行第一实施例、第一实施例的任一可选的实现方式中的方法。
[0097] 本申请提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行第一实施例、第一实施例的任一可选的实现方式中的方法。
[0098] 其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read‑Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red‑Only Memory,简称PROM),只读存储器(Read‑Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
[0099] 本申请提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行第一实施例、第一实施例的任一可选的实现方式中的所述方法置。
[0100] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。