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

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

Info

Publication number
CN111598564B
CN111598564B CN201910126002.8A CN201910126002A CN111598564B CN 111598564 B CN111598564 B CN 111598564B CN 201910126002 A CN201910126002 A CN 201910126002A CN 111598564 B CN111598564 B CN 111598564B
Authority
CN
China
Prior art keywords
node
address information
message
router
autonomous domain
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
CN201910126002.8A
Other languages
English (en)
Other versions
CN111598564A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910126002.8A priority Critical patent/CN111598564B/zh
Priority to PCT/CN2020/074848 priority patent/WO2020168954A1/zh
Priority to EP20758912.8A priority patent/EP3783868B1/en
Publication of CN111598564A publication Critical patent/CN111598564A/zh
Priority to US17/099,382 priority patent/US20210075590A1/en
Application granted granted Critical
Publication of CN111598564B publication Critical patent/CN111598564B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/021Ensuring consistency of routing table updates, e.g. by using epoch numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请实施例提供一种区块链节点连接建立方法、装置及设备,应用于区块链***,该方法包括:第一节点从第一路由器获取第二节点的地址信息,第一路由器和第一节点位于第一自治域,第二节点位于第二自治域,第一自治域和第二自治域为邻居自治域;第一节点根据第二节点的地址信息,与第二节点建立连接。提高了区块链通信的安全性。

Description

