CN111541733B - 在p2p网络中测试消息存储的方法、计算机可读存储介质和p2p网络 - Google Patents

在p2p网络中测试消息存储的方法、计算机可读存储介质和p2p网络 Download PDF

Info

Publication number
CN111541733B
CN111541733B CN202010155481.9A CN202010155481A CN111541733B CN 111541733 B CN111541733 B CN 111541733B CN 202010155481 A CN202010155481 A CN 202010155481A CN 111541733 B CN111541733 B CN 111541733B
Authority
CN
China
Prior art keywords
node
message
nodes
network
testing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010155481.9A
Other languages
English (en)
Other versions
CN111541733A (zh
Inventor
杜晓楠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN202010155481.9A priority Critical patent/CN111541733B/zh
Publication of CN111541733A publication Critical patent/CN111541733A/zh
Application granted granted Critical
Publication of CN111541733B publication Critical patent/CN111541733B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1093Some peer nodes performing special functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种在P2P网络中测试消息存储的方法,包括:S1、对在P2P网络当中进行广播的每个消息都进行标记,并对每个新加入的P2P节点进行预处理并为每个新加入的P2P节点同步消息;S2、根据设定规则选择一部分P2P节点分别作为测试节点和被测试节点,所述测试节点接收所述被测试节点的测试结果并将所述测试结果广播给设定数量的其他P2P节点;S3、所述其他P2P节点的根据所述测试结果判定所述被测试节点是否诚实,并根据测试结果处理不诚实的所述被测试节点。本发明还涉及一种计算机可读存储介质和P2P网络。本发明可以有效测试P2P节点中的消息存储,并对未对在先消息进行存储的P2P节点进行处理,进而保证P2P节点的可靠性,进而保证其存储的数据的完整性和可靠性。

Description

在P2P网络中测试消息存储的方法、计算机可读存储介质和 P2P网络
技术领域
本发明涉及P2P网络领域,更具体地说,涉及一种在P2P网络中测试消息存储的方法、计算机可读存储介质和P2P网络。
背景技术
P2P网络(Peer-to-peer networking),即对等网络,该网络的参与者共享他们所拥有的一部分硬件资源,这些共享资源通过网络提供服务和内容,能被其它对等节点直接访问而无需经过中间实体。在此网络中的参与者既是资源、服务和内容的提供者,又是资源、服务和内容的获取者。
在P2P网络环境中,彼此连接的多台计算机之间都处于对等的地位,各台计算机有相同的功能,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站,整个网络一般来说不依赖专用的集中服务器,也没有专用的工作站。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。通常这些资源和服务包括:信息的共享和交换、计算资源(如CPU计算能力共享)、存储共享(如缓存和磁盘空间的使用)、网络共享、打印机共享等。因此,P2P网络被广泛的应用于对鲁棒性要求很高的业务场景当中,例如:数据下载,消息的存储广播等。
然而P2P网络中各个节点具有不可信任的特性,有些P2P节点可能并未对在先消息进行存储或者可能对所存储的数据进行修改或者删除,因此造成P2P网络中存储的数据或消息的数据完整性或可靠性不能得到保证。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种在P2P网络中测试消息存储的方法、计算机可读存储介质和P2P网络,从而对未对在先消息进行存储的P2P节点进行隔离或删除,进而保证P2P网络中P2P节点的可靠性,进而保证其存储的数据的完整性和可靠性。
本发明解决其技术问题所采用的技术方案是:构造一种在P2P网络中测试消息存储的方法,包括:
S1、对在P2P网络当中进行广播的每个消息都进行标记,并对每个新加入的P2P节点进行预处理并为每个新加入的P2P节点同步消息;
S2、根据设定规则选择一部分P2P节点分别作为测试节点和被测试节点,所述测试节点接收所述被测试节点的测试结果并将所述测试结果广播给设定数量的其他P2P节点;
S3、所述其他P2P节点的根据所述测试结果判定所述被测试节点是否诚实,并根据测试结果处理不诚实的所述被测试节点。
在本发明所述的在P2P网络中测试消息存储的方法中,所述步骤S1进一步包括:
S11、采用哈希算法计算在P2P网络当中进行广播的每个消息的哈希以标记所述每个消息;
S12、对新加入的P2P节点进行节点发现处理;
S13、对节点发现处理后的新加入的P2P节点进行节点间状态确认处理;
S14、每个新加入的P2P节点下载消息的标记列表。
在本发明所述的在P2P网络中测试消息存储的方法中,所述步骤S11进一步包括:采用哈希算法基于所述消息的工作量证明、时间戳、消息类型、消息内容计算所述消息的哈希。
在本发明所述的在P2P网络中测试消息存储的方法中,S121、将所述新加入的P2P节点连接到种子节点,然后要求所述种子节点给出离自己距离最近的P2P节点;
S122、向所述离自己距离最近的P2P节点询问第二最近节点,多次递归询问直到获取设定数量的P2P发现节点。
在本发明所述的在P2P网络中测试消息存储的方法中,所述步骤S13进一步包括:
S131、所述新加入的P2P节点按照设定规则从所述P2P发现节点中选择设定数量的最近节点,并向所述最近节点发送握手消息;
S132、接收所述握手消息的所述最近节点验证所述握手消息并基于验证结果返回握手确认消息;
S133、所述新加入的P2P节点基于所述握手确认消息同步自身的最新消息并基于所述最新消息。
在本发明所述的在P2P网络中测试消息存储的方法中,所述步骤S2进一步包括:
S21、周期性地基于选定的一部分P2P节点的公钥的asc排序索引值选定测试节点;
S22、选择所述测试节点的最近P2P节点中的一部分作为被测试节点;
S23、所述测试节点要求所述被测试节点按照设定规则提供所述测试结果并将所述测试结果广播给所述最近P2P节点中的剩余P2P节点。
在本发明所述的在P2P网络中测试消息存储的方法中,所述步骤S23进一步包括:
S231、所述测试节点随机选取预定时间内的预定数量的消息的哈希集合,并将所述哈希集合广播给被测试节点;
S232、所述被测试节点根据所述哈希集合取出本地存储的消息并按照顺序拼合成消息集合并计算所述消息集合的哈希,并将所述消息集合的哈希返回所述测试节点;
S233、所述测试节点将所述哈希集合、所述消息集合的哈希、以及被测试节点的公钥和对应的IP端口广播给所述最近P2P节点中的剩余P2P节点。
在本发明所述的在P2P网络中测试消息存储的方法中,所述步骤S3进一步包括:
S31、每个所述其他P2P节点分别根据其内部存储的消息和所述测试结果,判定各个被测试节点是否通过测试,并将判定结果广播给其他所述其他P2P节点;
S32、基于全部所述其他P2P节点的判定结果生成所述被测试节点是否诚实的最终判定结果;
S33、所述测试节点广播所述最终判定结果,并对最终判定为不诚实的被测试节点进行隔离或删除。
本发明解决其技术问题采用的另一技术方案是,构造一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的在P2P网络中测试消息存储的方法。
本发明解决其技术问题采用的再一技术方案是,构造一种P2P网络,包括多个P2P节点,所述P2P节点上存储有计算机程序,所述程序被处理器执行时实现所述的在P2P网络中测试消息存储的方法。
实施本发明的在P2P网络中测试消息存储的方法、计算机可读存储介质和P2P网络,可以有效测试P2P节点中的消息存储,并对未对在先消息进行存储的P2P节点进行处理,进而保证P2P网络中P2P节点的可靠性,进而保证其存储的数据的完整性和可靠性。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明的在P2P网络中测试消息存储的方法的第一优选实施例的流程示意图;
图2是本发明的在P2P网络中测试消息存储的方法的消息的优选数据结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明涉及一种在P2P网络中测试消息存储的方法,包括:S1、对在P2P网络当中进行广播的每个消息都进行标记,并对每个新加入的P2P节点进行预处理并为每个新加入的P2P节点同步消息;S2、根据设定规则选择一部分P2P节点分别作为测试节点和被测试节点,所述测试节点接收所述被测试节点的测试结果并将所述测试结果广播给设定数量的其他P2P节点;S3、所述其他P2P节点的根据所述测试结果判定所述被测试节点是否诚实,并根据测试结果处理不诚实的所述被测试节点。因此,本发明可以对P2P网络当中的P2P节点进行筛选测试,如果筛选出来的节点被设定数量的P2P节点发现没有对以往的消息进行消息存储,则对该P2P节点进行相应的处罚。通过有效测试P2P节点中的消息存储,并对未对在先消息进行存储的P2P节点进行处理,进而保证P2P网络中P2P节点的可靠性,进而保证其存储的数据的完整性和可靠性。
图1是本发明的在P2P网络中测试消息存储的方法的第一优选实施例的流程示意图。如图1所示,在步骤S1中对在P2P网络当中进行广播的每个消息都进行标记,并对每个新加入的P2P节点进行预处理并为每个新加入的P2P节点同步消息。在本发明的优选实施例中,所述步骤S1进一步包括:S11、采用哈希算法计算在P2P网络当中进行广播的每个消息的哈希以标记所述每个消息;S12、对新加入的P2P节点进行节点发现处理;S13、对节点发现处理后的新加入的P2P节点进行节点间状态确认处理;S14、每个新加入的P2P节点下载消息的标记列表。
优选地,图2是本发明的在P2P网络中测试消息存储的方法的消息的优选数据结构示意图。如图2所示,所述消息的数据结构包括如下内容。
哈希:即消息的哈希值,哈希计算的内容包括所述消息的工作量证明、时间戳、消息类型、消息内容,但是不包括P2P相关信息和随机数,即可以采用哈希算法基于所述消息的工作量证明、时间戳、消息类型、消息内容计算所述消息的哈希。P2P相关信息是跟网络广播相关的信息,不会被P2P节点最终写入到磁盘。哈希的计算采用blake2b函数,因为是blake2b函数已经被高度标准化,不会因为具体实现的预言不同而导致不同。
工作量证明:其要求P2P节点广播消息之前都会对消息内容和随机生成的随机数进行多次哈希计算,直到哈希计算出来的值符合一定的数量的前导0要求为止。其他P2P节点收到该消息之后,会进行工作量证明和随机数值的验证。这样做的目的是为了防止女巫攻击和大流量攻击。
时间戳:表示P2P节点收到该消息的时间。
消息类型:其可以是普通消息类型,也可以是心跳消息类型,也可以是普通消息类型。加入心跳消息的目的有如下两个:一是保活P2P节点之间的连接;二是防止P2P网络空闲时,进行消息存储测试,没有足够的消息进行筛选。
消息内容:即具体的消息内容。
P2P相关的信息:其可以再具体实施过程当中根据网络拓扑进行拓展定义随机数:其可以在运算过程中随机生成。
在本发明的优选实施例中,所述步骤S12涉及P2P发现节点的获取过程,其进一步包括:S121、将所述新加入的P2P节点连接到种子节点,然后要求所述种子节点给出离自己距离最近的P2P节点;S122、向所述离自己距离最近的P2P节点询问第二最近节点,多次递归询问直到获取设定数量的P2P发现节点。
在本发明的具体实施例中,所述P2P发现节点的获取过程可以进一步按照如下方式实现。新加入的P2P节点在连入P2P网络之后,首先连接到种子节点,然后要求种子节点给出离自己距离最近的P2P节点。在本实施例中,节点间的距离可以根据经典的DHT距离算法算出。然后在该新加入的P2P节点收到种子节点给出的最近的P2P节点后,继续向每个或者至少部分最近的P2P节点询问第二最近节点,多次递归询问直到获取足够的P2P发现节点为止,这里建议最大的P2P发现节点的个数为1024个。
在本发明的优选实施例中,所述步骤S13涉及节点间状态的确认,其进一步包括:S131、所述新加入的P2P节点按照设定规则从所述P2P发现节点中选择设定数量的最近节点,并向所述最近节点发送握手消息;S132、接收所述握手消息的所述最近节点验证所述握手消息并基于验证结果返回握手确认消息;S133、所述新加入的P2P节点基于所述握手确认消息同步自身的最新消息并基于所述最新消息。
在本发明的具体实施例中,所述节点间状态的确认可以进一步按照如下方式实现。所述新加入的P2P节点对所述P2P发现节点进行筛选。例如可以根据DHT算法选出离自己最近的少部分P2P发现节点,这里建议选出离自己最近的32个P2P发现节点。当然,也可以选择其他数量,本领域技术人员可以根据实际需要进行设置。然后所述新加入的P2P节点然后开始连接离自己最近的这32个P2P发现节点,向其发送握手消息,握手消息包含了自己最近收到的消息,并且加签握手消息。然后接收所述握手消息的该节点对其身份进行验证。例如当发现发来的最近消息,距离自己的最新消息的时间戳相差不超过120秒,则回复握手确认,否则将不回复,或者回复握手失败。当然,在本发明的其他优选实施例中,还可以采用其他身份验证方式。在发送握手确认时,可以一并发送自己的最新消息。所述新加入的P2P节点收到握手确认之后,验证自己的消息与接收到的最新消息是否有误差,如果有,则向对端同步最新消息。
先返回到图1,在步骤S2中,根据设定规则选择一部分P2P节点分别作为测试节点和被测试节点,所述测试节点接收所述被测试节点的测试结果并将所述测试结果广播给设定数量的其他P2P节点。优选地,在本发明的一个优选实施例中,每过一个周期T(当然也可以是多个周期或者设定时间段),可以选择设定规则选择一部分P2P节点进行存储测试,要求被测试节点给出随机的几条消息的总hash值,然后并将测试结果广播给其他的节点进行验证。
在本发明的进一步的优选实施例中,所述步骤S2进一步包括:S21、基于选定的一部分P2P节点的公钥的asc排序索引值选定测试节点;S22、选择所述测试节点的最近P2P节点中的一部分作为被测试节点;S23、所述测试节点要求所述被测试节点按照设定规则提供所述测试结果并将所述测试结果广播给所述最近P2P节点中的剩余P2P节点。优选地,所述步骤S23进一步包括:S231、所述测试节点随机选取预定时间内的预定数量的消息的哈希集合,并将所述哈希集合广播给被测试节点;S232、所述被测试节点根据所述哈希集合取出本地存储的消息并按照顺序拼合成消息集合并计算所述消息集合的哈希,并将所述消息集合的哈希返回所述测试节点;S233、所述测试节点将所述哈希集合、所述消息集合的哈希、以及被测试节点的公钥和对应的IP端口广播给所述最近P2P节点中的剩余P2P节点。
优选地,在本发明的进一步的优选实施例中,参与的每个P2P节点将具有不同的身份:测试节点,其发起测试,并广播测试结果,被测试节点,响应测试返回被测试结果,以及校验节点,即校验各个被测试节点是否通过测试。下面进一步对步骤S2的具体实现方式说明如下:
测试节点的选取:
优选地,测试节点的选取包括将某个P2P节点和自己的公钥以及自己的所有N个P2P发现节点的公钥进行asc排序,如果发现自己在asc排序当中的索引值index正好是测试周期Perodic%N,则自己可以成为本轮测试的发起者,即测试节点。在测试节点身份确认之后,开始随机筛选离自己最近的32个节点当中的10个节点作为被测试节点,然后将剩余20个节点作为校验节点,其将在后续步骤中使用。当然在此节点的数量可以变化。
存储测试过程
在选取被测试节点之后,开始随机筛选过去一段时间(例如30)分钟的数条(例如5条)消息的哈希集合[h1,h2,h3,h4,h5],并将该哈希集合[h1,h2,h3,h4,h5]广播给被测试节点。
被测试节点可以先确认测试节点是否具有测试资格,也可以不进行确认,例如可以通过检验其索引值index来进行确认。然后被测试节点根据测试节点要求的哈希集合[h1,h2,h3,h4,h5],将本地存储的对应的消息取出,然后按照顺序进行拼接成消息集合M,并采用blake2b函数起计算所述消息集合的哈希HM=blake2b(M),并回复给测试节点。
现在返回到图1,接下来进行步骤S3,在步骤S3中,所述其他P2P节点的根据所述测试结果判定所述被测试节点是否诚实,并根据测试结果处理不诚实的所述被测试节点。在本发明的进一步的优选实施例中,所述步骤S3进一步包括:S31、每个所述其他P2P节点分别根据其内部存储的消息和所述测试结果,判定各个被测试节点是否通过测试,并将判定结果广播给其他所述其他P2P节点;S32、基于全部所述其他P2P节点的判定结果生成所述被测试节点是否诚实的最终判定结果;S33、所述测试节点广播所述最终判定结果,并对最终判定为不诚实的被测试节点进行隔离或删除。
下面进一步对步骤S3的具体实现方式说明如下,在此还是以之前的32个节点中选择10个节点进行测试为例继续说明,本领域技术人员知悉,还可以选择其他的数量来执行本发明的步骤:
广播测试结果
测试节点收到所有被测试节点的测试回复消息之后,开始向离自己最近的32个节点当中剩余的22个节点,即前述校验节点,进行广播测试结果,测试结果包括:测试节点的消息的哈希集合[h1,h2,h3,h4,h5];被测试节点的公钥[P1,P2,...,P10]以及对应的IP端口;各个被测试节点回复的消息集合的哈希HM的集合
Figure BDA0002402590460000091
剩余的22个节点中,即前述校验节点中的每一个校验节点收到测试结果之后,根据测试节点的消息的哈希集合[h1,h2,h3,h4,h5]找到本地对应的消息,然后按照顺序进行拼接成本地消息集合M,并同样采用blake2b函数起计算所述本地消息集合的哈希HValidate=blake2b(M),依次对比HValidate是否等于
Figure BDA0002402590460000092
如果不等于则投票判定对应的被测试节点未通过测试,如果相等则投票判定对应的被测试节点通过测试,并将判定结果广播给周围的节点,所述判定结果包括:测试节点的消息的哈希集合[h1,h2,h3,h4,h5];被测试节点的公钥[P1,P2,...,P10]以及对应的IP端口;校验节点的校验结果集
Figure BDA0002402590460000093
在广播结束之后22个节点均开始收集起他节点的测试结果,并得出最终结论Vf。例如如果对于被测试者[P1,P2,...,P10]里面的同一个公钥的测试通过数超过11票,则认为该公钥对应的节点诚实。如果对于被测试者[P1,P2,...,P10]里面的同一个公钥的测试不同过数超过11票,则认为该公钥的节点不诚实。当然还可以选择其他数量,比如超过2/3,例如需要22个节点中18个节点通过,才认为该被测试节点诚实等等。
然后,测试节点广播最终判定结果,所述最终判定结果还可以包括测试节点的消息的哈希集合[h1,h2,h3,h4,h5];被测试节点的公钥[P1,P2,...,P10]以及对应的IP端口;校验节点的校验结果集
Figure BDA0002402590460000101
在收到所有校验节点的校验结果集
Figure BDA0002402590460000102
对同一个被测试节点,如果反对票超过11票,则最终认为该节点不诚实,并广播最终结果给剩余的32个节点;如果赞成票超过11票,则最终认为该节点诚实,并广播最终结果给剩余的32个节点
对于不诚实的被测试节点可以进行隔离处理,例如不广播其IP端口信息给其他P2P节点,同时也不再广播新消息给该节点,也不将其他P2P节点的信息广播给它,或者将其降级,也可以直接将该被测试节点删除。
实施本发明的在P2P网络中测试消息存储的方法,可以有效测试P2P节点中的消息存储,并对未对在先消息进行存储的P2P节点进行处理,进而保证P2P网络中P2P节点的可靠性,进而保证其存储的数据的完整性和可靠性。
本发明还涉及一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的在P2P网络中测试消息存储的方法。
本发明还涉及一种P2P网络,包括多个P2P节点,所述P2P节点上存储有计算机程序,,所述程序被处理器执行时实现根据权利要求1-8中任意一项权利要求所述的在P2P网络中测试消息存储的方法。
实施本发明的在P2P网络中测试消息存储的计算机可读存储介质和P2P网络,可以有效测试P2P节点中的消息存储,并对未对在先消息进行存储的P2P节点进行处理,进而保证P2P网络中P2P节点的可靠性,进而保证其存储的数据的完整性和可靠性。
因此,本发明可以通过硬件、软件或者软、硬件结合来实现。本发明可以在至少一个计算机***中以集中方式实现,或者由分布在几个互连的计算机***中的不同部分以分散方式实现。任何可以实现本发明方法的计算机***或其它设备都是可适用的。常用软硬件的结合可以是安装有计算机程序的通用计算机***,通过安装和执行程序控制计算机***,使其按本发明方法运行。
本发明还可以通过计算机程序产品进行实施,程序包含能够实现本发明方法的全部特征,当其安装到计算机***中时,可以实现本发明的方法。本文件中的计算机程序所指的是:可以采用任何程序语言、代码或符号编写的一组指令的任何表达式,该指令组使***具有信息处理能力,以直接实现特定功能,或在进行下述一个或两个步骤之后实现特定功能:a)转换成其它语言、编码或符号;b)以不同的格式再现。
虽然本发明是通过具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或材料,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种在P2P网络中测试消息存储的方法,其特征在于,包括:
S1、对在P2P网络当中进行广播的每个消息都进行标记,并对每个新加入的P2P节点进行预处理并为每个新加入的P2P节点同步消息;
S2、根据设定规则选择一部分P2P节点分别作为测试节点和被测试节点,所述测试节点接收所述被测试节点的测试结果并将所述测试结果广播给设定数量的其他P2P节点;
S3、所述其他P2P节点的根据所述测试结果判定所述被测试节点是否诚实,并根据测试结果处理不诚实的所述被测试节点;
所述步骤S2进一步包括:
S21、周期性地基于选定的一部分P2P节点的公钥的asc排序索引值选定测试节点;
S22、选择所述测试节点的最近P2P节点中的一部分作为被测试节点;
S23、所述测试节点要求所述被测试节点按照设定规则提供所述测试结果并将所述测试结果广播给所述最近P2P节点中的剩余P2P节点;
所述步骤S23进一步包括:
S231、所述测试节点随机选取预定时间内的预定数量的消息的哈希集合,并将所述哈希集合广播给被测试节点;
S232、所述被测试节点根据所述哈希集合取出本地存储的消息并按照顺序拼合成消息集合并计算所述消息集合的哈希,并将所述消息集合的哈希返回所述测试节点;
S233、所述测试节点将所述哈希集合、所述消息集合的哈希、以及被测试节点的公钥和对应的IP端口广播给所述最近P2P节点中的剩余P2P节点。
2.根据权利要求1所述的在P2P网络中测试消息存储的方法,其特征在于,所述步骤S1进一步包括:
S11、采用哈希算法计算在P2P网络当中进行广播的每个消息的哈希以标记所述每个消息;
S12、对新加入的P2P节点进行节点发现处理;
S13、对节点发现处理后的新加入的P2P节点进行节点间状态确认处理;
S14、每个新加入的P2P节点下载消息的标记列表。
3.根据权利要求2所述的在P2P网络中测试消息存储的方法,其特征在于,所述步骤S11进一步包括:采用哈希算法基于所述消息的工作量证明、时间戳、消息类型、消息内容计算所述消息的哈希。
4.根据权利要求2所述的在P2P网络中测试消息存储的方法,其特征在于,所述步骤S12进一步包括:
S121、将所述新加入的P2P节点连接到种子节点,然后要求所述种子节点给出离自己距离最近的P2P节点;
S122、向所述离自己距离最近的P2P节点询问第二最近节点,多次递归询问直到获取设定数量的P2P发现节点。
5.根据权利要求4所述的在P2P网络中测试消息存储的方法,其特征在于,所述步骤S13进一步包括:
S131、所述新加入的P2P节点按照设定规则从所述P2P发现节点中选择设定数量的最近节点,并向所述最近节点发送握手消息;
S132、接收所述握手消息的所述最近节点验证所述握手消息并基于验证结果返回握手确认消息;
S133、所述新加入的P2P节点基于所述握手确认消息同步自身的最新消息并基于所述最新消息。
6.根据权利要求1所述的在P2P网络中测试消息存储的方法,其特征在于,所述步骤S3进一步包括:
S31、每个所述其他P2P节点分别根据其内部存储的消息和所述测试结果,判定各个被测试节点是否通过测试,并将判定结果广播给其他所述其他P2P节点;
S32、基于全部所述其他P2P节点的判定结果生成所述被测试节点是否诚实的最终判定结果;
S33、所述测试节点广播所述最终判定结果,并对最终判定为不诚实的被测试节点进行隔离或删除。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现根据权利要求1-6中任意一项权利要求所述的在P2P网络中测试消息存储的方法。
8.一种P2P网络,包括多个P2P节点,所述P2P节点上存储有计算机程序,其特征在于,所述程序被处理器执行时实现根据权利要求1-6中任意一项权利要求所述的在P2P网络中测试消息存储的方法。
CN202010155481.9A 2020-03-06 2020-03-06 在p2p网络中测试消息存储的方法、计算机可读存储介质和p2p网络 Active CN111541733B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010155481.9A CN111541733B (zh) 2020-03-06 2020-03-06 在p2p网络中测试消息存储的方法、计算机可读存储介质和p2p网络

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010155481.9A CN111541733B (zh) 2020-03-06 2020-03-06 在p2p网络中测试消息存储的方法、计算机可读存储介质和p2p网络

