# US 12,120,031 B2 · Method for balancing cross-domain broadcast network load of blockchain, computer device, and non-transitory computer-readable storage medium

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

- Number: US 12,120,031 B2
- Document ID: US12120031B2
- Status: Granted
- Kind: B2
- Application number: 17/637,090
- Filed: 2020-08-20
- Published: 2022-07-14
- Granted: 2024-10-15
- Earliest claimed: 2019-08-22
- Assignees: Hangzhou Qulian Technology Co., Ltd.
- Applicants: Hangzhou Qulian Technology Co., Ltd.
- Inventors: Wei Li; Weiwei Qiu; Maifang Hu; Fanglei Huang; Shuai Zhang
- Web page: https://patentgrep.com/patent/US12120031B2

## CPC

- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L 9/3236: {using cryptographic hash functions}
- H04L 41/12: Discovery or management of network topologies
- H04L 45/123: {Evaluation of link metrics (techniques for monitoring network metrics H04L43/08)}
- H04L 45/125: based on throughput or bandwidth
- H04L 45/16: Multipoint routing
- H04L 47/11: Identifying congestion
- H04L 47/15: {in relation to multipoint traffic (arrangements for broadcast or multicast in data networks H04L12/18)}
- H04L 63/12: {Applying verification of the received information (cryptographic mechanisms or cryptographic arrangements for data integrity or data verification H04L9/32)}
- H04L 9/38: Encryption being effected by mechanical apparatus, e.g. rotating cams, switches, keytape punchers
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L 41/0816: the condition being an adaptation, e.g. in response to network events
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for balancing a cross-domain broadcast network load of a blockchain includes is provided. By evenly distributing the load of cross-domain broadcasting to multiple cross-domain nodes, a utilization rate of a blockchain system can be increased, and ability of processing transactions in the blockchain can be improved. A computer device and a non-transitory computer-readable storage medium are further provided.

## Claims

### Claim 1

A method for balancing a cross-domain broadcast network load of a blockchain, comprising:
receiving information of network domains where all hosts in the blockchain are located, and generating a first network topology involved in cross-domain forwarding according to the information of the network domains, wherein nodes in the first network topology are the hosts in the blockchain, and a connection line between two of the nodes indicates that two corresponding ones of the hosts exist in the same network domain;
serving one of the hosts sending a broadcast message as a master node, splitting each of the nodes in the first network topology except the master node into an ingress node of a corresponding node and an egress node of the corresponding node, and connecting a connection line from the ingress node of the corresponding node to the egress node of the corresponding node;
splitting a connection line between two of the nodes in the first network topology into two directed connection lines, wherein each direction is from the egress node of one of the two of the nodes to the ingress node of the other of the two of the nodes, and capacity is N−1; when a connection line exists between the master node in the first network and one of other nodes, the connection line is transformed into a connection line with capacity N−1 from the master node to the ingress node of the one of the other nodes; and adding a virtual node, and adding a connection line with capacity 1 between the egress node of each of the nodes to the virtual node to form a second network topology;
performing, according to capacity C of a connection between two corresponding ones of the nodes, augmenting path searches with capacity 1 for N−1 times from the master node to the virtual node in the second network topology to obtain a search path, wherein N is a number of the nodes in the first network topology; and the virtual node in the search path is removed, and the ingress node of the corresponding node and the egress node of the corresponding node are merged to obtain a routing path of the broadcast message from the master node to a target node; and
sending, when the master node needs to send a message to the target node located in another domain, the message to the target node according to the routing path for processing.

### Claim 2 (depends on 1)