区块链节点连接建立方法、装置及设备
技术领域
本申请涉及通信技术领域,尤其涉及一种区块链节点连接建立方法、装置及设备。
背景技术
目前,可以通过多种技术(例如以太坊技术等)构建区块链***。
区块链***中包括多个区块链节点(下文简称节点),在节点中可以包括节点列表(NodeTable),节点可以将最近与其联系且可达的节点添加至该节点列表。在该节点启动之后,节点可以与该节点列表中的节点建立连接。然而,在实际应用过程中,多个攻击节点可以多次重复的向一个节点发送连接请求,以使节点将该攻击节点添加至节点列表中,使得在节点启动之后,该节点的所有出连接均与攻击节点连接,使得节点被攻击节点包围,即,与节点建立连接的节点均为攻击节点,使得该节点被攻击节点控制,导致通信的安全性较差。
发明内容
本申请提供一种区块链节点连接建立方法、装置及设备,提高了区块链通信的安全性。
第一方面,本申请实施例提供一种区块链节点连接建立方法,该方法应用于区块链***,该方法可以包括:第一节点从第一路由器获取第二节点的地址信息,并根据第二节点的地址信息,与第二节点建立连接;其中,第一路由器和第一节点位于第一自治域,第二节点位于第二自治域,第一自治域和第二自治域为邻居自治域。
在上述过程中,在第一自治域中的第一节点启动之后,该第一节点先获取第二自治域(第一自治域和第二自治域为邻居)中的第二节点的地址信息,并根据第二节点的地址信息与第二节点建立连接。由于第一自治域和第二自治域为邻居,因此,第二自治域中的第二节点为非攻击节点,使得第一节点可以与至少一个非攻击节点连接,进而可以避免与第一节点建立连接的节点均为攻击节点,进而避免第一节点被攻击节点控制,提高了区块链通信的安全性。
在一种可能的实施方式中,第一节点从第一路由器获取第二节点的地址信息,包括:第一节点从第一路由器接收第一消息,第一消息包括第二节点的地址信息,第一消息为边界网关协议BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的其中一种。
当第一消息为BGP消息时,可以对现有的BGP打开消息进行扩展,使得BGP打开消息可以指示发送BGP打开消息的设备是否具有携带节点的地址信息的能力。通过扩展现有的BGP更新消息,使得BGP更新消息可以携带节点的地址信息,进而使得第一AS中的第一节点可以通过BGP更新消息获取第二AS中的第二节点的地址信息,进而使得第一节点可以先根据第二节点的地址信息与第二节点建立连接。只需对现有的BGP消息进行扩展即可使得BGP消息具有携带地址信息的能力,使得在对已有方案进行较小的改动下即可提高区块链通信的安全性。
当第一消息为RTR消息时,通过定义新的RTR消息,可以使得第一AS中的第一节点可以通过RTR消息(RTR内容消息)获取第二AS中的第二节点的地址信息,进而使得第一节点可以先根据第二节点的地址信息与第二节点建立连接。
当第一消息为自定义接口消息时,通过自定义接口消息,可以使得第一AS中的第一节点可以通过自定义接口消息获取第二AS中的第二节点的地址信息,进而使得第一节点可以先根据第二节点的地址信息与第二节点建立连接。
在上述过程中,在第一路由器获取得到第二节点的地址信息之后即可向第一节点发送第二节点的地址信息,使得第一节点可以及时获取得到第二节点的地址信息。
在一种可能的实施方式中,第一节点从第一路由器接收第一消息之前,还包括:第一节点向第一路由器发送请求消息,请求消息用于请求获取第一自治域的邻居自治域中的节点的地址信息。
在上述过程中,在第一节点需要使用第二节点的地址信息时,第一节点才通过请求消息从第一路由器获取第二节点的地址信息,避免第一路由器进行不必要的信息发送,进而避免信令的浪费。
在一种可能的实施方式中,第一节点的地址信息包括第一节点的标识、第一节点的IP地址、第一节点的MAC地址或第一节点的区块链账号中的至少一种;第二节点的地址信息包括第二节点的标识、第二节点的IP地址、第二节点的MAC地址或第二节点的区块链账号中的至少一种。
在一种可能的实施方式中,所述第一节点还可以向所述第一路由器发送所述第一节点的地址信息。这样,可以使得第一路由器获取得到第一节点的地址信息,并向第一自治域的邻居自治域中的路由器发送第一节点的地址信息,使得第一自治域的邻居自治域中的路由器可以及时获取第一节点的地址信息。
在一种可能的实施方式中,所述第一节点向所述第一路由器发送所述第一节点的地址信息,包括:所述第一节点向所述第一路由器发送第二消息,所述第二消息包括所述第一节点的地址信息,所述第二消息为BGP消息、RTR消息或自定义接口消息中的其中一种。
在一种可能的实施方式中,第一节点根据第二节点的地址信息,与第二节点建立连接之前,包括:第一节点将第二节点的地址信息添加至第一节点的邻居列表中;
相应的,第一节点根据第二节点的地址信息,与第二节点建立连接,包括:第一节点根据邻居列表中的地址信息,与第二节点建立连接。
在上述过程中,邻居列表中包括第一自治域的邻居自治域中的节点的地址信息,因此,第一节点根据邻居列表中的地址信息,可以与第一自治域的邻居自治域中的节点建立连接,第一自治域的邻居自治域中的节点为非攻击节点,因此,可以使得第一节点与非攻击节点建立连接,提高了区块链通信的安全性。
在一种可能的实施方式中,第一节点根据第二节点的地址信息,与第二节点建立连接之后,还包括:第一节点与第三节点建立连接,并从第三节点获取第一合法节点列表;第一节点从第二节点获取第二合法节点列表;第一节点在第一合法节点列表和第二合法节点列表中确定目标合法节点列表,并根据目标合法节点列表进行节点发现。
在上述过程中,第三节点可以为背书节点,通过上述过程可以避免由于背书节点作恶导致第一节点被攻击的问题。
第二方面,本申请实施例提供一种区块链节点连接建立方法,应用于区块链***,该方法包括:第一路由器获取第二节点的地址信息,第二节点位于第二自治域;第一路由器向第一节点发送第二节点的地址信息,第一路由器和第一节点位于第一自治域,第一自治域和第二自治域为邻居自治域。
在上述过程中,在第一自治域中的第一节点启动之后,该第一节点先获取第二自治域(第一自治域和第二自治域为邻居)中的第二节点的地址信息,并根据第二节点的地址信息与第二节点建立连接。由于第一自治域和第二自治域为邻居,因此,第二自治域中的第二节点为非攻击节点,使得第一节点可以与至少一个非攻击节点连接,进而可以避免与第一节点建立连接的节点均为攻击节点,进而避免第一节点被攻击节点控制,提高了区块链通信的安全性。
在一种可能的实施方式中,第一路由器向第一节点发送第二节点的地址信息,包括:第一路由器向第一节点发送第一消息,第一消息包括第二节点的地址信息,第一消息为边界网关协议BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的其中一种。
当第一消息为BGP消息时,可以对现有的BGP打开消息进行扩展,使得BGP打开消息可以指示发送BGP打开消息的设备是否具有携带节点的地址信息的能力。通过扩展现有的BGP更新消息,使得BGP更新消息可以携带节点的地址信息,进而使得第一AS中的第一节点可以通过BGP更新消息获取第二AS中的第二节点的地址信息,进而使得第一节点可以先根据第二节点的地址信息与第二节点建立连接。只需对现有的BGP消息进行扩展即可使得BGP消息具有携带地址信息的能力,使得在对已有方案进行较小的改动下即可提高区块链通信的安全性。
当第一消息为RTR消息时,通过定义新的RTR消息,可以使得第一AS中的第一节点可以通过RTR消息(RTR内容消息)获取第二AS中的第二节点的地址信息,进而使得第一节点可以先根据第二节点的地址信息与第二节点建立连接。
当第一消息为自定义接口消息时,通过自定义接口消息,可以使得第一AS中的第一节点可以通过自定义接口消息获取第二AS中的第二节点的地址信息,进而使得第一节点可以先根据第二节点的地址信息与第二节点建立连接。
在上述过程中,在第一路由器获取得到第二节点的地址信息之后即可向第一节点发送第二节点的地址信息,使得第一节点可以及时获取得到第二节点的地址信息。
在一种可能的实施方式中,第一路由器向第一节点发送第一消息之前,还包括:第一路由器接收第一节点发送的第一请求消息,第一请求消息用于请求获取第一自治域的邻居自治域中的节点的地址信息。
在上述过程中,在第一路由器接收到第一节点发送的第一消息之后才向第一节点发送第一消息,避免第一路由器进行不必要的信息发送,进而避免信令的浪费。
在一种可能的实施方式中,第一路由器获取第二节点的地址信息,包括:第一路由器从第二路由器接收第一边界网关协议BGP消息,第一BGP消息中包括第二节点的地址信息,第二路由器位于第二自治域。
在一种可能的实施方式中,第一路由器向第一节点发送地址信息之前,还包括:第一路由器获取地址信息的自治域路径长度,自治域路径长度用于指示第一路由器接收到地址信息时,地址信息经过的自治域的个数;第一路由器确定地址信息的自治域路径长度为1。
在上述过程中,在第一路由器确定地址信息的自治域路径长度为1时,可以确保地址信息为第一自治域的邻居自治域中的节点的地址信息,进而可以确定第一节点根据地址信息可以与第一自治域的邻居自治域中的节点建立连接。
在一种可能的实施方式中,第一路由器接收第一节点发送的第二消息,第二消息包括第一节点的地址信息,第二消息为BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的至少一种。
在一种可能的实施方式中,第一节点的地址信息包括第一节点的标识、第一节点的IP地址、第一节点的MAC地址或第一节点的区块链账号中的至少一种;第二节点的地址信息包括第二节点的标识、第二节点的IP地址、第二节点的MAC地址或第二节点的区块链账号中的至少一种。
在一种可能的实施方式中,所述第一路由器接收所述第一节点发送的第二消息之前,还包括:所述第一路由器向所述第一节点发送第二请求消息,所述第二请求消息用于请求获取所述第一节点的地址信息。
在一种可能的实施方式中,所述第一路由器接收所述第一节点发送的所述第一节点的地址信息之后,还包括:所述第一路由器向所述第二路由器发送第二BGP消息,所述第二BGP消息包括所述第一节点的地址信息。
第三方面,本申请实施例提供一种区块链节点连接建立方法,该方法包括:第一节点获取第二节点的地址信息,并将第二节点的地址信息添加至第一节点的邻居列表中;在第一节点启动之后,第一节点根据邻居列表中的地址信息,与第二节点建立连接。
在上述过程中,邻居列表中包括第一自治域的邻居自治域中的节点的地址信息,因此,第一节点根据邻居列表中的地址信息,可以与第一自治域的邻居自治域中的节点建立连接,第一自治域的邻居自治域中的节点为非攻击节点,因此,可以使得第一节点与非攻击节点建立连接,提高了区块链通信的安全性。
在一种可能的实施方式中,第一节点还可以获取第一自治域的邻居自治域中其它节点的地址信息,并根据其它节点的地址信息更新邻居列表。这样,可以使得邻居列表中可以包括第一自治域的邻居自治域中的多个节点的地址信息。
在一种可能的实施方式中,在第一节点根据邻居列表中的地址信息,与第二节点建立连接之后,第一节点还可以根据节点列表中的节点信息进行节点发现,并与发现的节点建立连接。
需要说明的是,在第三方面中,第一节点获取第二节点的地址信息的过程可以参见第一方面,此处不再进行赘述。
第四方面,本申请实施例提供一种区块链节点连接建立方法,该方法包括:第一节点获取第二节点的地址信息,并根据第二节点的地址信息与第二节点建立连接,第一节点与第三节点建立连接,并从第三节点获取第一合法节点列表;第一节点从第二节点获取第二合法节点列表;第一节点在第一合法节点列表和第二合法节点列表中确定目标合法节点列表,并根据目标合法节点列表进行节点发现。
在上述过程中,第三节点可以为背书节点,通过上述过程可以避免由于背书节点作恶导致第一节点被攻击的问题。
需要说明的是,在第四方面中,第一节点获取第二节点的地址信息的过程可以参见第一方面,此处不再进行赘述。
第五方面,本申请实施例提供一种区块链节点连接建立装置,应用于区块链***中的第一节点,所述装置包括:
接收模块,用于从第一路由器获取第二节点的地址信息,所述第一路由器和所述第一节点位于第一自治域,所述第二节点位于第二自治域,所述第一自治域和所述第二自治域为邻居自治域;
处理模块,用于根据所述第二节点的地址信息,与所述第二节点建立连接。
在一种可能的实施方式中,所述接收模块具体用于,从所述第一路由器接收第一消息,所述第一消息包括所述第二节点的地址信息,所述第一消息为边界网关协议BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的其中一种。
在一种可能的实施方式中,所述装置还包括发送模块,其中,
所述发送模块用于,在所述接收模块从所述第一路由器接收第一消息之前,向所述第一路由器发送请求消息,所述请求消息用于请求获取所述第一自治域的邻居自治域中的节点的地址信息。
在一种可能的实施方式中,所述第一节点的地址信息包括所述第一节点的标识、所述第一节点的IP地址、所述第一节点的MAC地址或所述第一节点的区块链账号中的至少一种;
所述第二节点的地址信息包括所述第二节点的标识、所述第二节点的IP地址、所述第二节点的MAC地址或所述第二节点的区块链账号中的至少一种。
在一种可能的实施方式中,在所述处理模块根据所述第二节点的地址信息,与所述第二节点建立连接之前,所述处理模块还用于,将所述第二节点的地址信息添加至所述第一节点的邻居列表中;
所述处理模块具体用于,根据所述邻居列表中的地址信息,与所述第二节点建立连接。
在一种可能的实施方式中,在所述处理模块根据所述第二节点的地址信息,与所述第二节点建立连接之后,所述处理模块还用于:
与第三节点建立连接,并从所述第三节点获取第一合法节点列表;
从所述第二节点获取第二合法节点列表;
在所述第一合法节点列表和所述第二合法节点列表中确定目标合法节点列表,并根据所述目标合法节点列表进行节点发现。
在一种可能的实施方式中,所述发送模块还用于,向所述第一路由器发送所述第一节点的地址信息。
在一种可能的实施方式中,所述发送模块具体用于,向所述第一路由器发送第二消息,所述第二消息包括所述第一节点的地址信息,所述第二消息为BGP消息、RTR消息或自定义接口消息中的其中一种。
第六方面,本申请实施例提供一种区块链节点连接建立装置,应用于区块链***中的第一路由器,所述装置包括:
接收模块,用于获取第二节点的地址信息,所述第二节点位于第二自治域;
发送模块,用于向所述第一节点发送所述第二节点的地址信息,所述第一路由器和所述第一节点位于第一自治域,所述第一自治域和所述第二自治域为邻居自治域。
在一种可能的实施方式中,所述发送模块具体用于,向所述第一节点发送第一消息,所述第一消息包括所述第二节点的地址信息,所述第一消息为边界网关协议BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的其中一种。
在一种可能的实施方式中,所述接收模块还用于,在所述发送模块向所述第一节点发送第一消息之前,接收所述第一节点发送的第一请求消息,所述第一请求消息用于请求获取所述第一自治域的邻居自治域中的节点的地址信息。
在一种可能的实施方式中,所述接收模块具体用于,从第二路由器接收第一边界网关协议BGP消息,所述第一BGP消息中包括所述第二节点的地址信息,所述第二路由器位于所述第二自治域。
在一种可能的实施方式中,所述装置还包括处理模块,其中,
所述处理模块用于,在所述发送模块向所述第一节点发送所述地址信息之前,获取所述地址信息的自治域路径长度,并确定所述地址信息的自治域路径长度为1,所述自治域路径长度用于指示所述第一路由器接收到所述地址信息时,所述地址信息经过的自治域的个数。
在一种可能的实施方式中,所述接收模块还用于,接收所述第一节点发送的第二消息,所述第二消息包括所述第一节点的地址信息,所述第二消息为BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的至少一种。
在一种可能的实施方式中,所述第一节点的地址信息包括所述第一节点的标识、所述第一节点的IP地址、所述第一节点的MAC地址或所述第一节点的区块链账号中的至少一种;
所述第二节点的地址信息包括所述第二节点的标识、所述第二节点的IP地址、所述第二节点的MAC地址或所述第二节点的区块链账号中的至少一种。
在一种可能的实施方式中,所述发送模块还用于,在所述接收模块接收所述第一节点发送的第二消息之前,向所述第一节点发送第二请求消息,所述第二请求消息用于请求获取所述第一节点的地址信息。
在一种可能的实施方式中,所述发送模块还用于,在所述接收模块接收所述第一节点发送的所述第一节点的地址信息之后,向所述第二路由器发送第二BGP消息,所述第二BGP消息包括所述第一节点的地址信息。
第七方面,本申请实施例提供一种区块链节点连接建立装置,包括存储器和处理器,所述处理器执行所述存储器中的程序指令,用于实现第一方面任一项所述的区块链节点连接建立方法。
第八方面,本申请实施例提供一种区块链节点连接建立装置,包括存储器和处理器,所述处理器执行所述存储器中的程序指令,用于实现第二方面任一项所述的区块链节点连接建立方法。
第九方面,本申请实施例提供一种计算机可读存储介质,所述存储介质用于存储计算机程序,所述计算机程序被计算机或处理器执行时用于实现上述各方面所述的区块链节点连接建立方法。
第十方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的区块链节点连接建立方法。
本申请实施例提供的区块链节点连接建立方法、装置及设备,在第一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为本申请提供的另一种区块链节点连接建立装置的硬件结构示意图。
具体实施方式
图1为本申请实施例提供的***架构图,请参见图1,包括多个自治域(AutonomousSystem,AS),每个AS中设置有至少一个区块链节点(下文简称节点)和至少一个边界路由器。
可选的,本申请涉及的节点可以为因特网业务提供商(Internet ServiceProvider,ISP)所提供的服务器。
可选的,边界路由器为设置在AS边缘的路由器,边界路由器可以与其它AS中的边界路由器通信。例如,请参见图1,AS1中的路由器G12和路由器G13为边界路由器,AS2中的路由器G22和路由器G23为边界路由器,AS3中的路由器G31和路由器G32为边界路由器,AS4中的G41和G42为边界路由器。一个AS中还可以包括路由反射器,路由反射器可以转发该AS中的节点与边界路由器之间的消息,例如,AS1中包括路由反射器G11,AS2中包括路由反射器G21。需要说明的是,在一个AS中,节点可以直接与边界路由器通信,也可以通过路由反射器与边界路由器通信。
可以配置不同的AS之间的邻居关系,可选的,可以预先配置AS之间的邻居关系,或者,不同AS中的边界路由器也可以进行协商以配置AS之间的邻居关系。可选的,可以为一个AS配置一个或多个邻居AS。若两个AS被配置为邻居,则一个AS中的节点与另一个AS中的节点为邻居。对于任意一个AS中的节点,可以认为该AS的邻居AS中的节点为非攻击节点,例如,AS1和AS2为邻居,则对于AS1中的节点来说,AS2中的节点均为非攻击节点。
可选的,可以对不同AS中的边界路由器进行配置,以实现配置不同AS的邻居关系。可以在一个AS的边界路由器中添加另一个AS中的边界路由器的地址,且将该地址设置为邻居AS对应的路由器地址。例如,假设AS1中包括边界路由器1,AS2中包括边界路由器2,可以在边界路由器1中添加边界路由器2的地址,并将边界路由器2的地址设置为AS1的邻居AS对应的路由器地址,同时,还可以在边界路由器2中添加边界路由器1的地址,并将边界路由器1的地址设置为AS2的邻居AS对应的路由器地址。
在本申请中,在第一AS中的第一节点启动之后,该第一节点先获取第二AS(第一AS和第二AS为邻居)中的第二节点的地址信息,并根据第二节点的地址信息与第二节点建立连接。由于第一AS和第二AS为邻居,因此,第二AS中的第二节点为非攻击节点,使得第一节点可以与至少一个非攻击节点连接,进而可以避免与第一节点建立连接的节点均为攻击节点,进而避免第一节点被攻击节点控制,提高了区块链通信的安全性。
下面,通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,下面几个实施例可以相互结合,对于相同或相似的内容,在不同的实施例中不再进行重复说明。
需要说明的是,在本申请实施例中,以第一AS中设置有第一路由器和第一节点,第二AS中设置有第二路由器和第二节点,且第一AS和第二AS为邻居为例进行说明。
图2为本申请实施例提供的一种区块链节点连接建立方法的流程示意图。请参见图2,该方法可以包括:
S201、第一路由器获取第二节点的地址信息。
其中,第二节点位于第二AS,第二节点为第二AS中的任意一个已启动的节点。
可选的,第一路由器可以为第一AS中的边界路由器。
可选的,第二节点的地址信息包括第二节点的标识、第二节点的IP地址、第二节点的MAC地址或第二节点的区块链账号中的至少一种。
第二节点的标识可以为第二节点的身份标识(Identification,ID)。
例如,当区块链基于以太坊技术实现时,则第二节点的地址信息可以包括第二节点的标识和第二节点的IP地址,或者,第二节点的地址信息可以包括第二节点的标识、第二节点的IP地址和第二节点的区块链账号。
可选的,第一路由器可以从第二路由器中获取第二节点的地址信息。第二路由器可以为第二AS的边界路由器。例如,可以在第二路由器中添加第一路由器的地址,在第二路由器获取得到第二节点的地址信息之后,第二路由器可以根据第一路由器的地址,向第一路由器发送第二节点的地址信息。
可选的,第一路由器可以接收第二路由器发送的边界网关协议(Border GatewayProtocol,BGP)消息,BGP消息中包括第二节点的地址信息。
可选的,可以对现有的BGP更新消息(update)进行扩展,以使BGP更新消息中携带地址信息。
例如,第一路由器可以接收第二路由器发送的BGP更新消息,BGP更新消息中包括第二节点的地址信息。
下面,结合图3,对本申请所示的BGP更新消息的结构进行说明。
图3为本申请实施例提供的BGP更新消息的结构示意图。请参见图3,BGP更新消息中包括AS路径(AS-Path)、起源(Origin)、多协议网络层可达信息(MultiprotocolReachable Network Layer Reachable Information,MP_REACH_NLRI)/多协议网络层不可达信息(Multiprotocol Unreachable Network Layer Reachable Information,MP_UNREACH_NLRI)属性,其中,MP_REACH_NLRI/MP_UNREACH_NLRI属性中包括地址族标识(Address Family Identifier,AFI)、子地址族标识(Subsequent Address FamilyIdentifier,SAFI)、下一条长度、预留位和自治域信息网络层可达信息(AutonomousSystem Information_Network Layer Reachable Information,ASINFO_NLRI),其中,ASINFO_NLRI为本申请在现有的BGP更新消息中扩展的属性,通过扩展的该属性使得BGP消息中可以携带节点的地址信息。在扩展的ASINFO_NLRI中定义了DII_BC_ACCOUNTINFO属性,DII_BC_ACCOUNTINFO属性中包括节点的地址信息。可选的,节点的地址信息包括节点的标识、节点的IP地址、节点的MAC地址或节点的区块链账号中的至少一种。
需要说明的是,当第一AS与多个AS为邻居,且在该多个邻居AS的边界路由器中均添加了第一路由器的地址,则第一路由器可以从多个路由器中获取多个节点的地址信息。
例如,假设AS1中包括路由器1和节点1,AS2中包括路由器2和节点2,AS3中包括路由器3和节点3。假设AS1与AS2为邻居,AS1与AS3为邻居,在路由器2中添加了路由器1的地址作为邻居AS对应的路由器地址,在路由器3中也添加了路由器1的地址作为邻居AS对应的路由器地址。则路由器1可以从路由器2中获取节点2的地址信息,路由器2还可以从路由器3中获取节点3的地址信息。
S202、第一路由器向第一节点发送第二节点的地址信息。
第一路由器和第一节点均位于第一AS,第一路由器可以直接向第一节点发送第二节点的地址信息,或者,第一路由器可以通过第一AS中的其它路由器向第一节点发送第二节点的地址信息。
可选的,第一路由器获取到第二节点的地址信息之后,可以缓存第二节点的地址信息,在第一节点下次启动之后,再向第一节点发送第二节点的地址信息。由于第一节点在启动之后向第一路由器发送用于指示第一节点启动的消息,因此,第一路由器可以在接收到该消息之后再向第一节点发送第二节点的地址信息。
可选的,第一路由器可以主动向第一节点发送第二节点的地址信息。第一路由器也可以在接收到第一节点的请求消息之后,再向第一节点发送第二节点的地址信息。
S203、第一节点根据第二节点的地址信息,与第二节点建立连接。
可选的,第一节点可以根据第二节点的地址信息,向第二节点发送连接建立请求,以实现与第二节点建立连接。
可选的,在S203之后,第一节点还可以与其它节点建立连接。例如,第一节点可以根据其存储的节点列表(NodeTable)请求与其它节点建立连接,或者,第一节点还可以接收其它节点发送的连接请求,以实现与其它节点建立连接。
本申请实施例提供的区块链节点连接建立方法,在第一AS中的第一节点启动之后,该第一节点先获取第二AS(第一AS和第二AS为邻居)中的第二节点的地址信息,并根据第二节点的地址信息与第二节点建立连接。由于第一AS和第二AS为邻居,因此,第二AS中的第二节点为非攻击节点,使得第一节点可以与至少一个非攻击节点连接,进而可以避免与第一节点建立连接的节点均为攻击节点,进而避免第一节点被攻击节点控制,提高了区块链通信的安全性。
在上述任意一个实施例的基础上,下面,结合图4-图6所示的实施例对上述方法实施例所示的方法进行详细说明。
图4为本申请实施例提供的另一种区块链节点连接建立方法的流程示意图。请参见图4,该方法可以包括:
S401、第二路由器向第一路由器发送第一BGP更新消息。
其中,第一BGP更新消息中包括第二节点的地址信息。
可选的,第二节点当前为已启动状态。
可选的,第二路由器可以在获取到第二节点的地址信息之后,主动向第一路由器发送第一BGP更新消息。
可选的,第一BGP更新消息中可以包括多个第二节点的地址信息,或者,第二路由器可以向第一路由器发送多个第一BGP更新消息,每个第一BGP更新消息中包括一个第二节点的地址信息,这样,可以使得第一路由器获取第二AS中当前已启动的所有第二节点的地址信息。
可选的,第二路由器的个数可以为一个或者多个。当第二路由器的个数为多个时,该多个第二路由器可以位于不同的AS中,且每个第二路由器所在的AS均与第一路由器所在的AS为邻居。
例如,假设第一路由器为路由器1,且第一路由器位于AS1;第二路由器的个数为2个,分别为路由器2和路由器3,路由器2位于AS2,路由器3位于AS3,AS1与AS2为邻居,AS1和AS3也是邻居,则路由器2可以向路由器1发送AS2中的节点的地址信息,路由器3可以向路由器1发送AS3中的节点的地址信息。
需要说明的是,第一BGP更新消息的结构可以参见图3,此处不再进行赘述。
S402、第一路由器根据第一BGP更新消息,缓存第二节点的地址信息。
可选的,第一路由器可以在第一BGP更新消息中获取第二节点的地址信息,并缓存第二节点的地址信息。
需要说明的是,第一路由器可能接收到一个或多个第二路由器发送的第一BGP更新消息,若第一路由器接收到多个第二路由器发送的第一BGP更新消息,则第一路由器分别缓存每个第一BGP更新消息中的第二节点的地址信息。
可选的,在第一路由器接收到第一BGP更新消息之后,第一路由器可以根据第一BGP更新消息判断第二节点是否为第一AS的邻居AS中的节点。
可选的,第一BGP更新消息中包括AS路径,第一路由器可以根据AS路径确定AS路径长度。AS路径长度用于指示第一BGP更新消息在传输的过程中经过的自治域的个数。若AS路径长度为1,则确定第二节点为第一AS的邻居AS中的节点,若AS路径长度大于1,则确定第二节点不是第一AS的邻居AS中的节点。
可选的,在BGP更新消息每经过一个AS时,则会携带该AS的标识,相应的,第一路由器可以根据第一BGP更新消息中的AS路径中包括的AS的标识的个数确定路径长度。路径长度可以为AS路径中包括的AS的标识的个数。
下面,结合图5,对路径长度进行说明。
图5为本申请实施例提供的消息转发示意图。请参见图5,包括AS1、AS2和AS3。AS1中设置有节点N1、路由反射器G11和路由器G12。AS2中设置有节点N2、路由器G21、路由反射器G22和路由器G23。AS3中设置有节点N3、路由器G31和路由反射器G32。
假设AS1中的路由器需要通过AS2中的路由器与AS3中的路由器进行通信,则当AS1中的路由器需要向AS3中的路由器发送BGP更新消息时,路由器G12可以先向路由器G21发送BGP更新消息,由于该BGP更新消息从AS1中发出,因此,该BGP更新消息中的AS路径中包括AS1的标识,即,AS路径为:AS1。在路由器G21接收到该BGP更新消息之后,路由器G21根据AS路径(AS1)可以确定路径长度为1。
路由器G21可以通过路由反射器G22向路由器G23发送该BGP更新消息,路由器G23向路由器G31发送BGP更新消息。由于此时的BGP更新消息已经经过了AS2,因此,此时的BGP更新消息的AS路径中还包括了AS2的标识,即,AS路径为:AS2,AS1,在路由器G31接收到该BGP更新消息之后,路由器G31根据AS路径(AS2,AS1)可以确定路径长度为2。
需要说明的是,若第一路由器所在的第一AS中存在节点为已启动状态,则第一路由器可以直接向第一AS中已启动状态的节点发送第二节点的地址信息。若第一路由器所在的第一AS中存在第一节点为未启动状态,则第一路由器可以在第一节点启动之后,再向第一节点发送缓存的第二节点的地址信息。
下面,通过S403-S411,对第一路由器向第一节点发送第二节点的地址信息的过程进行说明。
S403、第一节点启动。
S404、第一节点向第一路由器发送第一BGP打开(Open)消息。
其中,第一BGP打开消息中包括用于指示第一节点具有携带节点的地址信息的能力的指示信息。
可选的,第一BGP打开消息还可以指示第一节点启动。
下面,结合图6,对本申请所示的BGP打开消息的结构进行说明。
图6为本申请实施例提供的BGP打开消息的结构示意图。请参见图6,BGP打开消息中包括AFI、预留位和SAFI,其中,SAFI为本申请在现有的BGP更新消息中扩展的属性,SAFI的值AsInfo可以指示发送BGP打开消息的设备具有携带节点的地址信息的能力。
S405、第一路由器根据第一BGP打开消息向第一节点发送第二BGP打开消息。
其中,第二BGP打开消息中包括用于指示第一路由器具有携带节点的地址信息的能力的指示信息。
S406、第一节点根据第二BGP打开消息与第一路由器建立内部边界网关协议(Internal Border Gateway Protocol,IBGP)连接。
可选的,在第一节点具有携带节点的地址信息的能力,且第一路由器也具有携带节点的地址信息的能力时,第一节点与第一路由器建立IBGP连接。
例如,第一节点在判断第二BGP打开消息中包括用于指示第一路由器具有携带节点的地址信息的能力的指示信息时,第一节点与第一路由器建立IBGP连接。
S407、第一节点向第一路由器发送第二BGP更新消息。
其中,第二BGP更新消息中包括第一节点的地址信息。
需要说明的是,第一BGP更新消息的结构可以参见图3,此处不再进行赘述。
可选的,S407可以为可选的步骤,即,还可以不执行S407。
可选的,在S407中,第一节点还可以在接收到第一路由器发送的第二请求消息之后,再向第一路由器发送第二BGP更新消息。其中,第二请求消息用于请求获取第一节点的地址信息。
S408、第一路由器向第一节点发送第三BGP更新消息。
其中,第三BGP更新消息中包括第二节点的地址信息。
需要说明的是,第三BGP更新消息的结构可以参见图3,此处不再进行赘述。
需要说明的是,在S408中,第一路由器还可以在接收到第一节点发送的第一请求消息之后,再向第一节点发送第三BGP更新消息。其中,第一请求消息用于请求获取所述第一AS的邻居AS(第二AS)中的节点的地址信息。
S409、第一节点根据第二节点的地址信息,与第二节点建立连接。
可选的,第一节点可以先将第二节点的地址信息添加至邻居列表中,在第一节点确定得到邻居列表之后,可以先根据邻居列表中的地址信息与对应的节点建立连接。由于邻居列表中包括第二节点的地址信息,因此,第一节点可以与第二节点建立连接。
可选的,第一节点可以对邻居列表进行动态维护,以使邻居列表中的第二节点均为可达的(已启动状态)。例如,在邻居列表中的一个节点下线之前,第二节点可以通过第二路由器、第一路由器向第一节点发送下线通知,以使第一节点在邻居列表中删除该节点的地址信息。或者,在第一节点每次下线之后,清空邻居列表。或者,在第一节点与邻居节点中的一个节点发送连接请求之后未收到响应时,则第一节点确定该节点为未启动状态,则在邻居列表中删除该节点的地址信息。需要说明的是,上述只是以示例的形式示意第一节点对邻居列表的动态维护过程,本申请对此不作具体限定。
可选的,第一节点的邻居列表中可能已经包括了第三BGP更新消息中的部分地址信息,在该种情况下,第一节点可以不再向邻居节点中添加该部分地址信息,以避免邻居列表中包括重复的地址信息。
S410、第一路由器向第二路由器发送第四BGP更新消息。
其中,第四BGP更新消息中包括第一节点的地址信息。
需要说明的是,第四BGP更新消息的结构可以参见图3,此处不再进行赘述。
S411、第二路由器缓存第一节点的地址信息。
可选的,在第二路由器缓存第一节点的地址信息之后,在第二AS中的第二节点启动之后,第二路由器可以向第二节点发送第一节点的地址信息。
需要说明的是,第二路由器向第二节点发送第一节点的信息的过程,可以参见第一路由器向第一节点发送第二节点的地址信息的过程,此处不再进行赘述。
需要说明的是,S410-S411可以为可选的步骤,即,还可以不执行S410-S411。在实际应用过程中,若S407执行,则S410-S411也可以执行,若S407未执行,则S410-S411也可以不执行。
在图4所示的实施例中,通过扩展现有的BGP打开消息,可以使得BGP打开消息可以指示发送BGP打开消息的设备是否具有携带节点的地址信息的能力。通过扩展现有的BGP更新消息,使得BGP更新消息可以携带节点的地址信息,进而使得第一AS中的第一节点可以通过BGP更新消息获取第二AS中的第二节点的地址信息,进而使得第一节点可以先根据第二节点的地址信息与第二节点建立连接。由于第一AS和第二AS为邻居,因此,第二AS中的第二节点为非攻击节点,使得第一节点可以与至少一个非攻击节点连接,进而可以避免与第一节点建立连接的节点均为攻击节点,进而避免第一节点被攻击节点控制,提高了区块链通信的安全性。
下面,结合图7,通过具体示例,对图4实施例所示的方法进行详细说明。
图7为本申请实施例提供的节点连接建立过程示意图。请参见图1,在AS1中设置有节点1和路由器1,AS2中设置有节点2和路由器2,其中,AS1和AS2为邻居。假设节点1、节点2、路由器1和路由器2均具有在BGP更新消息中携带地址信息的能力。
节点1和节点2为以太坊节点,以太坊节点为区块链节点中的一种。请参见图7,节点1和节点2可以基于以太坊网络协议进行通信。
以太坊网络协议为开发点到点(Developers Peer to Peer,DEVp2p)协议。DEVp2p协议中包括递归长度前缀扩展(Recursive Length Prefix extended,RLPx)节点发现(Node Discover)协议、以太坊有线协议(Ethereum Wire Protocol)、DEVp2p有线协议(DEVp2p Wire Protocol)、用户数据报协议(User Diagram Protocol,UDP)和传输控制(Transmission Control Protocol,TCP)。RLPx节点发现(RLPxNode Discover)用于通过节点发现算法进行以太坊节点查找;DEVp2p有线协议(DEVp2p Wire Protocol)用于建立以太坊节点之间的P2P连接;以太坊有线协议(Ethereum Wire Protocol)用于以太坊节点的交易区块信息同步以及参与共识等。
请参见图7,在步骤1中,在节点1启动之后,由于节点1和路由器1均具有在BGP更新消息中携带地址信息的能力,因此,节点1和路由器1可以建立IBGP连接。
在步骤2中,在节点1和路由器1的IBGP连接建立完成之后,路由器1可以向节点1发送其缓存的邻居AS中节点的地址信息。在节点1接收到路由器1发送的邻居AS中节点的地址信息之后,节点1将接收到的地址信息添加至邻居列表,并根据邻居列表中的地址信息与邻居AS中的节点建立连接。在节点1与邻居AS中的节点建立连接之后,节点1还可以与节点列表(NodeTable)中的节点建立连接。其中,节点列表为节点中维护的一个可达节点列表,例如,节点列表中可以包括最近与节点通信的可达的节点的地址信息。
在步骤3中,节点1向路由器1发送节点1的地址信息。例如,节点1可以向路由器1发送BGP更新消息1,BGP更新消息1中包括节点1的地址信息。
在步骤4中,路由器1向路由器2发送节点1的地址信息,例如,路由器1可以向路由器2发送BGP更新消息2,并在BGP更新消息2中携带节点1的地址信息。在步骤4中,若AS1还与其它AS为邻居,则路由器1还向AS1的其他邻居AS中的路由器发送节点1的地址信息。
在步骤5中,路由器2可以缓存节点1的地址信息。
在步骤6中,假设AS2中的节点2为已启动状态,则路由器2可以直接向节点2发送节点1的地址信息,例如,路由器2可以向节点2发送BGP更新消息3,BGP更新消息3中包括节点1的地址信息。需要说明的是,若AS2中还包括其它已启动的节点,则路由器2在接收到节点1的地址信息之后,路由器2还向其它已启动的节点发送节点1的地址信息。若AS2中还包括其它未启动的节点,则路由器2可以在其它未启动的节点启动之后,再向该部分节点发送节点1的地址信息。
在步骤7中,在节点2接收到节点1的地址信息之后,节点2将节点1的地址信息添加至邻居列表。在节点2下次启动时,可以根据邻居列表中的节点的地址信息与邻居AS中的节点建立连接。
图8为本申请实施例提供的又一种区块链节点连接建立方法的流程示意图。请参见图8,该方法可以包括:
S801、在第一节点启动之后,第一节点向第一路由器发送通知消息。
其中,通知消息用于指示第一节点启动。
可选的,通知消息可以为Notify消息。
S802、第一节点向第一路由器发送第一RTR请求消息。
其中,第一资源公钥基础设施(Resource Public Key Infrastructure,RPKI)到路由器接口协议(RPKITo Router,RTR)请求消息用于请求第一AS的邻居AS中的节点的地址信息。
可选的,第一RTR请求消息可以为第一请求消息的一种实现形式。
例如,第一RTR请求消息可以为Account Query消息。Account Query消息可以如图9所示。
图9为本申请实施例提供的一种消息的结构示意图。请参见图9,Account Query消息可以占用64位。第0至7位用于指示协议版本,第8至15位用于指示PDU类型,第16至第31位为预留位,第32至63位用于指示长度。其中,PDU类型可以指示该Account Query消息的功能,即,指示请求获取地址信息。
S803、第一路由器向第一节点发送第一RTR响应消息。
可选的,第一RTR响应消息可以为Account Response消息,Account Response消息可以如图10所示,此处不再进行赘述。
图10为本申请实施例提供的另一种消息的结构示意图。请参见图10,AccountResponse消息可以占用64位。第0至7位用于指示协议版本,第8至15位用于指示PDU类型,第16至第31位为预留位,第32至63位用于指示长度。其中,PDU类型可以指示该Account Query消息的功能,即,对获取地址信息的请求消息进行响应。
S804、第一路由器向第一节点发送第一RTR内容消息,第一RTR内容消息包括第二节点的地址信息。
其中,第二节点为第一AS的邻居AS中的节点。第二节点的地址信息为第一路由器缓存的第一AS的邻居AS中的节点的地址信息。
可选的,第一RTR内容消息可以为账户信息(AccountInfo)消息,并在账户信息消息中携带其缓存的邻居AS中的节点的地址信息。Account Query消息可以如图11所示。
图11为本申请实施例提供的另一种消息的结构示意图。请参见图11,AccountInfo消息占用的位数可变。第0至7位用于指示协议版本,第8至15位用于指示PDU类型,第16至第31位为预留位,第32至63位用于指示长度,其它信息位用于指示地址信息。其中,PDU类型可以指示该AccountInfo消息的功能,即,指示用于承载地址信息。需要说明的是,图11只是以示例的形式示意地址信息中包括的内容,并非对地址信息中包括的内容进行的限定。
可选的,在第一路由器向第一节点发送完成第一RTR内容消息之后,第一路由器还可以向第一节点发送结束消息(End of Data消息)。
S805、第一节点根据第二节点的地址信息,与第二节点建立连接。
需要说明的是,S804的执行过程可以参见S409,此处不再进行赘述。
S806、第一路由器根据通知消息向第一节点发送第二RTR请求消息。
其中,第二RTR请求消息用于请求获取第一节点的地址信息。
可选的,第二RTR请求消息可以为第二请求消息的一种实现形式。
可选的,第二RTR请求消息可以为账户请求(Account Query)消息。Account Query消息可以如图9所示,此处不再进行赘述。
S807、第一节点根据账户请求消息向第一路由器发送第二RTR响应消息。
可选的,第二RTR响应消息可以为账户响应(Account Response)消息。AccountResponse消息可以如图10所示,此处不再进行赘述。
S808、第一节点根据账户请求消息向第一路由器发送第二RTR内容消息,第二RTR内容消息中包括第一节点的地址信息。
可选的,第二RTR内容消息可以为账户信息(AccountInfo)消息,Account Query消息可以如图11所示,此处不再进行赘述。
可选的,在第一节点向第一路由器发送完成第二RTR响应消息和第二RTR内容消息之后,第一节点还可以向第一路由器发送结束消息(End of Data消息)。
需要说明的是,本申请不限定S802-S804与S806-S808之间的先后执行顺序,且
S809、第一路由器向第二路由器发送BGP更新消息,BGP更新消息中包括第一节点的地址信息。
需要说明的是,BGP更新消息的结构可以参见图3,此处不再进行赘述。
S810、第二路由器缓存第一节点的地址信息。
可选的,在第二路由器缓存第一节点的地址信息之后,第二AS中的节点可以向第二路由器请求获取第二路由器缓存的邻居AS的地址信息,第二AS中的节点向第二路由器请求获取第二路由器缓存的邻居AS的地址信息的过程可以参见S806-S807,此处不再进行赘述。
可选的,第二路由器还可以向第二AS中的节点请求获取第二AS中的节点的地址信息,其过程可以参见S802-S803,此处不再进行赘述。
在图8所示的实施例中,通过定义新的RTR消息,可以使得第一AS中的第一节点可以通过RTR消息(RTR内容消息)获取第二AS中的第二节点的地址信息,进而使得第一节点可以先根据第二节点的地址信息与第二节点建立连接。由于第一AS和第二AS为邻居,因此,第二AS中的第二节点为非攻击节点,使得第一节点可以与至少一个非攻击节点连接,进而可以避免与第一节点建立连接的节点均为攻击节点,进而避免第一节点被攻击节点控制,提高了区块链通信的安全性。
图12为本申请实施例提供的再一种区块链节点连接建立方法的流程示意图。请参见图12,该方法可以包括:
S1201、在第一节点启动之后,第一节点向第一路由器发送第一信息通知消息。
其中,第一信息通知消息中包括第一节点的地址信息。
其中,第一信息通知消息还用于指示第一节点启动。
可选的,第一信息通知消息可以为NotifyAccountInfo消息。
可选的,第一信息通知消息可以为自定义接口消息。例如,第一信息通知消息可以为用户数据报协议(User Diagram Protocol,UDP)消息。
S1202、第一路由器向第一节点发送第一信息响应消息。
可选的,第一信息响应消息可以为Account NotifyAccountAck消息。
可选的,第一信息响应消息可以为自定义接口消息。例如,第一信息响应消息可以为UDP消息。
S1203、第一路由器向第一节点发送第二信息通知消息。
其中,第二信息通知消息中包括第二节点的地址信息,第二节点为第一AS的邻居AS中的节点。第二节点的地址信息为第一路由器缓存的第一AS的邻居AS中的节点的地址信息。
可选的,第二信息通知消息可以为NotifyAccountInfo消息。
可选的,第二信息通知消息可以为自定义接口消息。例如,第二信息通知消息可以为UDP消息。
S1204、第一节点向第一路由器发送第二信息响应消息。
可选的,第二信息响应消息可以为Account NotifyAccountAck消息。
可选的,第二信息响应消息可以为自定义接口消息。例如,第二信息响应消息可以为UDP消息。
S1205、第一节点根据第二节点的地址信息,与第二节点建立连接。
需要说明的是,S1405的执行过程可以参见S409,此处不再进行赘述。
S1206、第一路由器向第二路由器发送BGP更新消息,BGP更新消息中包括第一节点的地址信息。
需要说明的是,BGP更新消息的结构可以参见图3,此处不再进行赘述。
S1207、第二路由器缓存第一节点的地址信息。
可选的,在第二路由器缓存第一节点的地址信息之后,第二路由器还可以向第二AS中的节点发送第一节点的地址信息,第二路由器向第二AS中的节点发送第一节点的地址信息的过程,可以参见S1203-S1204,此处不再进行赘述。
在图12所示的实施例中,通过自定义接口消息,可以使得第一AS中的第一节点可以通过自定义接口消息获取第二AS中的第二节点的地址信息,进而使得第一节点可以先根据第二节点的地址信息与第二节点建立连接。由于第一AS和第二AS为邻居,因此,第二AS中的第二节点为非攻击节点,使得第一节点可以与至少一个非攻击节点连接,进而可以避免与第一节点建立连接的节点均为攻击节点,进而避免第一节点被攻击节点控制,提高了区块链通信的安全性。
下面,结合图13-图15所示的实施例,对区块链节点连接建立方法进行说明。
图13为本申请实施例提供的再一种区块链节点连接建立方法的流程示意图。请参见图13,该方法可以包括:
S1301、第一节点启动。
S1302、第一路由器向第一节点发送其缓存的第一AS的邻居AS中的节点的地址信息。
需要说明的是,S1302的执行过程可以参见上述任意方法实施例,此处不再进行赘述。
S1303、第一节点根据接收到的第一AS的邻居AS中的节点的地址信息,更新邻居列表。
可选的,第一节点可以将接收到的第一AS的邻居AS中的节点(下文简称邻居节点)的地址信息添加至邻居列表;或者,第一节点可以将接收到的邻居节点的地址信息中、未包括在邻居列表中的地址信息添加至邻居列表。
S1304、第一节点根据更新后的邻居列表中的地址信息,与第一AS的邻居AS中的节点建立连接。
可选的,第一节点可以根据更新后的邻居列表中的地址信息,向邻居节点发送连接请求,在接收到邻居节点发送的连接响应之后,与邻居节点建立连接。
可选的,第一节点最多与个邻居节点建立出连接,maxpeers为第一节点建立的最多连接数量。例如,maxpeers可以为25。
S1305、第一节点根据节点列表中的节点信息进行节点发现,并与发现的节点建立连接。
可选的,第一节点可以生成一个随机节点ID,并获取节点列表中每个节点的节点ID与该随机节点ID的异或距离,并与异或距离最近的X个节点建立连接。
可选的,假设在S1304中,第一节点与Y个邻居节点建立连接,则X+Y小于或等于
其中,两个节点的异或距离可以为将两个节点的节点ID进行异或运算之后包含的1的个数。
可选的,在第一节点与至少一个邻居节点建立连接以及与发现的节点建立连接之后,第一节点可以与建立连接的节点处获取得到区块链信息,区块链信息中包括链长和难度信息。若第一节点获取得到的链长不同,或者难度信息不同,则第一节点可以将链长最长且难度最大的链确定为真实的链,并与真实的链保持连接。
在图13所示的实施例中,第一节点可以与第一AS的邻居AS中的至少一个节点建立连接,由于第一AS的邻居AS中的节点为非攻击节点,使得第一节点可以与至少一个非攻击节点连接,进而可以避免与第一节点建立连接的节点均为攻击节点,进而避免第一节点被攻击节点控制,提高了区块链通信的安全性。
下面,结合图14,通过具体实施例,对图13所示的实施例进行详细说明。
图14为本申请提供的节点连接建立过程示意图。请参见图14,AS1与AS2为邻居,AS1与AS3为邻居。
在节点N1启动之后,节点N1从路由器G11中获取路由器G11缓存的AS2和AS3中的节点的地址信息,并根据获取得到节点的地址信息更新邻居列表,假设更新后的邻居列表中包括AS2中的节点N2的地址信息(IP2)和AS3中的节点N3的地址信息(N3)。
节点N1先根据邻居列表中的节点的地址信息与邻居节点建立连接,即,节点N1根据节点N2的地址(IP2)与节点N2建立连接,节点N1根据节点N3的地址(IP3)与节点N3建立连接。
节点N1还可以通过节点发现算法发现其他的节点,并与其它节点建立连接。由于节点N2和节点N3为非攻击节点,因此,可以使得节点N1可以与至少一个非攻击节点连接,进而可以避免与节点N1建立连接的节点均为攻击节点,进而避免节点N1被攻击节点控制,提高了区块链通信的安全性。
图15为本申请实施例提供的再一种区块链节点连接建立方法的流程示意图。请参见图15,该方法可以包括:
S1501、第一节点启动。
S1502、第一节点与第三节点建立连接。
可选的,第三节点可以为背书节点。
可选的,在第一节点与第三节点建立连接之后,第三节点可以向第一节点发送第一区块链信息,第一区块链信息中包括第三节点所在链的链长和难度信息。
S1503、第三节点向第一节点发送第一合法节点列表。
其中,第一合法节点列表中包括多个节点的信息。
例如,节点的信息可以包括节点的区块链账号、节点的标识和节点的IP地址等信息中的一项或多项。
S1504、第一节点与第二节点建立连接。
其中,第二节点为第一AS的邻居AS中的节点。
需要说明的是,S1504的执行过程可以参见S1302-S1304,此处不再进行赘述。
可选的,在第一节点与第二节点建立连接之后,第二节点可以向第一节点发送第二区块链信息,第一区块链信息中包括第二节点所在链的链长和难度信息。
S1505、第二节点向第一节点发送第二合法节点列表。
S1506、第一节点在第一合法节点列表和第二合法节点列表中确定目标合法节点列表。
可选的,第一节点可以根据第一区块链信息和第二区块链信息确定真实的链,并将第一合法节点列表和第二合法节点列表中、包括真实的链中的节点的合法节点列表确定为目标合法节点列表。
S1507、第一节点根据目标合法节点列表进行节点发现。
需要说明的是,S1507的执行过程可以参见S1305,此处不再进行赘述。
在图15所示的实施例中,第一节点可以与第一AS的邻居AS中的至少一个节点建立连接,由于第一AS的邻居AS中的节点为非攻击节点,使得第一节点可以与至少一个非攻击节点连接,进而可以避免与第一节点建立连接的节点均为攻击节点,进而避免第一节点被攻击节点控制,进一步的,第一节点可以从背书节点和邻居节点分别获取合法节点列表,并在获取到的合法节点列表中确定目标合法节点列表,并根据目标合法节点列表进行节点发现,进而可以避免背书节点作恶而引起的安全性问题。
图16为本申请实施例提供的一种区块链节点连接建立装置的结构示意图。该区块链节点连接建立装置10可以应用于区块链***中的第一节点,该区块链节点连接建立装置10可以所述装置包括:
接收模块11,用于从第一路由器获取第二节点的地址信息,所述第一路由器和所述第一节点位于第一自治域,所述第二节点位于第二自治域,所述第一自治域和所述第二自治域为邻居自治域;
处理模块12,用于根据所述第二节点的地址信息,与所述第二节点建立连接。
可选的,接收模块11可以执行上述方法实施例中与第一节点的接收动作相关的步骤,例如,接收模块11可以执行图2实施例中的S202,图4实施例中的S405和S408,图8实施例中的S803、S804等,图12实施例中的S1202、S1203等,图13实施例中的S1302,图15实施例中的S1503和S1505。
可选的,处理模块12可以执行上述方法实施例中与第一节点的处理动作相关的步骤,例如,处理模块12可以执行图2实施例中的S203,图4实施例中的S409,图8实施例中的S805,图12实施例中的S1205,图13实施例中的S1303-S1305,图15实施例中的S1506-S1507。
需要说明的是,本申请实施例所示的区块链节点连接建立装置10可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此次不再进行赘述。
在一种可能的实施方式中,所述接收模块11具体用于,从所述第一路由器接收第一消息,所述第一消息包括所述第二节点的地址信息,所述第一消息为边界网关协议BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的其中一种。
图17为本申请实施例提供的另一种区块链节点连接建立装置的结构示意图。在图16所示实施例的基础上,请参见图17,区块链节点连接建立装置10还包括发送模块13,其中,
所述发送模块13用于,在所述接收模块11从所述第一路由器接收第一消息之前,向所述第一路由器发送请求消息,所述请求消息用于请求获取所述第一自治域的邻居自治域中的节点的地址信息。
可选的,发送模块13可以执行上述方法实施例中与第一节点的发送动作相关的步骤,例如,处理模块12可以执行图2实施例中的S202,图4实施例中的S404和S407,图8实施例中的S801-S802、S807-S808,图12实施例中的S1201、S1204。
在一种可能的实施方式中,所述第一节点的地址信息包括所述第一节点的标识、所述第一节点的IP地址、所述第一节点的MAC地址或所述第一节点的区块链账号中的至少一种;
所述第二节点的地址信息包括所述第二节点的标识、所述第二节点的IP地址、所述第二节点的MAC地址或所述第二节点的区块链账号中的至少一种。
在一种可能的实施方式中,在所述处理模块12根据所述第二节点的地址信息,与所述第二节点建立连接之前,所述处理模块12还用于,将所述第二节点的地址信息添加至所述第一节点的邻居列表中;
所述处理模块12具体用于,根据所述邻居列表中的地址信息,与所述第二节点建立连接。
在一种可能的实施方式中,在所述处理模块12根据所述第二节点的地址信息,与所述第二节点建立连接之后,所述处理模块12还用于:
与第三节点建立连接,并从所述第三节点获取第一合法节点列表;
从所述第二节点获取第二合法节点列表;
在所述第一合法节点列表和所述第二合法节点列表中确定目标合法节点列表,并根据所述目标合法节点列表进行节点发现。
需要说明的是,本申请实施例所示的区块链节点连接建立装置10可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此次不再进行赘述。
图18为本申请实施例提供的又一种区块链节点连接建立装置的结构示意图。该区块链节点连接建立装置20可以应用于区块链***中的第一路由器,该区块链节点连接建立装置20可以包括:
接收模块21,用于获取第二节点的地址信息,所述第二节点位于第二自治域;
发送模块22,用于向所述第一节点发送所述第二节点的地址信息,所述第一路由器和所述第一节点位于第一自治域,所述第一自治域和所述第二自治域为邻居自治域。
可选的,接收模块21可以执行上述方法实施例中与第一路由器的接收动作相关的步骤,例如,接收模块21可以执行图2实施例中的S201,图4实施例中的S401、S404和S407,图8实施例中的S801-S802、S807-S808,图12实施例中的S1201和S1204。
可选的,发送模块22可以执行上述方法实施例中与第一路由器的发送动作相关的步骤,例如,发送模块22可以执行图2实施例中的S202,图4实施例中的S405、S408和S410,图8实施例中的S803-S804、S806、S809,图12实施例中的S1202-S1203和S1206。
需要说明的是,本申请实施例所示的区块链节点连接建立装置20可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此次不再进行赘述。
在一种可能的实施方式中,所述发送模块22具体用于,向所述第一节点发送第一消息,所述第一消息包括所述第二节点的地址信息,所述第一消息为边界网关协议BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的其中一种。
在一种可能的实施方式中,所述接收模块21还用于,在所述发送模块向所述第一节点发送第一消息之前,接收所述第一节点发送的第一请求消息,所述第一请求消息用于请求获取所述第一自治域的邻居自治域中的节点的地址信息。
在一种可能的实施方式中,所述接收模块21具体用于,从第二路由器接收第一边界网关协议BGP消息,所述第一BGP消息中包括所述第二节点的地址信息,所述第二路由器位于所述第二自治域。
图19为本申请实施例提供的再一种区块链节点连接建立装置的结构示意图。在图18所示实施例的基础上,请参见图19,区块链节点连接建立装置20还可以包括处理模块23,其中,
所述处理模块23用于,在所述发送模块22向所述第一节点发送所述地址信息之前,获取所述地址信息的自治域路径长度,并确定所述地址信息的自治域路径长度为1,所述自治域路径长度用于指示所述第一路由器接收到所述地址信息时,所述地址信息经过的自治域的个数。
在一种可能的实施方式中,所述接收模块21还用于,接收所述第一节点发送的第二消息,所述第二消息包括所述第一节点的地址信息,所述第二消息为BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的至少一种。
在一种可能的实施方式中,所述第一节点的地址信息包括所述第一节点的标识、所述第一节点的IP地址、所述第一节点的MAC地址或所述第一节点的区块链账号中的至少一种;
所述第二节点的地址信息包括所述第二节点的标识、所述第二节点的IP地址、所述第二节点的MAC地址或所述第二节点的区块链账号中的至少一种。
需要说明的是,本申请实施例所示的区块链节点连接建立装置20可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此次不再进行赘述。
应理解,上述区块链节点连接建立装置中的处理模块可以被实现为处理器,接收模块可以被实现为接收器,发送模块可以被实现为发送器。
图20为本申请提供的一种区块链节点连接建立装置的硬件结构示意图。请参见图20,该区块链节点连接建立装置30包括:存储器31、处理器32、接收器33和发送器34,其中,存储器31和处理器32通信;示例性的,存储器31、处理器32、接收器33和发送器34可以通过通信总线35通信,所述存储器31用于存储计算机程序,所述处理器32执行所述计算机程序实现上述区块链节点连接建立方法。
可选的,本申请所示的处理器32可以实现图16-图17实施例中的处理模块12的功能,接收器33可以实现图16-图17实施例中接收模块11的功能,发送器34可以实现图16-图17实施例中发送模块13的功能,此处不再进行赘述。
图21为本申请提供的另一种区块链节点连接建立装置的硬件结构示意图。请参见图21,该区块链节点连接建立装置40包括:存储器41、处理器42、接收器43和发送器44,其中,存储器41和处理器42通信;示例性的,存储器41、处理器42、接收器43和发送器44可以通过通信总线45通信,所述存储器41用于存储计算机程序,所述处理器42执行所述计算机程序实现上述区块链节点连接建立方法。
可选的,本申请所示的处理器42可以实现图18-图19实施例中的处理模块23的功能,接收器43可以实现图18-图19实施例中接收模块21的功能,发送器44可以实现图18-图19实施例中发送模块22的功能,此处不再进行赘述。
可选的,上述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的区块链节点连接建立方法实施例中的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本申请提供一种存储介质,所述存储介质用于存储计算机程序,所述计算机程序用于实现上述实施例所述的区块链节点连接建立方法。
实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-only memory,缩写:ROM)、RAM、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppydisk)、光盘(英文:optical disc)及其任意组合。
本申请实施例是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
在本申请中,术语“包括”及其变形可以指非限制性的包括;术语“或”及其变形可以指“和/或”。本本申请中术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。本申请中,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

