# US 11,310,321 B2 · Methods and devices for establishing communication between nodes in blockchain system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,310,321 B2
- Document ID: US11310321B2
- Status: Granted
- Kind: B2
- Application number: 16/474,933
- Filed: 2019-02-01
- Published: 2020-12-03
- Granted: 2022-04-19
- Earliest claimed: 2019-02-01
- Assignees: Advanced New Technologies Co., Ltd.
- Applicants: Advanced New Technologies Co., Ltd.
- Inventors: Yitong Qi; Jiang Wang
- Web page: https://patentgrep.com/patent/US11310321B2

## CPC

- H04L 67/141: Setup of application sessions (admission control or resource allocation in data switching networks H04L47/70)
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L 67/143: Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Disclosed herein are methods, devices, and apparatuses, including computer programs stored on computer-readable media, for establishing communication between a first node and a second node in a blockchain system. One of the methods includes: the first node providing a node identifier of the first node to the second node and receiving a node identifier of the second node from the second node, to cause a first communication session to be established between the first node and the second node; the first node determining whether a second communication session exists between the first node and the second node; and in response to a determination that the second communication session exists between the first node and the second node, terminating one of the first communication session and the second communication session based on the node identifier of the first node and the node identifier of the second node.

## Claims

### Claim 1

A computer-implemented method for establishing communication between a first node and a second node in a blockchain system, the method comprising:
providing, by the first node, a node identifier of the first node to the second node and receiving, by the first node, a node identifier of the second node from the second node, to cause a first communication session to be established between the first node and the second node, the first node and the second node participating in the blockchain system to manage one or more blockchains;
determining, by the first node, whether a second communication session exists between the first node and the second node; and
in response to a determination that the second communication session exists between the first node and the second node, terminating, by the first node, one of the first communication session and the second communication session based on the node identifier of the first node and the node identifier of the second node, the terminating comprising:
determining a node of the first node and the second node that has one of: a greater node identifier or a smaller node identifier;
determining a communication session of the first communication session and the second communication session that is established based on a connection request sent from the determined node; and
selecting the determined communication session of the first communication session and the second communication session for termination.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
terminating, by the first node, a connection between the first node and the second node, the one of the first communication session and the second communication session being established on the connection.

### Claim 3 (depends on 1)

The method of claim 1, before providing, by the first node, a node identifier of the first node to the second node and receiving, by the first node, a node identifier of the second node from the second node, further comprising one of:
sending, by the first node, a first connection request to the second node to establish a connection between the first node and the second node; or
receiving, by the first node, a second connection request from the second node to establish the connection between the first node and the second node.

### Claim 4 (depends on 3)

The method of claim 3, before the connection is established between the first node and the second node, further comprising:
determining, by the first node, whether a prior communication session exists between the first node and the second node; and
in response to a determination that no prior communication session exists between the first node and the second node, sending, by the first node, the first connection request to an Internet Protocol (IP) address associated with the second node to establish the connection between the first node and the second node.

### Claim 5 (depends on 3)

The method of claim 3, after the connection is established between the first node and the second node, further comprising:
determining, by the first node, whether a prior communication session exists between the first node and the second node; and
in response to a determination that no prior communication session exists between the first node and the second node, performing, by the first node, the providing the node identifier of the first node to the second node and the receiving the node identifier of the second node from the second node.

### Claim 6 (depends on 3)

The method of claim 3, wherein a Transmission Control Protocol (TCP) connection is established as the connection between the first node and the second node, the method further comprising:
establishing the first communication session based on the TCP connection.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
encrypting, by the first node, the node identifier of the first node using a private key of the first node, before providing the node identifier of the first node to the second node.

### Claim 8

A computing device for establishing communication between a first node and a second node in a blockchain system, the computing device comprising:
one or more processors; and
one or more computer-readable memories coupled to the one or more processors and having instructions stored thereon that are executable by the one or more processors, wherein the one or more processors are configured to:
provide a node identifier of the first node to the second node and receive a node identifier of the second node from the second node, to cause a first communication session to be established between the first node and the second node, the first node and the second node participating in the blockchain system to manage one or more blockchains;
determine whether a second communication session exists between the first node and the second node; and
in response to a determination that the second communication session exists between the first node and the second node, terminate one of the first communication session and the second communication session based on the node identifier of the first node and the node identifier of the second node, wherein in terminating one of the first communication session and the second communication session, the one or more processors are further configured to:
determine a node of the first node and the second node that has one of: a greater node identifier or a smaller node identifier;
determine a communication session of the first communication session and the second communication session that is established based on a connection request sent from the determined node; and
select the determined communication session of the first communication session and the second communication session for termination.

### Claim 9

A non-transitory computer-readable medium having stored therein instructions that, when executed by a processor of a computing device, cause the computing device to perform a method for establishing communication between a first node and a second node in a blockchain system, the method comprising:
providing, by the first node, a node identifier of the first node to the second node and receiving, by the first node, a node identifier of the second node from the second node, to cause a first communication session to be established between the first node and the second node, the first node and the second node participating in the blockchain system to manage one or more blockchains;
determining, by the first node, whether a second communication session exists between the first node and the second node; and
in response to a determination that the second communication session exists between the first node and the second node, terminating, by the first node, one of the first communication session and the second communication session based on the node identifier of the first node and the node identifier of the second node, the terminating comprising:
determining a node of the first node and the second node that has one of: a greater node identifier or a smaller node identifier;
determining a communication session of the first communication session and the second communication session that is established based on a connection request sent from the determined node; and
selecting the determined communication session of the first communication session and the second communication session for termination.

### Claim 10 (depends on 8)

The computing device of claim 8, wherein the one or more processors are further configured to:
terminate a connection between the first node and the second node, the one of the first communication session and the second communication session being established on the connection.

### Claim 11 (depends on 8)

The computing device of claim 8, wherein before providing the node identifier of the first node to the second node and receiving the node identifier of the second node from the second node, the one or more processors are further configured to perform one of:
sending a first connection request to the second node to establish a connection between the first node and the second node; or
receiving a second connection request from the second node to establish the connection between the first node and the second node.

### Claim 12 (depends on 11)

The computing device of claim 11, wherein before the connection is established between the first node and the second node, the one or more processors are further configured to:
determine whether a prior communication session exists between the first node and the second node; and
in response to a determination that no prior communication session exists between the first node and the second node, send the first connection request to an Internet Protocol (IP) address associated with the second node to establish the connection between the first node and the second node.

### Claim 13 (depends on 11)

The computing device of claim 11, wherein after the connection is established between the first node and the second node, the one or more processors are further configured to:
determine whether a prior communication session exists between the first node and the second node; and
in response to a determination that no prior communication session exists between the first node and the second node, provide the node identifier of the first node to the second node and the receive the node identifier of the second node from the second node.

### Claim 14 (depends on 11)

The computing device of claim 11, wherein a Transmission Control Protocol (TCP) connection is established as the connection between the first node and the second node, and the one or more processors are further configured to:
establish the first communication session based on the TCP connection.

### Claim 15 (depends on 8)

The computing device of claim 8, wherein the one or more processors are further configured to:
encrypt the node identifier of the first node using a private key of the first node, before providing the node identifier of the first node to the second node.