The method for balancing the cross-domain broadcast network load of the blockchain of claim 1, wherein C=(L+U)/2, L represents a lower bound of an edge capacity, U represents an upper bound of the edge capacity, an initial value of L is 0, and an initial value of U is N−1;
before the performing, according to the capacity C of the connection between the two corresponding ones of the nodes, augmenting path searches with capacity 1 for N-1 times from the master node to the virtual node in the second network topology, the method comprises:
obtaining a maximum flow f from the master node to the virtual node in the second network topology; updating, when f=N−1, U=C; otherwise, updating L=C; and calculating a value of C again according to C=(L+U)/2; and
controlling, when U−L≤1, C=U to be as a minimum network load of a corresponding one of the nodes; and otherwise, performing the step of obtaining the maximum flow f from the master node to the virtual node in the second network topology.

### Claim 3 (depends on 1)

The method for balancing the cross-domain broadcast network load of the blockchain of claim 1, wherein the sending the message to the target node according to the routing path for processing comprises:
appending the routing path to an end of the message by the master node and sending the message to a first node in the routing path;
when a node located in the path receives the message, the node checks whether the message contains the routing path; and if yes, a next node in the routing path is obtained and the message is sent to the next node; and
when the target node receives the message and the target node finds out that it is a last node in the routing path, the target node processes content of the message.

### Claim 4 (depends on 1)

The method for balancing the cross-domain broadcast network load of the blockchain of claim 1, wherein the information of the network domains is stored in a configuration file in a form of network domains or IP addresses; and when a network domain of at least one of the nodes changes, the information of the network domains is updated by changing the configuration file.

### Claim 5 (depends on 1)

The method for balancing the cross-domain broadcast network load of the blockchain of claim 1, wherein a stored form of the routing path is node name: node name.

### Claim 6

A computer device, including a memory and a processor, the memory storing computer programs, wherein the processor is configured to execute the computer programs to implement:
receiving information of network domains where all hosts in the blockchain are located, and generating a first network topology involved in cross-domain forwarding according to the information of the network domains, wherein nodes in the first network topology are the hosts in the blockchain, and a connection line between two of the nodes indicates that two corresponding ones of the hosts exist in the same network domain;
serving one of the hosts sending a broadcast message as a master node, splitting each of the nodes in the first network topology except the master node into an ingress node of a corresponding node and an egress node of the corresponding node, and connecting a connection line from the ingress node of the corresponding node to the egress node of the corresponding node;
splitting a connection line between two of the nodes in the first network topology into two directed connection lines, wherein each direction is from the egress node of one of the two of the nodes to the ingress node of the other of the two of the nodes, and capacity is N−1; when a connection line exists between the master node in the first network and one of other nodes, the connection line is transformed into a connection line with capacity N−1 from the master node to the ingress node of the one of the other nodes; and adding a virtual node, and adding a connection line with capacity 1 between the egress node of each of the nodes to the virtual node to form a second network topology;
performing, according to capacity C of a connection between two corresponding ones of the nodes, augmenting path searches with capacity 1 for N−1 times from the master node to the virtual node in the second network topology to obtain a search path, wherein N is a number of the nodes in the first network topology; and the virtual node in the search path is removed, and the ingress node of the corresponding node and the egress node of the corresponding node are merged to obtain a routing path of the broadcast message from the master node to a target node; and
sending, when the master node needs to send a message to the target node located in another domain, the message to the target node according to the routing path for processing.

### Claim 7

A non-transitory computer-readable storage medium, including computer programs stored thereon, wherein the computer programs are executed by a processor to implement:
receiving information of network domains where all hosts in the blockchain are located, and generating a first network topology involved in cross-domain forwarding according to the information of the network domains, wherein nodes in the first network topology are the hosts in the blockchain, and a connection line between two of the nodes indicates that two corresponding ones of the hosts exist in the same network domain;
serving one of the hosts sending a broadcast message as a master node, splitting each of the nodes in the first network topology except the master node into an ingress node of a corresponding node and an egress node of the corresponding node, and connecting a connection line from the ingress node of the corresponding node to the egress node of the corresponding node;
splitting a connection line between two of the nodes in the first network topology into two directed connection lines, wherein each direction is from the egress node of one of the two of the nodes to the ingress node of the other of the two of the nodes, and capacity is N−1; when a connection line exists between the master node in the first network and one of other nodes, the connection line is transformed into a connection line with capacity N−1 from the master node to the ingress node of the one of the other nodes; and adding a virtual node, and adding a connection line with capacity 1 between the egress node of each of the nodes to the virtual node to form a second network topology;
performing, according to capacity C of a connection between two corresponding ones of the nodes, augmenting path searches with capacity 1 for N−1 times from the master node to the virtual node in the second network topology to obtain a search path, wherein N is a number of the nodes in the first network topology; and the virtual node in the search path is removed, and the ingress node of the corresponding node and the egress node of the corresponding node are merged to obtain a routing path of the broadcast message from the master node to a target node; and
sending, when the master node needs to send a message to the target node located in another domain, the message to the target node according to the routing path for processing.