Claims (16)

1.一种区块链节点连接建立方法,其特征在于,应用于区块链***,所述方法包括:
第一节点从第一路由器获取第二节点的地址信息,所述第一路由器和所述第一节点位于第一自治域,所述第二节点位于第二自治域,所述第一自治域和所述第二自治域为邻居自治域,所述第二节点的地址信息包括所述第二节点的标识、所述第二节点的IP地址、所述第二节点的MAC地址或所述第二节点的区块链账号中的至少一种;
所述第一节点将所述第二节点的地址信息添加至所述第一节点的邻居列表中;
所述第一节点根据所述邻居列表中的地址信息,与所述第二节点建立连接。
2.根据权利要求1所述的方法,其特征在于,所述第一节点从第一路由器获取所述第二节点的地址信息,包括:
所述第一节点从所述第一路由器接收第一消息,所述第一消息包括所述第二节点的地址信息,所述第一消息为边界网关协议BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的其中一种。
3.根据权利要求1或2所述的方法,其特征在于,所述第一节点根据所述邻居列表中的地址信息,与所述第二节点建立连接之后,还包括:
所述第一节点与第三节点建立连接,并从所述第三节点获取第一合法节点列表;
所述第一节点从所述第二节点获取第二合法节点列表;
所述第一节点在所述第一合法节点列表和所述第二合法节点列表中确定目标合法节点列表,并根据所述目标合法节点列表进行节点发现。
4.一种区块链节点连接建立方法,其特征在于,应用于区块链***,所述方法包括:
第一路由器获取第二节点的地址信息,所述第二节点位于第二自治域;
所述第一路由器向第一节点发送所述第二节点的地址信息,所述第一路由器和所述第一节点位于第一自治域,所述第一自治域和所述第二自治域为邻居自治域,所述第二节点的地址信息包括所述第二节点的标识、所述第二节点的IP地址、所述第二节点的MAC地址或所述第二节点的区块链账号中的至少一种;所述第一节点用于将所述第二节点的地址信息添加至所述第一节点的邻居列表中并根据所述邻居列表中的地址信息,与所述第二节点建立连接。
5.根据权利要求4所述的方法,其特征在于,所述第一路由器向所述第一节点发送所述第二节点的地址信息,包括:
所述第一路由器向所述第一节点发送第一消息,所述第一消息包括所述第二节点的地址信息,所述第一消息为边界网关协议BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的其中一种。
6.根据权利要求4或5所述的方法,其特征在于,所述第一路由器获取第二节点的地址信息,包括:
所述第一路由器从第二路由器接收第一边界网关协议BGP消息,所述第一BGP消息中包括所述第二节点的地址信息,所述第二路由器位于所述第二自治域。
7.根据权利要求4-6任一项所述的方法,其特征在于,所述第一路由器向所述第一节点发送所述地址信息之前,还包括:
所述第一路由器获取所述地址信息的自治域路径长度,所述自治域路径长度用于指示所述第一路由器接收到所述地址信息时,所述地址信息经过的自治域的个数;
所述第一路由器确定所述地址信息的自治域路径长度为1。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述第一路由器接收所述第一节点发送的第二消息,所述第二消息包括所述第一节点的地址信息,所述第二消息为BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的至少一种。
9.一种区块链节点连接建立装置,其特征在于,应用于区块链***中的第一节点,所述装置包括:
接收模块,用于从第一路由器获取第二节点的地址信息,所述第一路由器和所述第一节点位于第一自治域,所述第二节点位于第二自治域,所述第一自治域和所述第二自治域为邻居自治域,所述第二节点的地址信息包括所述第二节点的标识、所述第二节点的IP地址、所述第二节点的MAC地址或所述第二节点的区块链账号中的至少一种;
处理模块,用于将所述第二节点的地址信息添加至所述第一节点的邻居列表中;
根据所述邻居列表中的地址信息,与所述第二节点建立连接。
10.根据权利要求9所述的装置,其特征在于,
所述接收模块具体用于,从所述第一路由器接收第一消息,所述第一消息包括所述第二节点的地址信息,所述第一消息为边界网关协议BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的其中一种。
11.根据权利要求9或10所述的装置,其特征在于,在所述处理模块根据所述第二节点的地址信息,与所述第二节点建立连接之后,所述处理模块还用于:
与第三节点建立连接,并从所述第三节点获取第一合法节点列表;
从所述第二节点获取第二合法节点列表;
在所述第一合法节点列表和所述第二合法节点列表中确定目标合法节点列表,并根据所述目标合法节点列表进行节点发现。
12.一种区块链节点连接建立装置,其特征在于,应用于区块链***中的第一路由器,所述装置包括:
接收模块,用于获取第二节点的地址信息,所述第二节点位于第二自治域;
发送模块,用于向第一节点发送所述第二节点的地址信息,所述第一路由器和所述第一节点位于第一自治域,所述第一自治域和所述第二自治域为邻居自治域,所述第二节点的地址信息包括所述第二节点的标识、所述第二节点的IP地址、所述第二节点的MAC地址或所述第二节点的区块链账号中的至少一种;所述第一节点用于将所述第二节点的地址信息添加至所述第一节点的邻居列表中并根据所述邻居列表中的地址信息,与所述第二节点建立连接。
13.根据权利要求12所述的装置,其特征在于,
所述发送模块具体用于,向所述第一节点发送第一消息,所述第一消息包括所述第二节点的地址信息,所述第一消息为边界网关协议BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的其中一种。
14.根据权利要求12或13所述的装置,其特征在于,
所述接收模块具体用于,从第二路由器接收第一边界网关协议BGP消息,所述第一BGP消息中包括所述第二节点的地址信息,所述第二路由器位于所述第二自治域。
15.根据权利要求12-14任一项所述的装置,其特征在于,所述装置还包括处理模块,其中,
所述处理模块用于,在所述发送模块向所述第一节点发送所述地址信息之前,获取所述地址信息的自治域路径长度,并确定所述地址信息的自治域路径长度为1,所述自治域路径长度用于指示所述第一路由器接收到所述地址信息时,所述地址信息经过的自治域的个数。
16.根据权利要求14所述的装置,其特征在于,
所述接收模块还用于,接收所述第一节点发送的第二消息,所述第二消息包括所述第一节点的地址信息,所述第二消息为BGP消息、资源公钥基础设施到路由器接口协议RTR消息或自定义接口消息中的至少一种。
CN201910126002.8A 2019-02-20 2019-02-20 区块链节点连接建立方法、装置及设备 Active CN111598564B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910126002.8A CN111598564B (zh) 2019-02-20 2019-02-20 区块链节点连接建立方法、装置及设备
PCT/CN2020/074848 WO2020168954A1 (zh) 2019-02-20 2020-02-12 区块链节点连接建立方法、装置及设备
EP20758912.8A EP3783868B1 (en) 2019-02-20 2020-02-12 Method, apparatus, and device for establishing connection between blockchain nodes
US17/099,382 US20210075590A1 (en) 2019-02-20 2020-11-16 Method and apparatus for establishing blockchain node connection, and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910126002.8A CN111598564B (zh) 2019-02-20 2019-02-20 区块链节点连接建立方法、装置及设备