Publications (2)

Publication Number Publication Date
CN111541733A CN111541733A (zh) 2020-08-14
CN111541733B true CN111541733B (zh) 2022-09-20

Family

ID=71974791

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010155481.9A Active CN111541733B (zh) 2020-03-06 2020-03-06 在p2p网络中测试消息存储的方法、计算机可读存储介质和p2p网络

Country Status (1)

Country Link
CN (1) CN111541733B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109617702A (zh) * 2019-01-29 2019-04-12 深圳市先河***技术有限公司 消息签名的方法、区块链节点及具有存储功能的装置
CN109639436A (zh) * 2019-01-04 2019-04-16 平安科技(深圳)有限公司 基于盐值的数据持有性验证方法及终端设备
CN109905360A (zh) * 2019-01-07 2019-06-18 平安科技(深圳)有限公司 数据验证方法及终端设备
CN110213059A (zh) * 2019-06-20 2019-09-06 腾讯科技(深圳)有限公司 一种随机数的生成方法、生成装置及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2003845B1 (en) * 2007-06-15 2015-07-29 Alcatel Lucent Peer chosen as tester for detecting misbehaving peer in structured peer-to-peer networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109639436A (zh) * 2019-01-04 2019-04-16 平安科技(深圳)有限公司 基于盐值的数据持有性验证方法及终端设备
CN109905360A (zh) * 2019-01-07 2019-06-18 平安科技(深圳)有限公司 数据验证方法及终端设备
CN109617702A (zh) * 2019-01-29 2019-04-12 深圳市先河***技术有限公司 消息签名的方法、区块链节点及具有存储功能的装置
CN110213059A (zh) * 2019-06-20 2019-09-06 腾讯科技(深圳)有限公司 一种随机数的生成方法、生成装置及存储介质