### Claim 8 (depends on 6)

The computer device of claim 6, wherein C=(L+U)/2, L represents a lower bound of an edge capacity, U represents an upper bound of the edge capacity, an initial value of L is 0, and an initial value of U is N−1;
before the performing, according to the capacity C of the connection between the two corresponding ones of the nodes, augmenting path searches with capacity 1 for N−1 times from the master node to the virtual node in the second network topology, the processor is further configured to execute the computer programs to implement:
obtaining a maximum flow f from the master node to the virtual node in the second network topology; updating, when f=N−1, U=C; otherwise, updating L=C; and calculating a value of C again according to C=(L+U)/2; and
controlling, when U−L≤1, C=U to be as a minimum network load of a corresponding one of the nodes; and otherwise, performing the step of obtaining the maximum flow f from the master node to the virtual node in the second network topology.

### Claim 9 (depends on 6)

The computer device of claim 6, wherein the sending the message to the target node according to the routing path for processing comprises:
appending the routing path to an end of the message by the master node and sending the message to a first node in the routing path;
when a node located in the path receives the message, the node checks whether the message contains the routing path; and if yes, a next node in the routing path is obtained and the message is sent to the next node; and
when the target node receives the message and the target node finds out that it is a last node in the routing path, the target node processes content of the message.

### Claim 10 (depends on 6)

The computer device of claim 6, wherein the information of the network domains is stored in a configuration file in a form of network domains or IP addresses; and when a network domain of at least one of the nodes changes, the information of the network domains is updated by changing the configuration file.

### Claim 11 (depends on 6)

The computer device of claim 6, wherein a stored form of the routing path is node name: node name.

### Claim 12 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, wherein C=(L+U)/2, L represents a lower bound of an edge capacity, U represents an upper bound of the edge capacity, an initial value of L is 0, and an initial value of U is N−1;
before the performing, according to the capacity C of the connection between the two corresponding ones of the nodes, augmenting path searches with capacity 1 for N-1 times from the master node to the virtual node in the second network topology, the processor is further configured to execute the computer programs to implement:
obtaining a maximum flow f from the master node to the virtual node in the second network topology; updating, when f=N−1, U=C; otherwise, updating L=C; and calculating a value of C again according to C=(L+U)/2; and
controlling, when U−L≤1, C=U to be as a minimum network load of a corresponding one of the nodes; and otherwise, performing the step of obtaining the maximum flow f from the master node to the virtual node in the second network topology.

### Claim 13 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, wherein the sending the message to the target node according to the routing path for processing comprises:
appending the routing path to an end of the message by the master node and sending the message to a first node in the routing path;
when a node located in the path receives the message, the node checks whether the message contains the routing path; and if yes, a next node in the routing path is obtained and the message is sent to the next node; and
when the target node receives the message and the target node finds out that it is a last node in the routing path, the target node processes content of the message.

### Claim 14 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, wherein the information of the network domains is stored in a configuration file in a form of network domains or IP addresses; and when a network domain of at least one of the nodes changes, the information of the network domains is updated by changing the configuration file.

### Claim 15 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, wherein a stored form of the routing path is node name: node name.