Publications (2)

Publication Number Publication Date
CN111598564A CN111598564A (zh) 2020-08-28
CN111598564B true CN111598564B (zh) 2023-11-21

Family

ID=72144783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910126002.8A Active CN111598564B (zh) 2019-02-20 2019-02-20 区块链节点连接建立方法、装置及设备

Country Status (4)

Country Link
US (1) US20210075590A1 (zh)
EP (1) EP3783868B1 (zh)
CN (1) CN111598564B (zh)
WO (1) WO2020168954A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112804299B (zh) * 2020-12-30 2023-02-28 成都知道创宇信息技术有限公司 节点测绘方法、装置、测绘设备及可读存储介质
CN112765203B (zh) * 2021-02-04 2023-06-30 北京邮电大学 一种互联网码号资源管理方法及装置
CN113438308B (zh) * 2021-06-23 2022-12-23 上海简苏网络科技有限公司 一种基于区块链的高效通信方法及***
CN113783901B (zh) * 2021-11-15 2022-02-08 湖南宸瀚信息科技有限责任公司 一种基于区块链的多通信节点协同抗攻击网络***
CN113992434B (zh) * 2021-12-24 2022-04-01 杭州趣链科技有限公司 通信方法、***、电子设备及可读存储介质
CN115567541B (zh) * 2022-12-01 2023-03-10 杭州蚂蚁酷爱科技有限公司 区块链网络、节点集合的维护方法及装置

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101102325A (zh) * 2006-11-09 2008-01-09 华为技术有限公司 通告自治***边界连接信息的方法和装置
CN102347903A (zh) * 2011-10-13 2012-02-08 北京星网锐捷网络技术有限公司 一种数据报文转发方法、装置及***
CN106341421A (zh) * 2016-10-31 2017-01-18 杭州云象网络技术有限公司 一种基于区块链技术的数据交换方法
CN106789920A (zh) * 2016-11-25 2017-05-31 深圳前海微众银行股份有限公司 区块链的节点连接方法及装置
WO2017193733A1 (zh) * 2016-05-13 2017-11-16 华为技术有限公司 路由散播的方法和节点
CN108323232A (zh) * 2017-05-16 2018-07-24 北京大学深圳研究生院 一种多层级区块链***之间索引与链拓扑结构的维护方法
CN108494830A (zh) * 2018-02-27 2018-09-04 浙江辉宏地理信息有限公司 一种采用区块链的物联网
WO2018166452A1 (zh) * 2017-03-13 2018-09-20 中兴通讯股份有限公司 一种域级拓扑的建立方法及装置、以及网络***
CN108768856A (zh) * 2018-05-31 2018-11-06 新华三技术有限公司 一种路由处理方法和装置
CN108848111A (zh) * 2018-08-06 2018-11-20 杭州云象网络技术有限公司 一种基于区块链技术的去中心化虚拟专用网络组建方法
CN108966311A (zh) * 2018-07-19 2018-12-07 广东工业大学 一种路由器、终端及网络共享方法、网络记录方法
CN109033143A (zh) * 2018-06-11 2018-12-18 中国科学院广州能源研究所 基于区块链的分布式、分域电网数据处理***及其方法
CN109076344A (zh) * 2016-05-03 2018-12-21 诺基亚美国公司 利用区块链保护用于互联网资源分配的事务

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050068968A1 (en) * 2003-09-30 2005-03-31 Shlomo Ovadia Optical-switched (OS) network to OS network routing using extended border gateway protocol
EP2056558A1 (en) * 2007-10-31 2009-05-06 Panasonic Corporation Server discovery in a neighbour network of an IP node
US8964732B2 (en) * 2011-03-25 2015-02-24 Futurewei Technologies, Inc. System and method for topology transparent zoning in network communications
US20130304927A1 (en) * 2012-05-14 2013-11-14 King Abdulaziz City For Science And Technology Network address translation-based method of bypassing internet access denial
CN104811380B (zh) * 2014-01-26 2018-08-14 华为技术有限公司 一种发送引流路由信息的方法及清洗设备
CA3002034A1 (en) * 2015-10-14 2017-04-20 Cambridge Blockchain, LLC Systems and methods for managing digital identities
US20180041396A1 (en) * 2016-08-04 2018-02-08 Futurewei Technologies, Inc. System and method for topology discovery in data center networks
US11032197B2 (en) * 2016-09-15 2021-06-08 Cisco Technology, Inc. Reroute detection in segment routing data plane
US10630743B2 (en) * 2016-09-23 2020-04-21 Cisco Technology, Inc. Unicast media replication fabric using bit indexed explicit replication
EP3635608A1 (en) * 2017-06-07 2020-04-15 Nchain Holdings Limited Computer-implemented system and method for managing large blocks over a blockchain network
CN107592293A (zh) * 2017-07-26 2018-01-16 阿里巴巴集团控股有限公司 区块链节点间通讯方法、数字证书管理方法、装置和电子设备
KR102417067B1 (ko) * 2017-12-08 2022-07-05 한국전자통신연구원 블록 체인 네트워크의 노드에서 수행되는 블록 생성 방법 및 장치
US20220075892A1 (en) * 2018-01-22 2022-03-10 Baton Systems, Inc. Partitioning data across shared permissioned database storage for multiparty data reconciliation
US10298585B1 (en) * 2018-01-26 2019-05-21 Accenture Global Solutions Limited Blockchain interoperability
US20190251199A1 (en) * 2018-02-14 2019-08-15 Ivan Klianev Transactions Across Blockchain Networks
WO2019227052A1 (en) * 2018-05-24 2019-11-28 Walmart Apollo, Llc System and methods for multi-variant tracking
US10644990B2 (en) * 2018-05-29 2020-05-05 Charter Communications Operating, Llc Border gateway protocol (BGP) security measures along autonomous system (AS) paths
US11375404B2 (en) * 2018-07-16 2022-06-28 Revokind, Inc. Decentralized infrastructure methods and systems
US20200028775A1 (en) * 2018-07-19 2020-01-23 Moac Blockchain Tech Inc Apparatus and Method for Decentralized Anonymous Communication
CN108989220B (zh) * 2018-09-05 2021-04-02 中国联合网络通信集团有限公司 路由方法和路由***
US10893022B1 (en) * 2018-12-20 2021-01-12 Equinix, Inc. Routing protocol security using a distributed ledger
US11398896B2 (en) * 2019-01-11 2022-07-26 Johnson Controls Tyco IP Holdings LLP Building device with blockchain based verification of building device files

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101102325A (zh) * 2006-11-09 2008-01-09 华为技术有限公司 通告自治***边界连接信息的方法和装置
CN102347903A (zh) * 2011-10-13 2012-02-08 北京星网锐捷网络技术有限公司 一种数据报文转发方法、装置及***
CN109076344A (zh) * 2016-05-03 2018-12-21 诺基亚美国公司 利用区块链保护用于互联网资源分配的事务
WO2017193733A1 (zh) * 2016-05-13 2017-11-16 华为技术有限公司 路由散播的方法和节点
CN106341421A (zh) * 2016-10-31 2017-01-18 杭州云象网络技术有限公司 一种基于区块链技术的数据交换方法
CN106789920A (zh) * 2016-11-25 2017-05-31 深圳前海微众银行股份有限公司 区块链的节点连接方法及装置
WO2018166452A1 (zh) * 2017-03-13 2018-09-20 中兴通讯股份有限公司 一种域级拓扑的建立方法及装置、以及网络***
CN108323232A (zh) * 2017-05-16 2018-07-24 北京大学深圳研究生院 一种多层级区块链***之间索引与链拓扑结构的维护方法
CN108494830A (zh) * 2018-02-27 2018-09-04 浙江辉宏地理信息有限公司 一种采用区块链的物联网
CN108768856A (zh) * 2018-05-31 2018-11-06 新华三技术有限公司 一种路由处理方法和装置
CN109033143A (zh) * 2018-06-11 2018-12-18 中国科学院广州能源研究所 基于区块链的分布式、分域电网数据处理***及其方法
CN108966311A (zh) * 2018-07-19 2018-12-07 广东工业大学 一种路由器、终端及网络共享方法、网络记录方法
CN108848111A (zh) * 2018-08-06 2018-11-20 杭州云象网络技术有限公司 一种基于区块链技术的去中心化虚拟专用网络组建方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Maria Apostolaki等.SABRE:Protecting Bitcoin against Routing Attacks.《ARXIV.ORG》.2018,第3-8节. *

