本发明涉及区块链,尤其是涉及一种区块链引导节点配置方法。
背景技术:
1、在搭建区块链网络时,首先需要设置bootstrap节点,即引导节点,新节点基于已知的引导节点加入同一个网络。现有技术中在组建网络时,一般指定若干区块链节点,作为引导节点,并将这些节点的地址信息硬编码或者写入到配置文件中。但在现有技术在实际运用过程中,往往存在以下缺陷:由于新节点总是优先连接引导节点作为邻居节点,引导节点将维持较高的通信负载;引导节点本质仍然是一个普通区块链节点,需要运行区块链程序,引导节点主要功能为引导新节点加入网络,区块链的程序将影响引导节点的稳定性,且随着区块链程序维护更新,引导节点也需要进行相关更新;由于引导节点仍然为普通区块链节点,不同的区块链网络需要不同的引导节点,无法通用。
2、例如,中国专利cn201910078437.x公开了一种基于分布式哈希列表的网络初始节点引导方法,包括:接收节点请求,其中,所述节点请求包括请求加入网络的新节点的节点信息,所述节点信息包括节点的唯一标识以及网络地址;校验在最近访问节点数据集中是否存在与所述新节点的节点信息完全相同的节点信息,其中,所述最近访问节点数据集包括与请求加入所述网络的一个或多个节点相对应的一条或多条节点信息;在所述最近访问节点数据集中不存在与所述新节点的节点信息完全相同的节点信息的情况下,确定备选节点列表中是否存在与所述新节点的唯一标识不同的节点信息,其中,所述备选节点列表包括与所述网络的一个或多个节点相对应的一条或多条节点信息;在所述备选节点列表中存在与所述新节点的唯一标识不同的节点信息的情况下,返回从所述备选节点列表中选择的、与所述新节点的节点信息不同的至少一条节点信息;以及将所述新节点的节点信息保存在所述最近访问节点数据集中。该发明中的引导节点需要同时运行区块链程序,仍然存在前文提到的引导节点的高负载、稳定性以及通用性不足等问题。
技术实现思路
1、本发明主要解决现有引导节点需同时运行区块链程序,通信负载高且不同的区块链网络需要不同的引导节点,无法通用的技术问题,提出了一种区块链引导节点配置方法,通过在区块链网络中选用专用的引导节点,并对其部署统一的引导服务程序,该引导服务程序不依赖于区块链程序,引导节点更加独立稳定,从而实现了引导节点的通用化,不同的区块链网络可以共用一套引导服务。
2、本发明具体通过以下技术方案解决上述技术问题,一种区块链引导节点配置方法,包括:
3、对不同的区块链网络配置相应的chainid,即不同的区块链网络需要配置不同的chainid;配置引导节点,对所述引导节点部署引导服务程序,所述引导服务程序提供的接口功能包括注册和查询;
4、区块链节点在调用注册接口功能时时需提供相应参数,包括chainid、节点id、节点ip以及节点端口;
5、区块链节点在调用查询接口功能时需提供chainid。
6、本发明通过在不同的区块链网络配置相应的chainid,如在特定架构中,可以在配置文件中指定名称title和通信频道channel,基于title和channel即可生成特有的chainid,并选择节点作为引导节点部署引导服务程序,引导服务程序仅主要包括注册和查询的接口功能,在实现不同网络中引导节点通用化的同时,引导服务程序不依赖于区块链程序,引导节点更加独立稳定。
7、作为优选,本发明中的方法还包括:
8、引导节点中的引导服务程序接收到注册请求时,根据节点ip和节点端口,构建连接地址,并尝试对该地址建立连接,若连接成功表示该地址为可访问外网地址,则根据chainid进行分类记录连接地址信息,若连接失败则返回错误;
9、引导节点中的引导服务程序接收到查询请求时,根据chainid参数查询本地是否存在相关连接地址并返回。
10、作为优选,在区块链节点配置过程中指定公开的引导节点地址,初次启动时,区块链节点向指定的引导节点调用注册接口功和查询接口功能,并获取具有相同chainid的其他节点地址信息,加入到对应的区块链网络中。
11、作为优选,区块链节点定期向引导节点注册其邻居节点信息,保证了节点信息实时准确。
12、作为优选,引导服务可以是单个节点或者服务集群,根据网络规模进行配置。
13、作为优选,所述引导节点不再运行引导服务程序以外的其他区块链程序,实现引导服务时更加独立稳定。
14、作为优选,所述引导节点包括启用引导节点和备用引导节点,所述启用引导节点始终运行引导服务程序,所述备用引导节点根据网络需求启用或停止运行引导服务程序。同时,将结合实时用户量和网络需求选择区块链网络中的节点作为引导节点并进行部署,提高引导服务的稳定性和高效率。
15、作为优选,服务器实时获取所述启用引导节点的状态信息,所述状态信息包括节点是否繁忙、剩余的cpu处理能力以及可用剩余带宽,并根据所述状态信息更新本地引导节点列表。可根据引导节点的实时状态信息,制定调度策略,实现引导节点之间的负载均衡,提高引导服务器的整体负载能力。
16、作为优选,服务器根据所述状态信息选择备用引导节点启用或停止运行引导服务程序,具体过程为:当所述启用引导节点剩余的cpu处理能力或可用剩余带宽不足时,服务器选择与其距离最近的一个或多个备用引导节点启用引导服务程序,并更新本地引导节点列表;当所述启用引导节点的剩余的cpu处理能力和可用剩余带宽充足时,相应的备用引导节点停止运行引导服务程序。
17、作为优选,备用引导节点的引导服务程序启用过程为:服务器向被选择的备用引导节点发送通知消息,通知其将要启用引导服务程序,若当选的备用引导节点返回确认消息,并启用引导服务程序,则将其加入引导节点列表,否则服务器扩大选择范围并向其发送通知消息。其中,备用引导节点可根据自身是否繁忙、剩余的cpu处理能力以及可用剩余带宽等状态信息选择是否向服务器回复启用引导服务程序的确认消息。
18、本发明具有以下有益效果:引导服务程序不依赖于区块链程序,引导节点更加独立稳定;不同的区块链网络可以共用一套引导服务,引导节点通用化,减少引导节点部署开销。
1.一种区块链引导节点配置方法,其特征在于,包括:
2.根据权利要求1所述的一种区块链引导节点配置方法,其特征在于,还包括:
3.根据权利要求1所述的一种区块链引导节点配置方法,其特征在于,在区块链节点配置过程中指定公开的引导节点地址,初次启动时,区块链节点向指定的引导节点调用注册接口功和查询接口功能,并获取具有相同chainid的其他节点地址信息,加入到对应的区块链网络中。
4.根据权利要求1-3任一所述的一种区块链引导节点配置方法,其特征在于,区块链节点定期向引导节点注册其邻居节点信息。
5.根据权利要求1-3任一所述的一种区块链引导节点配置方法,其特征在于,引导服务可以是单个节点或者服务集群,根据网络规模进行配置。
6.根据权利要求1-3任一所述的一种区块链引导节点配置方法,其特征在于,所述引导节点不再运行引导服务程序以外的其他区块链程序。
7.根据权利要求1-3任一所述的一种区块链引导节点配置方法,其特征在于,所述引导节点包括启用引导节点和备用引导节点,所述启用引导节点始终运行引导服务程序,所述备用引导节点根据网络需求启用或停止运行引导服务程序。
8.根据权利要求7所述的一种区块链引导节点配置方法,其特征在于,服务器实时获取所述启用引导节点的状态信息,所述状态信息包括节点是否繁忙、剩余的cpu处理能力以及可用剩余带宽,并根据所述状态信息更新本地引导节点列表。
9.根据权利要求8所述的一种区块链引导节点配置方法,其特征在于,服务器根据所述状态信息选择备用引导节点启用或停止运行引导服务程序,具体过程为:当所述启用引导节点剩余的cpu处理能力或可用剩余带宽不足时,服务器选择与其距离最近的一个或多个备用引导节点启用引导服务程序,并更新本地引导节点列表;当所述启用引导节点的剩余的cpu处理能力和可用剩余带宽充足时,相应的备用引导节点停止运行引导服务程序。
10.根据权利要求9所述的一种区块链引导节点配置方法,其特征在于,备用引导节点的引导服务程序启用过程为:服务器向被选择的备用引导节点发送通知消息,通知其将要启用引导服务程序,若当选的备用引导节点返回确认消息,并启用引导服务程序,则将其加入引导节点列表,否则服务器扩大选择范围并向其发送通知消息。