发明内容
本申请的主要目的在于提供一种外部节点接入区块链网络的方法、装置、设备及可读存储介质,一种区块链网络,旨在解决外部节点接入区块链网络的过程中,代理节点会暴露自身IP地址的技术问题。
为实现上述目的,本申请提供了一种外部节点接入区块链网络的方法,应用于目标外部节点,包括:
发送接入请求至区块链网络中的种子服务器;
接收所述种子服务器返回的目标信息;
若所述目标信息包括DHT节点信息和代理节点的SLB地址,则利用所述SLB地址与所述代理节点建立通信连接,以接入所述区块链网络;所述代理节点不支持DHT功能;利用所述DHT节点信息与DHT节点进行UDP通信,以便所述DHT节点获取并存储所述目标外部节点的外部节点信息,并将所述外部节点信息发送至所述种子服务器。
优选地,所述利用所述SLB地址与所述代理节点建立通信连接,包括:
按照所述SLB地址发送消息至SLB,以使所述SLB转发所述消息至所述代理节点;所述SLB为所述代理节点的负载均衡服务器。
优选地,若所述目标信息包括:已接入所述区块链网络的其他外部节点的其他节点信息,则所述方法还包括:
利用所述其他节点信息与所述其他外部节点建立通信连接,以接入所述区块链网络。
为实现上述目的,本申请进一步提供了另一种外部节点接入区块链网络的方法,应用于区块链网络中的种子服务器,包括:
接收目标外部节点发送的接入请求;
返回目标信息至所述目标外部节点;
若所述目标信息包括DHT节点信息和代理节点的SLB地址,则所述目标外部节点利用所述SLB地址与所述代理节点建立通信连接,以接入所述区块链网络;所述代理节点不支持DHT功能;所述目标外部节点利用所述DHT节点信息与DHT节点进行UDP通信,以便所述DHT节点获取并存储所述目标外部节点的外部节点信息,并将所述外部节点信息发送至所述种子服务器。
优选地,所述目标外部节点利用所述SLB地址与所述代理节点建立通信连接,包括:
所述目标外部节点按照所述SLB地址发送消息至SLB,以使所述SLB转发所述消息至所述代理节点;所述SLB为所述代理节点的负载均衡服务器。
优选地,所述方法还包括:
接收并存储所述DHT节点发送的所述外部节点信息。
为实现上述目的,本申请进一步提供了一种外部节点接入区块链网络的装置,应用于目标外部节点,包括:
发送模块,用于发送接入请求至区块链网络中的种子服务器;
信息接收模块,用于接收所述种子服务器返回的目标信息;
连接模块,用于若所述目标信息包括DHT节点信息和代理节点的SLB地址,则利用所述SLB地址与所述代理节点建立通信连接,以接入所述区块链网络;所述代理节点不支持DHT功能;利用所述DHT节点信息与DHT节点进行UDP通信,以便所述DHT节点获取并存储所述目标外部节点的外部节点信息,并将所述外部节点信息发送至所述种子服务器。
为实现上述目的,本申请进一步提供了另一种外部节点接入区块链网络的装置,应用于区块链网络中的种子服务器,包括:
请求接收模块,用于接收目标外部节点发送的接入请求;
返回模块,用于返回目标信息至所述目标外部节点;若所述目标信息包括DHT节点信息和代理节点的SLB地址,则所述目标外部节点利用所述SLB地址与所述代理节点建立通信连接,以接入所述区块链网络;所述代理节点不支持DHT功能;所述目标外部节点利用所述DHT节点信息与DHT节点进行UDP通信,以便所述DHT节点获取并存储所述目标外部节点的外部节点信息,并将所述外部节点信息发送至所述种子服务器。
为实现上述目的,本申请进一步提供了一种设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的外部节点接入区块链网络的方法。
为实现上述目的,本申请进一步提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的外部节点接入区块链网络的方法。
为实现上述目的,本申请进一步提供了一种区块链网络,包括:种子服务器、不支持DHT功能的代理节点和DHT节点,其中:
所述种子服务器,用于接收目标外部节点发送的接入请求;返回目标信息至所述目标外部节点;
所述目标外部节点,用于若所述目标信息包括DHT节点信息和所述代理节点的SLB地址,则利用所述SLB地址与所述代理节点建立通信连接,以接入区块链网络;
所述目标外部节点,还用于利用所述DHT节点信息与所述DHT节点进行UDP通信,以便所述DHT节点获取并存储所述目标外部节点的外部节点信息,并将所述外部节点信息发送至所述种子服务器。
通过以上方案可知,本申请提供了一种外部节点接入区块链网络的方法,应用于目标外部节点,包括:发送接入请求至区块链网络中的种子服务器;接收种子服务器返回的目标信息;若目标信息包括DHT节点信息和代理节点的SLB地址,则利用SLB地址与代理节点建立通信连接,以接入区块链网络;代理节点不支持DHT功能;利用DHT节点信息与DHT节点进行UDP通信,以便DHT节点获取并存储目标外部节点的外部节点信息,并将外部节点信息发送至种子服务器。
本申请还提供了另一种外部节点接入区块链网络的方法,应用于区块链网络中的种子服务器,包括:接收目标外部节点发送的接入请求;返回目标信息至目标外部节点;若目标信息包括DHT节点信息和代理节点的SLB地址,则目标外部节点利用SLB地址与代理节点建立通信连接,以接入区块链网络;代理节点不支持DHT功能;目标外部节点利用DHT节点信息与DHT节点进行UDP通信,以便DHT节点获取并存储目标外部节点的外部节点信息,并将外部节点信息发送至种子服务器。
可见,在本申请中,由区块链网络中的种子服务器给当前要接入区块链网络的目标外部节点,返回目标信息至目标外部节点;若目标信息包括DHT节点信息和代理节点的SLB地址,则目标外部节点利用SLB地址与代理节点建立通信连接,以接入区块链网络;代理节点不支持DHT功能;目标外部节点利用DHT节点信息与DHT节点进行UDP通信,以便DHT节点获取并存储目标外部节点的外部节点信息,并将外部节点信息发送至种子服务器。在本申请中,DHT节点代替不支持DHT功能的代理节点来记录外部节点信息,不仅降低了代理节点的压力,还使得整个接入过程无需区块链网络中的代理节点参与,因此代理节点不会暴露自身IP地址,也就不会增加代理节点被攻击的风险,区块链网络的安全性也得到了提升。其中,当前要接入区块链网络的目标外部节点与已接入区块链网络的其他外部节点,还可以降低代理节点的压力,以及代理节点连接的外部节点的个数,提高区块链网络的可靠性和稳定性。
相应地,本申请提供的一种外部节点接入区块链网络的装置、设备及可读存储介质,一种区块链网络,也同样具有上述技术效果。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
参见图1,图1为本申请公开的第一种外部节点接入区块链网络的方法流程图。在一实施例中,目标外部节点和种子服务器通过负载均衡服务器(Server Load Balancing,SLB)进行数据交互,本实施例提供的方法应用于目标外部节点,包括:
S101、发送接入请求至区块链网络中的种子服务器。
具体的,由于目标外部节点(外部peer)和种子服务器(boot node)通过负载均衡服务器(SLB)进行数据交互,因此目标外部节点发送接入请求至种子服务器的具体过程为:目标外部节点发送接入请求至负载均衡服务器,负载均衡服务器将接入请求转发至种子服务器。因此在目标外部节点发送接入请求至种子服务器的过程中,种子服务器的节点信息不会暴露给目标外部节点,种子服务器的节点信息一般包括:种子服务器的IP地址、端口(port)等。
S102、接收种子服务器返回的目标信息。
具体的,由于目标外部节点和种子服务器通过负载均衡服务器进行数据交互,因此目标外部节点接收种子服务器返回的目标信息的具体过程为:种子服务器返回目标信息至负载均衡服务器,负载均衡服务器将目标信息转发至目标外部节点。因此在目标外部节点接收种子服务器返回的目标信息的过程中,种子服务器的节点信息也不会暴露给目标外部节点。
目标外部节点和种子服务器的整个数据交互过程中,种子服务器的节点信息均不会暴露给目标外部节点,因此种子服务器始终是安全的。需要说明的是,负载均衡服务器的SLB地址会被目标外部节点和种子服务器知道,因此二者可通过负载均衡服务器进行数据交互。其中,负载均衡服务器设于区块链网络中,用于代替种子服务器与外网进行通信,一个负载均衡服务器可以代替多个种子服务器与外网进行通信。
S103、若目标信息包括DHT节点信息和代理节点的SLB地址,则利用SLB地址与代理节点建立通信连接,以接入区块链网络;利用DHT节点信息与DHT节点进行UDP通信,以便DHT节点获取并存储目标外部节点的外部节点信息,并将外部节点信息发送至种子服务器。
其中,代理节点不支持DHT功能。
一般情况下,当外部节点想要接入区块链网络,外部节点会与区块链网络中的代理节点(proxy p)建立通信连接,而代理节点与区块链网络中的内网节点具有通信连接,因此当外部节点与代理节点建立通信连接,那么表明外部节点已接入区块链网络。
在一种具体实施方式中,利用SLB地址与代理节点建立通信连接,包括:按照SLB地址发送消息至SLB,以使SLB转发消息至代理节点;SLB为代理节点的负载均衡服务器。
具体的,由于目标外部节点和代理节点通过负载均衡服务器进行数据交互,因此目标外部节点接收代理节点返回的目标信息的具体过程为:代理节点返回目标信息至负载均衡服务器,负载均衡服务器将目标信息转发至目标外部节点。因此在目标外部节点接收代理节点返回的目标信息的过程中,代理节点的节点信息也不会暴露给目标外部节点。
目标外部节点和代理节点的整个数据交互过程中,代理节点的节点信息均不会暴露给目标外部节点,因此代理节点始终是安全的。需要说明的是,负载均衡服务器的SLB地址会被目标外部节点和代理节点知道,因此二者可通过负载均衡服务器进行数据交互。其中,负载均衡服务器设于区块链网络中,用于代替代理节点与外网进行通信,一个负载均衡服务器可以代替多个代理节点与外网进行通信。
需要说明的是,种子服务器有对应的负载均衡服务器,代理节点也有对应的负载均衡服务器。
在一种具体实施方式中,若目标信息包括:已接入区块链网络的其他外部节点的其他节点信息,则本实施例还包括:利用其他节点信息与其他外部节点建立通信连接,以接入区块链网络。其他节点信息是已接入区块链网络的外部节点的节点信息的统称,其一般包括:外部节点的IP地址、端口等。
为了降低代理节点的压力,以及代理节点连接的外部节点的个数,可以让当前想要接入区块链网络的外部节点与已接入区块链网络的其他外部节点建立通信连接。若当前外部节点与已接入区块链网络的其他外部节点建立通信连接,那么由于其他外部节点已接入区块链网络,因此当前外部节点也就接入了区块链网络。
其中,当前外部节点与已接入区块链网络的其他外部节点建立通信连接的过程中,可能存在无法连接的情况,也就是说,不是所有的外部节点之间都可以建立通信连接的。那么为了提高外部节点与已接入区块链网络的其他外部节点建立通信连接的成功率,本实施例将尽可能多的(如:所有已接入的外部节点)已接入区块链网络的其他外部节点的节点信息返回给当前想要接入区块链网络的目标外部节点,这样可为代理节点压力的降低提供基础。
若目标信息不仅包括代理节点的SLB地址,还包括其他外部节点信息,那么目标外部节点可以优选选择与其他外部节点信息建立通信连接,若无法连接,则尝试与代理节点的负载均衡服务器建立通信连接。由于负载均衡服务器与代理节点具有通信连接,因此也就建立了目标外部节点和代理节点的通信连接。又由于代理节点不支持DHT功能,因此本实施例中的代理节点不会给目标外部节点直接返回UDP消息,也就不会暴露自身IP地址。
若目标外部节点连接了已接入区块链网络的其他外部节点信息,那么就不会尝试与代理节点的负载均衡服务器建立通信连接;反之亦然。
DHT功能指能够主动查询和更新分布式哈希表(Distributed Hash Table)的功能,分布式哈希表中记录着所有已接入区块链网络的其他外部节点的节点信息。其中,由于本实施例中的代理节点不会主动查询和更新分布式哈希表,因此其在接收到目标外部节点通过负载均衡服务器发送的UDP Ping消息时,不做相应回复。现有技术会使代理节点暴露IP地址的主要原因在于:代理节点在接收到外部节点通过负载均衡服务器发送的UDP Ping消息时,直接回复给外部节点UDP Pong消息,因此导致代理节点和外部节点有了直接的数据交互,故而代理节点向外部节点暴露了自身的IP地址和端口。
若目标信息包括DHT节点信息,那么目标外部节点利用DHT节点信息与DHT节点建立UDP通信连接,这样DHT节点便可以获取并存储目标外部节点的外部节点信息,并将外部节点信息发送至种子服务器。目标外部节点与DHT节点建立通信连接后,由于DHT节点支持DHT功能,因此本实施例中的DHT节点可以主动查询和更新分布式哈希表,也就是能够将接入区块链网络的外部节点的节点信息记录至分布式哈希表。当外部节点与区块链网络断开连接后,DHT节点可以主动将分布式哈希表中的相应节点信息删除。
其中,DHT节点会将自身的DHT节点信息,以及分布式哈希表中记录的接入区块链网络的外部节点的外部节点信息主动上报给种子服务器,这样种子服务器在接收到目标外部节点发送的接入请求后,便可将DHT节点信息、已接入区块链网络的外部节点的外部节点信息、甚至区块链网络中的部分代理节点的代理节点的SLB地址返回给目标外部节点。一般情况下,种子服务器会返回区块链网络中的20%的代理节点的节点信息。
需要说明的是,若目标信息中包括已接入区块链网络的外部节点的外部节点信息息,则目标外部节点可以与其他外部节点建立通信连接,以接入区块链网络。若目标信息中包括代理节点的SLB地址,则目标外部节点可以与代理节点的负载均衡服务器建立通信连接。若目标信息中包括DHT节点信息,则目标外部节点可以与DHT节点建立通信连接。
其中,目标信息包括的节点信息种类可灵活调整,如:仅包括外部节点信息、代理节点的SLB地址、DHT节点信息。在实际应用时,当第一个外部节点想要接入区块链网络时,种子服务器返回DHT节点信息和一定量的代理节点的SLB地址;第一个接入的外部节点会被DHT节点记录节点信息,并发送给种子服务器,所以当后续其他外部节点想要接入区块链网络时,种子服务器返回DHT节点信息、一定量的代理节点的SLB地址以及所有已接入区块链网络的外部节点的外部节点信息。
在本实施例中,DHT节点代替不支持DHT功能的代理节点来记录外部节点信息,不仅降低了代理节点的压力,还使得整个接入过程无需区块链网络中的代理节点参与,因此代理节点不会暴露自身IP地址,也就不会增加代理节点被攻击的风险,区块链网络的安全性也得到了提升。其中,当前要接入区块链网络的目标外部节点与已接入区块链网络的其他外部节点,还可以降低代理节点的压力,以及代理节点连接的外部节点的个数,提高区块链网络的可靠性和稳定性。
参见图2,图2为本申请公开的第二种外部节点接入区块链网络的方法流程图。在二实施例中,目标外部节点和种子服务器通过负载均衡服务器进行数据交互,本实施例提供的方法应用于区块链网络中的种子服务器,包括:
S201、接收目标外部节点发送的接入请求。
S202、返回目标信息至目标外部节点。
需要说明的是,若目标外部节点是想要接入区块链网络的第一个外部节点,也就是在目标外部节点之前,区块链网络从未连接过任一个外部节点,或是连接外部节点后,连接的外部节点又与区块链网络断开了连接,那么此时种子服务器给目标外部节点返回的目标信息中就不会有其他外部节点信息,仅可能有DHT节点信息和代理节点的SLB地址。
当目标外部节点获得DHT节点信息和代理节点的SLB地址,便可以与代理节点建立通信连接;与DHT节点建立通信连接,这样DHT节点可以记录目标外部节点的外部节点信息,并将其上报至种子服务器。这样在下一次另一外部节点想要接入区块链网络时,该另一外部节点就可从种子服务器返回的目标信息中获得目标外部节点的外部节点信息,那么其就可以与目标外部节点建立连接,从而接入区块链网络。
S203、若目标信息包括DHT节点信息和代理节点的SLB地址,则目标外部节点利用SLB地址与代理节点建立通信连接,以接入区块链网络;目标外部节点利用DHT节点信息与DHT节点进行UDP通信,以便DHT节点获取并存储目标外部节点的外部节点信息,并将外部节点信息发送至种子服务器。
其中,代理节点不支持DHT功能。DHT节点承载了代理节点原有的DHT功能,其作用即为:收集接入区块链网络的外部节点的节点信息至分布式哈希表,并负责分布式哈希表的更新,若分布式哈希表有更新,则及时上报给种子服务器。此时,可认为种子服务器中存有分布式哈希表的备份。
由于DHT节点和外部节点是直接通信的,因此DHT节点有被攻击的风险。倘若DHT节点被攻击,可及时断开DHT节点,又由于种子服务器中存有分布式哈希表的备份,因此DHT节点被攻击对区块链网络的影响不是很大。DHT节点可按照预设定时时间上报分布式哈希表(如每隔3分钟上报一次),也可以在每一次分布式哈希表更新后,立即上报更新后的分布式哈希表。
在一种具体实施方式中,目标外部节点利用SLB地址与代理节点建立通信连接,包括:目标外部节点按照SLB地址发送消息至SLB,以使SLB转发消息至代理节点;SLB为代理节点的负载均衡服务器。
在一种具体实施方式中,本实施例还包括:接收并存储DHT节点发送的外部节点信息。
在一种具体实施方式中,本实施例提供的方法还包括:种子服务器从接入请求中解析获得目标外部节点的外部节点信息,并存储外部节点信息。
需要说明的是,可以使种子服务器代替DHT节点来对分布式哈希表进行更新和查询,那么在目标外部节点接入区块链网络后,种子服务器便从接入请求中解析获得目标外部节点的外部节点信息,并存储外部节点信息至分布式哈希表。此时,可删除区块链网络中的DHT节点,无需在区块链网络新增节点,也就节约了网络部署成本。但从另一方面来看,由于分布式哈希表的更新需要与相应的外部节点进行通信,因此种子服务器代替DHT节点的话,种子服务器的压力会比较大,这不利于区块链网络的稳定性和可靠性。种子服务器的主要目的是给外部节点推荐代理节点和可连接的已接入外部节点,其负载和压力不宜太大,因此现有技术才由代理节点执行该功能。
需要说明的是,本实施例中的其他实现步骤与上述实施例相同或类似,因此可相互参照,本实施例不再赘述。
在本实施例中,DHT节点代替不支持DHT功能的代理节点来记录外部节点信息,不仅降低了代理节点的压力,还使得整个接入过程无需区块链网络中的代理节点参与,因此代理节点不会暴露自身IP地址,也就不会增加代理节点被攻击的风险,区块链网络的安全性也得到了提升。其中,当前要接入区块链网络的目标外部节点与已接入区块链网络的其他外部节点,还可以降低代理节点的压力,以及代理节点连接的外部节点的个数,提高区块链网络的可靠性和稳定性。
参见图3,图3为本申请公开的一种外部节点接入区块链网络的方案框架图。在三实施例中,该方案包括:外部节点,区块链网络中的代理节点、种子服务器、DHT节点、代替代理节点与外网通信的负载均衡服务器1(SLB1)、代替种子服务器与外网通信的负载均衡服务器2(SLB2)。
其中,代理节点可以为多个,每个代理节点均不支持DHT功能,不支持Ping、FindNode、Neighbor等功能。多个代理节点对应一个负载均衡服务器。
DHT节点可以为多个,DHT节点支持DHT功能,只支持UDP协议,支持DHT Ping、FindNode、Neighbor等功能,不支持链节点功能(区块同步,TCP建连等)。多个DHT节点对应一个负载均衡服务器。DHT节点定时搜索已接入区块链网络的外部节点,并且将搜索到的外部节点的节点信息和本地信息定时上报给种子服务器。种子服务器和DHT节点通过负载均衡服务器进行数据交互,也就是DHT节点无法知道种子服务器的节点信息,种子服务器始终是安全的。
当新的外部节点发送获取种子节点的请求(即接入请求)至种子服务器后,种子服务器返回DHT节点上报的所有信息(包括外部节点的节点信息和DHT节点的节点信息)、以及20%的SLB地址给新的外部节点。这样新的外部节点就可以与已接入区块链网络的外部节点、代理节点、DHT节点建立通信连接。
本实施例中的DHT节点可避免代理节点的IP暴露,又可以让种子服务器获取已接入区块链网络的外部节点的节点信息,因此想要连接区块链网络的外部节点只需与种子服务器通信,就可获得更多的外部节点的节点信息。
下面对本申请实施例提供的一种外部节点接入区块链网络的装置进行介绍,下文描述的一种外部节点接入区块链网络的装置与上文描述的一种外部节点接入区块链网络的方法可以相互参照。
参见图4,图4为本申请公开的一种外部节点接入区块链网络的装置示意图。在四实施例中,该装置应用于目标外部节点,包括:
发送模块401,用于发送接入请求至区块链网络中的种子服务器;
信息接收模块402,用于接收种子服务器返回的目标信息;
连接模块403,用于若目标信息包括DHT节点信息和代理节点的SLB地址,则利用SLB地址与代理节点建立通信连接,以接入区块链网络;代理节点不支持DHT功能;利用DHT节点信息与DHT节点进行UDP通信,以便DHT节点获取并存储目标外部节点的外部节点信息,并将外部节点信息发送至种子服务器。
在一种具体实施方式中,连接模块具体用于:
按照SLB地址发送消息至SLB,以使SLB转发消息至代理节点;SLB为代理节点的负载均衡服务器。
在一种具体实施方式中,该装置还包括:
另一连接模块,用于若目标信息包括:已接入区块链网络的其他外部节点的其他节点信息,则利用其他节点信息与其他外部节点建立通信连接,以接入区块链网络。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种外部节点接入区块链网络的装置,该装置可以降低代理节点的压力,还使得整个接入过程无需区块链网络中的代理节点参与,因此代理节点不会暴露自身IP地址,也就不会增加代理节点被攻击的风险,区块链网络的安全性也得到了提升。其中,当前要接入区块链网络的目标外部节点与已接入区块链网络的其他外部节点,还可以降低代理节点的压力,以及代理节点连接的外部节点的个数,提高区块链网络的可靠性和稳定性。
下面对本申请实施例提供的另一种外部节点接入区块链网络的装置进行介绍,下文描述的另一种外部节点接入区块链网络的装置与上文描述的一种外部节点接入区块链网络的方法可以相互参照。
参见图5,图5为本申请公开的另一种外部节点接入区块链网络的装置示意图。在五实施例中,该装置应用于区块链网络中的种子服务器,包括:
请求接收模块501,用于接收目标外部节点发送的接入请求;
返回模块502,用于返回目标信息至目标外部节点;若目标信息包括DHT节点信息和代理节点的SLB地址,则目标外部节点利用SLB地址与代理节点建立通信连接,以接入区块链网络;代理节点不支持DHT功能;目标外部节点利用DHT节点信息与DHT节点进行UDP通信,以便DHT节点获取并存储目标外部节点的外部节点信息,并将外部节点信息发送至种子服务器。
在一种具体实施方式中,目标外部节点按照SLB地址发送消息至SLB,以使SLB转发消息至代理节点;SLB为代理节点的负载均衡服务器。
在一种具体实施方式中,还包括:
存储模块,用于接收并存储DHT节点发送的外部节点信息。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种外部节点接入区块链网络的装置,该装置可以降低代理节点的压力,还使得整个接入过程无需区块链网络中的代理节点参与,因此代理节点不会暴露自身IP地址,也就不会增加代理节点被攻击的风险,区块链网络的安全性也得到了提升。其中,当前要接入区块链网络的目标外部节点与已接入区块链网络的其他外部节点,还可以降低代理节点的压力,以及代理节点连接的外部节点的个数,提高区块链网络的可靠性和稳定性。
下面对本申请实施例提供的一种设备进行介绍,下文描述的一种设备与上文描述的一种外部节点接入区块链网络的方法及装置可以相互参照。
参见图6,图6为本申请公开的一种设备示意图。在五实施例中,该设备包括:
存储器601,用于保存计算机程序;
处理器602,用于执行所述计算机程序,以实现上述任意实施例公开的外部节点接入区块链网络的方法。
在本实施例中,设备可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、智能路由器、矿机、网络存储设备终端设备。
参见图7,图7为本申请公开的另一种设备示意图。该设备可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是设备的内部存储单元,例如该设备的硬盘。存储器11在另一些实施例中也可以是设备的外部存储设备,例如设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括设备的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于设备的应用软件及各类数据,例如外部节点接入区块链网络的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行外部节点接入区块链网络的程序等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,设备还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。
可选地,该设备还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在该设备中处理的信息以及用于显示可视化的用户界面。
图7仅示出了具有组件11-13的设备,本领域技术人员可以理解的是,图7示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种外部节点接入区块链网络的方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的外部节点接入区块链网络的方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
下面对本申请实施例提供的一种区块链网络进行介绍,下文描述的一种区块链网络与上文描述的一种外部节点接入区块链网络的方法及装置可以相互参照。
参见图3,图3所示的区块链网络包括:种子服务器、不支持DHT功能的代理节点和DHT节点,其中:
种子服务器,用于接收目标外部节点发送的接入请求;返回目标信息至目标外部节点;
目标外部节点,用于若目标信息包括DHT节点信息和代理节点的SLB地址,则利用SLB地址与代理节点建立通信连接,以接入区块链网络;
目标外部节点,还用于利用DHT节点信息与DHT节点进行UDP通信,以便DHT节点获取并存储目标外部节点的外部节点信息,并将外部节点信息发送至种子服务器。
在本实施例中,种子服务器有对应的负载均衡服务器2,代理节点也有对应的负载均衡服务器1。
在该区块链网络中,DHT节点代替不支持DHT功能的代理节点来记录外部节点信息,不仅降低了代理节点的压力,还使得整个接入过程无需区块链网络中的代理节点参与,因此代理节点不会暴露自身IP地址,也就不会增加代理节点被攻击的风险,区块链网络的安全性也得到了提升。其中,当前要接入区块链网络的目标外部节点与已接入区块链网络的其他外部节点,还可以降低代理节点的压力,以及代理节点连接的外部节点的个数,提高区块链网络的可靠性和稳定性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。