Also Published As

Publication number Publication date
EP3783868B1 (en) 2022-08-24
EP3783868A1 (en) 2021-02-24
CN111598564A (zh) 2020-08-28
EP3783868A4 (en) 2021-06-16
US20210075590A1 (en) 2021-03-11
WO2020168954A1 (zh) 2020-08-27

Similar Documents

Publication Publication Date Title
CN111598564B (zh) 区块链节点连接建立方法、装置及设备
US8121136B2 (en) Dynamic discovery mechanisms via inter-domain routing protocol
CN109417508B (zh) 一种分层路径计算单元pce网络拓扑构建方法及装置
RU2521092C2 (ru) Синхронизация ldp и igp для широковещательных сетей
US10693976B2 (en) Method and system for dynamic discovery of service functions
EP2993942A1 (en) Performance-based routing method and device
US20130151445A1 (en) Method and System for Survival of Data Plane Through a Total Control Plane Failure
WO2012103731A1 (zh) 路由器邻居建立方法和设备
US12009984B2 (en) Targeted neighbor discovery for border gateway protocol
US11627067B2 (en) Method for synchronizing topology information in SFC network, and routing network element
US7702765B1 (en) Techniques for automatically creating an iBGP mesh
CN104038427A (zh) 路由更新方法和路由更新装置
CN112398740B (zh) 链路状态路由协议邻接状态机
CN112910704B (zh) 一种支持动态自适应网络配置的局域网***、方法和装置
CN111327530B (zh) 数据发送方法、装置、网络***及交换机
CN113556283A (zh) 路由管理方法及隧道端点设备
CN108259292B (zh) 建立隧道的方法及装置
CN114268583B (zh) 基于sdn的双栈骨干网管理方法、装置、及电子设备
CN113852553A (zh) 流量调度方法及***、sdn控制器

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
GR01 Patent grant
GR01 Patent grant