logo好方法网

区块链节点连接建立方法、装置及设备


技术摘要:
本申请实施例提供一种区块链节点连接建立方法、装置及设备,应用于区块链系统,该方法包括:第一节点从第一路由器获取第二节点的地址信息,第一路由器和第一节点位于第一自治域,第二节点位于第二自治域,第一自治域和第二自治域为邻居自治域;第一节点根据第二节点的  全部
背景技术:
目前,可以通过多种技术(例如以太坊技术等)构建区块链系统。 区块链系统中包括多个区块链节点(下文简称节点),在节点中可以包括节点列表 (NodeTable),节点可以将最近与其联系且可达的节点添加至该节点列表。在该节点启动之 后,节点可以与该节点列表中的节点建立连接。然而,在实际应用过程中,多个攻击节点可 以多次重复的向一个节点发送连接请求,以使节点将该攻击节点添加至节点列表中,使得 在节点启动之后,该节点的所有出连接均与攻击节点连接,使得节点被攻击节点包围,即, 与节点建立连接的节点均为攻击节点,使得该节点被攻击节点控制,导致通信的安全性较 差。
技术实现要素:
本申请提供一种区块链节点连接建立方法、装置及设备,提高了区块链通信的安 全性。 第一方面,本申请实施例提供一种区块链节点连接建立方法,该方法应用于区块 链系统,该方法可以包括:第一节点从第一路由器获取第二节点的地址信息,并根据第二节 点的地址信息,与第二节点建立连接;其中,第一路由器和第一节点位于第一自治域,第二 节点位于第二自治域,第一自治域和第二自治域为邻居自治域。 在上述过程中,在第一自治域中的第一节点启动之后,该第一节点先获取第二自 治域(第一自治域和第二自治域为邻居)中的第二节点的地址信息,并根据第二节点的地址 信息与第二节点建立连接。由于第一自治域和第二自治域为邻居,因此,第二自治域中的第 二节点为非攻击节点,使得第一节点可以与至少一个非攻击节点连接,进而可以避免与第 一节点建立连接的节点均为攻击节点,进而避免第一节点被攻击节点控制,提高了区块链 通信的安全性。 在一种可能的实施方式中,第一节点从第一路由器获取第二节点的地址信息,包 括:第一节点从第一路由器接收第一消息,第一消息包括第二节点的地址信息,第一消息为 边界网关协议BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中 的其中一种。 当第一消息为BGP消息时,可以对现有的BGP打开消息进行扩展,使得BGP打开消息 可以指示发送BGP打开消息的设备是否具有携带节点的地址信息的能力。通过扩展现有的 BGP更新消息,使得BGP更新消息可以携带节点的地址信息,进而使得第一AS中的第一节点 可以通过BGP更新消息获取第二AS中的第二节点的地址信息,进而使得第一节点可以先根 据第二节点的地址信息与第二节点建立连接。只需对现有的BGP消息进行扩展即可使得BGP 消息具有携带地址信息的能力,使得在对已有方案进行较小的改动下即可提高区块链通信 5 CN 111598564 A 说 明 书 2/22 页 的安全性。 当第一消息为RTR消息时,通过定义新的RTR消息,可以使得第一AS中的第一节点 可以通过RTR消息(RTR内容消息)获取第二AS中的第二节点的地址信息,进而使得第一节点 可以先根据第二节点的地址信息与第二节点建立连接。 当第一消息为自定义接口消息时,通过自定义接口消息,可以使得第一AS中的第 一节点可以通过自定义接口消息获取第二AS中的第二节点的地址信息,进而使得第一节点 可以先根据第二节点的地址信息与第二节点建立连接。 在上述过程中,在第一路由器获取得到第二节点的地址信息之后即可向第一节点 发送第二节点的地址信息,使得第一节点可以及时获取得到第二节点的地址信息。 在一种可能的实施方式中,第一节点从第一路由器接收第一消息之前,还包括:第 一节点向第一路由器发送请求消息,请求消息用于请求获取第一自治域的邻居自治域中的 节点的地址信息。 在上述过程中,在第一节点需要使用第二节点的地址信息时,第一节点才通过请 求消息从第一路由器获取第二节点的地址信息,避免第一路由器进行不必要的信息发送, 进而避免信令的浪费。 在一种可能的实施方式中,第一节点的地址信息包括第一节点的标识、第一节点 的IP地址、第一节点的MAC地址或第一节点的区块链账号中的至少一种;第二节点的地址信 息包括第二节点的标识、第二节点的IP地址、第二节点的MAC地址或第二节点的区块链账号 中的至少一种。 在一种可能的实施方式中,所述第一节点还可以向所述第一路由器发送所述第一 节点的地址信息。这样,可以使得第一路由器获取得到第一节点的地址信息,并向第一自治 域的邻居自治域中的路由器发送第一节点的地址信息,使得第一自治域的邻居自治域中的 路由器可以及时获取第一节点的地址信息。 在一种可能的实施方式中,所述第一节点向所述第一路由器发送所述第一节点的 地址信息,包括:所述第一节点向所述第一路由器发送第二消息,所述第二消息包括所述第 一节点的地址信息,所述第二消息为BGP消息、RTR消息或自定义接口消息中的其中一种。 在一种可能的实施方式中,第一节点根据第二节点的地址信息,与第二节点建立 连接之前,包括:第一节点将第二节点的地址信息添加至第一节点的邻居列表中; 相应的,第一节点根据第二节点的地址信息,与第二节点建立连接,包括:第一节 点根据邻居列表中的地址信息,与第二节点建立连接。 在上述过程中,邻居列表中包括第一自治域的邻居自治域中的节点的地址信息, 因此,第一节点根据邻居列表中的地址信息,可以与第一自治域的邻居自治域中的节点建 立连接,第一自治域的邻居自治域中的节点为非攻击节点,因此,可以使得第一节点与非攻 击节点建立连接,提高了区块链通信的安全性。 在一种可能的实施方式中,第一节点根据第二节点的地址信息,与第二节点建立 连接之后,还包括:第一节点与第三节点建立连接,并从第三节点获取第一合法节点列表; 第一节点从第二节点获取第二合法节点列表;第一节点在第一合法节点列表和第二合法节 点列表中确定目标合法节点列表,并根据目标合法节点列表进行节点发现。 在上述过程中,第三节点可以为背书节点,通过上述过程可以避免由于背书节点 6 CN 111598564 A 说 明 书 3/22 页 作恶导致第一节点被攻击的问题。 第二方面,本申请实施例提供一种区块链节点连接建立方法,应用于区块链系统, 该方法包括:第一路由器获取第二节点的地址信息,第二节点位于第二自治域;第一路由器 向第一节点发送第二节点的地址信息,第一路由器和第一节点位于第一自治域,第一自治 域和第二自治域为邻居自治域。 在上述过程中,在第一自治域中的第一节点启动之后,该第一节点先获取第二自 治域(第一自治域和第二自治域为邻居)中的第二节点的地址信息,并根据第二节点的地址 信息与第二节点建立连接。由于第一自治域和第二自治域为邻居,因此,第二自治域中的第 二节点为非攻击节点,使得第一节点可以与至少一个非攻击节点连接,进而可以避免与第 一节点建立连接的节点均为攻击节点,进而避免第一节点被攻击节点控制,提高了区块链 通信的安全性。 在一种可能的实施方式中,第一路由器向第一节点发送第二节点的地址信息,包 括:第一路由器向第一节点发送第一消息,第一消息包括第二节点的地址信息,第一消息为 边界网关协议BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中 的其中一种。 当第一消息为BGP消息时,可以对现有的BGP打开消息进行扩展,使得BGP打开消息 可以指示发送BGP打开消息的设备是否具有携带节点的地址信息的能力。通过扩展现有的 BGP更新消息,使得BGP更新消息可以携带节点的地址信息,进而使得第一AS中的第一节点 可以通过BGP更新消息获取第二AS中的第二节点的地址信息,进而使得第一节点可以先根 据第二节点的地址信息与第二节点建立连接。只需对现有的BGP消息进行扩展即可使得BGP 消息具有携带地址信息的能力,使得在对已有方案进行较小的改动下即可提高区块链通信 的安全性。 当第一消息为RTR消息时,通过定义新的RTR消息,可以使得第一AS中的第一节点 可以通过RTR消息(RTR内容消息)获取第二AS中的第二节点的地址信息,进而使得第一节点 可以先根据第二节点的地址信息与第二节点建立连接。 当第一消息为自定义接口消息时,通过自定义接口消息,可以使得第一AS中的第 一节点可以通过自定义接口消息获取第二AS中的第二节点的地址信息,进而使得第一节点 可以先根据第二节点的地址信息与第二节点建立连接。 在上述过程中,在第一路由器获取得到第二节点的地址信息之后即可向第一节点 发送第二节点的地址信息,使得第一节点可以及时获取得到第二节点的地址信息。 在一种可能的实施方式中,第一路由器向第一节点发送第一消息之前,还包括:第 一路由器接收第一节点发送的第一请求消息,第一请求消息用于请求获取第一自治域的邻 居自治域中的节点的地址信息。 在上述过程中,在第一路由器接收到第一节点发送的第一消息之后才向第一节点 发送第一消息,避免第一路由器进行不必要的信息发送,进而避免信令的浪费。 在一种可能的实施方式中,第一路由器获取第二节点的地址信息,包括:第一路由 器从第二路由器接收第一边界网关协议BGP消息,第一BGP消息中包括第二节点的地址信 息,第二路由器位于第二自治域。 在一种可能的实施方式中,第一路由器向第一节点发送地址信息之前,还包括:第 7 CN 111598564 A 说 明 书 4/22 页 一路由器获取地址信息的自治域路径长度,自治域路径长度用于指示第一路由器接收到地 址信息时,地址信息经过的自治域的个数;第一路由器确定地址信息的自治域路径长度为 1。 在上述过程中,在第一路由器确定地址信息的自治域路径长度为1时,可以确保地 址信息为第一自治域的邻居自治域中的节点的地址信息,进而可以确定第一节点根据地址 信息可以与第一自治域的邻居自治域中的节点建立连接。 在一种可能的实施方式中,第一路由器接收第一节点发送的第二消息,第二消息 包括第一节点的地址信息,第二消息为BGP消息、资源公钥基础设施到路由器接口协议RTR 消息或自定义接口消息中的至少一种。 在一种可能的实施方式中,第一节点的地址信息包括第一节点的标识、第一节点 的IP地址、第一节点的MAC地址或第一节点的区块链账号中的至少一种;第二节点的地址信 息包括第二节点的标识、第二节点的IP地址、第二节点的MAC地址或第二节点的区块链账号 中的至少一种。 在一种可能的实施方式中,所述第一路由器接收所述第一节点发送的第二消息之 前,还包括:所述第一路由器向所述第一节点发送第二请求消息,所述第二请求消息用于请 求获取所述第一节点的地址信息。 在一种可能的实施方式中,所述第一路由器接收所述第一节点发送的所述第一节 点的地址信息之后,还包括:所述第一路由器向所述第二路由器发送第二BGP消息,所述第 二BGP消息包括所述第一节点的地址信息。 第三方面,本申请实施例提供一种区块链节点连接建立方法,该方法包括:第一节 点获取第二节点的地址信息,并将第二节点的地址信息添加至第一节点的邻居列表中;在 第一节点启动之后,第一节点根据邻居列表中的地址信息,与第二节点建立连接。 在上述过程中,邻居列表中包括第一自治域的邻居自治域中的节点的地址信息, 因此,第一节点根据邻居列表中的地址信息,可以与第一自治域的邻居自治域中的节点建 立连接,第一自治域的邻居自治域中的节点为非攻击节点,因此,可以使得第一节点与非攻 击节点建立连接,提高了区块链通信的安全性。 在一种可能的实施方式中,第一节点还可以获取第一自治域的邻居自治域中其它 节点的地址信息,并根据其它节点的地址信息更新邻居列表。这样,可以使得邻居列表中可 以包括第一自治域的邻居自治域中的多个节点的地址信息。 在一种可能的实施方式中,在第一节点根据邻居列表中的地址信息,与第二节点 建立连接之后,第一节点还可以根据节点列表中的节点信息进行节点发现,并与发现的节 点建立连接。 需要说明的是,在第三方面中,第一节点获取第二节点的地址信息的过程可以参 见第一方面,此处不再进行赘述。 第四方面,本申请实施例提供一种区块链节点连接建立方法,该方法包括:第一节 点获取第二节点的地址信息,并根据第二节点的地址信息与第二节点建立连接,第一节点 与第三节点建立连接,并从第三节点获取第一合法节点列表;第一节点从第二节点获取第 二合法节点列表;第一节点在第一合法节点列表和第二合法节点列表中确定目标合法节点 列表,并根据目标合法节点列表进行节点发现。 8 CN 111598564 A 说 明 书 5/22 页 在上述过程中,第三节点可以为背书节点,通过上述过程可以避免由于背书节点 作恶导致第一节点被攻击的问题。 需要说明的是,在第四方面中,第一节点获取第二节点的地址信息的过程可以参 见第一方面,此处不再进行赘述。 第五方面,本申请实施例提供一种区块链节点连接建立装置,应用于区块链系统 中的第一节点,所述装置包括: 接收模块,用于从第一路由器获取第二节点的地址信息,所述第一路由器和所述 第一节点位于第一自治域,所述第二节点位于第二自治域,所述第一自治域和所述第二自 治域为邻居自治域; 处理模块,用于根据所述第二节点的地址信息,与所述第二节点建立连接。 在一种可能的实施方式中,所述接收模块具体用于,从所述第一路由器接收第一 消息,所述第一消息包括所述第二节点的地址信息,所述第一消息为边界网关协议BGP消 息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的其中一种。 在一种可能的实施方式中,所述装置还包括发送模块,其中, 所述发送模块用于,在所述接收模块从所述第一路由器接收第一消息之前,向所 述第一路由器发送请求消息,所述请求消息用于请求获取所述第一自治域的邻居自治域中 的节点的地址信息。 在一种可能的实施方式中,所述第一节点的地址信息包括所述第一节点的标识、 所述第一节点的IP地址、所述第一节点的MAC地址或所述第一节点的区块链账号中的至少 一种; 所述第二节点的地址信息包括所述第二节点的标识、所述第二节点的IP地址、所 述第二节点的MAC地址或所述第二节点的区块链账号中的至少一种。 在一种可能的实施方式中,在所述处理模块根据所述第二节点的地址信息,与所 述第二节点建立连接之前,所述处理模块还用于,将所述第二节点的地址信息添加至所述 第一节点的邻居列表中; 所述处理模块具体用于,根据所述邻居列表中的地址信息,与所述第二节点建立 连接。 在一种可能的实施方式中,在所述处理模块根据所述第二节点的地址信息,与所 述第二节点建立连接之后,所述处理模块还用于: 与第三节点建立连接,并从所述第三节点获取第一合法节点列表; 从所述第二节点获取第二合法节点列表; 在所述第一合法节点列表和所述第二合法节点列表中确定目标合法节点列表,并 根据所述目标合法节点列表进行节点发现。 在一种可能的实施方式中,所述发送模块还用于,向所述第一路由器发送所述第 一节点的地址信息。 在一种可能的实施方式中,所述发送模块具体用于,向所述第一路由器发送第二 消息,所述第二消息包括所述第一节点的地址信息,所述第二消息为BGP消息、RTR消息或自 定义接口消息中的其中一种。 第六方面,本申请实施例提供一种区块链节点连接建立装置,应用于区块链系统 9 CN 111598564 A 说 明 书 6/22 页 中的第一路由器,所述装置包括: 接收模块,用于获取第二节点的地址信息,所述第二节点位于第二自治域; 发送模块,用于向所述第一节点发送所述第二节点的地址信息,所述第一路由器 和所述第一节点位于第一自治域,所述第一自治域和所述第二自治域为邻居自治域。 在一种可能的实施方式中,所述发送模块具体用于,向所述第一节点发送第一消 息,所述第一消息包括所述第二节点的地址信息,所述第一消息为边界网关协议BGP消息、 资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的其中一种。 在一种可能的实施方式中,所述接收模块还用于,在所述发送模块向所述第一节 点发送第一消息之前,接收所述第一节点发送的第一请求消息,所述第一请求消息用于请 求获取所述第一自治域的邻居自治域中的节点的地址信息。 在一种可能的实施方式中,所述接收模块具体用于,从第二路由器接收第一边界 网关协议BGP消息,所述第一BGP消息中包括所述第二节点的地址信息,所述第二路由器位 于所述第二自治域。 在一种可能的实施方式中,所述装置还包括处理模块,其中, 所述处理模块用于,在所述发送模块向所述第一节点发送所述地址信息之前,获 取所述地址信息的自治域路径长度,并确定所述地址信息的自治域路径长度为1,所述自治 域路径长度用于指示所述第一路由器接收到所述地址信息时,所述地址信息经过的自治域 的个数。 在一种可能的实施方式中,所述接收模块还用于,接收所述第一节点发送的第二 消息,所述第二消息包括所述第一节点的地址信息,所述第二消息为BGP消息、资源公钥基 础设施到路由器接口协议RTR消息或自定义接口消息中的至少一种。 在一种可能的实施方式中,所述第一节点的地址信息包括所述第一节点的标识、 所述第一节点的IP地址、所述第一节点的MAC地址或所述第一节点的区块链账号中的至少 一种; 所述第二节点的地址信息包括所述第二节点的标识、所述第二节点的IP地址、所 述第二节点的MAC地址或所述第二节点的区块链账号中的至少一种。 在一种可能的实施方式中,所述发送模块还用于,在所述接收模块接收所述第一 节点发送的第二消息之前,向所述第一节点发送第二请求消息,所述第二请求消息用于请 求获取所述第一节点的地址信息。 在一种可能的实施方式中,所述发送模块还用于,在所述接收模块接收所述第一 节点发送的所述第一节点的地址信息之后,向所述第二路由器发送第二BGP消息,所述第二 BGP消息包括所述第一节点的地址信息。 第七方面,本申请实施例提供一种区块链节点连接建立装置,包括存储器和处理 器,所述处理器执行所述存储器中的程序指令,用于实现第一方面任一项所述的区块链节 点连接建立方法。 第八方面,本申请实施例提供一种区块链节点连接建立装置,包括存储器和处理 器,所述处理器执行所述存储器中的程序指令,用于实现第二方面任一项所述的区块链节 点连接建立方法。 第九方面,本申请实施例提供一种计算机可读存储介质,所述存储介质用于存储 10 CN 111598564 A 说 明 书 7/22 页 计算机程序,所述计算机程序被计算机或处理器执行时用于实现上述各方面所述的区块链 节点连接建立方法。 第十方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机 上运行时,使得计算机执行上述各方面所述的区块链节点连接建立方法。 本申请实施例提供的区块链节点连接建立方法、装置及设备,在第一AS中的第一 节点启动之后,该第一节点先获取第二AS(第一AS和第二AS为邻居)中的第二节点的地址信 息,并根据第二节点的地址信息与第二节点建立连接。由于第一AS和第二AS为邻居,因此, 第二AS中的第二节点为非攻击节点,使得第一节点可以与至少一个非攻击节点连接,进而 可以避免与第一节点建立连接的节点均为攻击节点,进而避免第一节点被攻击节点控制, 提高了区块链通信的安全性。 附图说明 图1为本申请实施例提供的系统架构图; 图2为本申请实施例提供的一种区块链节点连接建立方法的流程示意图; 图3为本申请实施例提供的BGP更新消息的结构示意图; 图4为本申请实施例提供的另一种区块链节点连接建立方法的流程示意图; 图5为本申请实施例提供的消息转发示意图; 图6为本申请实施例提供的BGP打开消息的结构示意图; 图7为本申请实施例提供的节点连接建立过程示意图; 图8为本申请实施例提供的又一种区块链节点连接建立方法的流程示意图; 图9为本申请实施例提供的一种消息的结构示意图; 图10为本申请实施例提供的另一种消息的结构示意图; 图11为本申请实施例提供的另一种消息的结构示意图; 图12为本申请实施例提供的再一种区块链节点连接建立方法的流程示意图; 图13为本申请实施例提供的再一种区块链节点连接建立方法的流程示意图; 图14为本申请提供的节点连接建立过程示意图; 图15为本申请实施例提供的再一种区块链节点连接建立方法的流程示意图; 图16为本申请实施例提供的一种区块链节点连接建立装置的结构示意图; 图17为本申请实施例提供的另一种区块链节点连接建立装置的结构示意图; 图18为本申请实施例提供的又一种区块链节点连接建立装置的结构示意图; 图19为本申请实施例提供的再一种区块链节点连接建立装置的结构示意图; 图20为本申请提供的一种区块链节点连接建立装置的硬件结构示意图; 图21为本申请提供的另一种区块链节点连接建立装置的硬件结构示意图。
分享到:
收藏