Also Published As

Publication number Publication date
CN111541733A (zh) 2020-08-14

Similar Documents

Publication Publication Date Title
CN109936457B (zh) 区块链多方见证方法、装置、设备及计算机可读存储介质
Hassanzadeh-Nazarabadi et al. Lightchain: A dht-based blockchain for resource constrained environments
CN111625593B (zh) 基于区块链的数据处理方法、装置、计算机设备
US7640339B1 (en) Method and apparatus for monitoring a node in a distributed system
US8819237B2 (en) Method for monitoring and providing information over a peer to peer network
US20220067063A1 (en) Apparatus and method for adaptively managing sharded blockchain network based on deep q network
CN111737104A (zh) 区块链网络服务平台及其测试用例共享方法、存储介质
KR100656222B1 (ko) 일시 네트워크에 있어서 동적 어드레싱 방법
WO2020197514A1 (en) A distributed hash table based blockchain architecture for resource constrained environments
CN108710681A (zh) 文件获取方法、装置、设备及存储介质
JP2024505692A (ja) ブロックチェーンネットワークに基づくデータ処理方法、装置及びコンピュータ機器
KR20200081533A (ko) 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법
Guo et al. A hierarchical and location-aware consensus protocol for IoT-blockchain applications
CN110598452B (zh) 基于区块链的证据信息处理方法、装置、存储介质和设备
CN112118117A (zh) 一种基于Paxos算法的区块链共识方法
CN113810453B (zh) 基于共识区块链的时间戳标记方法和装置
Mikalsen Firechain: An efficient blockchain protocol using secure gossip
CN110708383B (zh) 区块链节点的网络连接方法及相关设备
CN111541733B (zh) 在p2p网络中测试消息存储的方法、计算机可读存储介质和p2p网络
CN111915325B (zh) 区块链交易信息的溯源方法、***及计算机可读存储介质
CN112398924A (zh) 区块链节点准入控制方法、装置、计算机设备和存储介质
CN114499874A (zh) 一种应用于工业互联网的拜占庭容错共识优化方法
Aktypi et al. SeCaS: Secure capability sharing framework for IoT devices in a structured P2P network
Garewal et al. The helium network
CN115550472B (zh) 异构数据处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40028325

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant