# US 12,113,666 B1 · Method and apparatus to coordinate multiple controller devices to serve client requests

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

- Number: US 12,113,666 B1
- Document ID: US12113666B1
- Status: Granted
- Kind: B1
- Application number: 17/720,640
- Filed: 2022-04-14
- Granted: 2024-10-08
- Earliest claimed: 2022-04-14
- Assignees: Zenlayer Innovation LLC
- Applicants: Zenlayer Innovation LLC
- Inventors: Jun Xu; Hao Wang; Seagle Yang
- Web page: https://patentgrep.com/patent/US12113666B1

## CPC

- H04L 41/0806: for initial configuration or provisioning, e.g. plug-and-play
- H04L 9/0825: {using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates}
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L 41/0893: Assignment of logical groups to network elements
- H04L 2209/463: Electronic voting
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods and systems are disclosed to serve client requests in a communication network. In one embodiment, a method may be performed by a controller device to form a first consensus with a first plurality of controller devices to determine a role for the controller device. Upon the controller device being elected as a first single lead controller for the first consensus, the controller device packs a client request with other client requests into a block, validates the packed client requests within the block with the first plurality of controller devices, and seals the block after the packed client requests are validated. The controller device then forms a second consensus with a second plurality of controller devices, the second consensus electing a second single lead controller, the second single lead controller identifying one or more resources to serve the packed client requests in the sealed block.

## Claims

### Claim 1

A method executed by a controller device in coordination with a plurality of other controller devices in a communication network, comprising:
forming a first consensus with a first plurality of controller devices to determine a role for the controller device;
upon being elected as a first single lead controller among the first plurality of controller devices for the first consensus,
packing a client request from a client with other client requests from the client or a different client into a block,
validating the packed client requests within the block with the first plurality of controller devices, wherein the first plurality of controller devices is to confirm that client requests within the block are unaltered and that the client requests within the block are servable by the communication network, and
sealing the block after the packed client requests are validated; and
forming a second consensus with a second plurality of controller devices upon sealing of the block, the second consensus electing a second single lead controller, only the second single lead controller within the second plurality of controller devices identifying one or more resources to serve the packed client requests in the sealed block while other controller devices within the second plurality of controller devices are to confirm that identification of the one or more resources is acceptable.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
prior to forming the first consensus, receiving the client request from a bystander controller, the bystander controller to validate the client request, and after the client request passes the validation, the bystander controller to transmit the client request to the first plurality of controller devices.

### Claim 3 (depends on 2)

The method of claim 2, wherein the bystander controller is to respond with a response to an inquiry issued by a controller device from which the client request is first received, the response by the bystander controller providing provision results that the bystander controller receives upon the packed client requests being served by a provisioning controller device that provisions the one or more identified resources to serve the packed client requests.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
upon being a voter controller in the first consensus, validating the packed client requests within the block, and providing a pass or fail indication.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
upon the packed client requests not being validated within a validation period, forming a new first consensus to determine the role for the controller device to serve the packed client requests.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
upon being a voter controller for the second consensus, validating the one or more resources identified by the second single lead controller to be used to serve the packed client requests.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
forming a third consensus with a third plurality of controller devices to determine the role for the controller device in provisioning the one or more identified resources to serve the packed client requests, and
upon being elected as a third single lead controller for the third consensus, selecting a provisioning controller to provision the one or more identified resources to serve the packed client requests.

### Claim 8 (depends on 7)

The method of claim 7, wherein the provisioning controller is selected based on one or more smart contracts included in the sealed block.

### Claim 9 (depends on 7)

The method of claim 7, wherein the provisioning controller is to provide a result of the provisioning to one or more controller devices upon completion of the provisioning of the one or more resources.

### Claim 10 (depends on 1)

The method of claim 1, wherein the packed client requests are visible to the first plurality of controller devices in the first consensus prior to sealing the block.

### Claim 11 (depends on 1)

The method of claim 1, wherein the second single lead controller identifying the one or more resources to serve the packed client requests comprises executing a resource scheduling application.

### Claim 12 (depends on 11)

The method of claim 11, wherein a public key is used to authenticate the resource scheduling application prior to the second single lead controller identifying the one or more resources to serve the packed client requests.

### Claim 13

A non-transitory machine-readable storage medium coupled to a processor of a controller device in a communication network, wherein the machine-readable storage medium stores instructions, which when executed by the processor, are configured to:
form a first consensus with a first plurality of controller devices to determine a role for the controller device,
upon the controller device being elected as a first single lead controller among the first plurality of controller devices for the first consensus,
pack a client request from a client with other client requests from the client or a different client into a block,
validate the packed client requests within the block with the first plurality of controller devices, wherein the first plurality of controller devices is to confirm that client requests within the block are unaltered and that the client requests within the block are servable by the communication network, and
seal the block after the packed client requests are validated, and
form a second consensus with a second plurality of controller devices upon sealing of the block, the second consensus electing a second single lead controller, only the second single lead controller within the second plurality of controller devices identifying one or more resources to serve the packed client requests in the sealed block while other controller devices within the second plurality of controller devices are to confirm that identification of the one or more resources is acceptable.

### Claim 14 (depends on 13)

The non-transitory machine-readable storage medium of claim 13, wherein the machine-readable storage medium stores instructions, which when executed by the processor, are further configured to:
upon being a voter controller in the first consensus, validate the packed client requests within the block, and provide a pass or fail indication.

### Claim 15 (depends on 13)

The non-transitory machine-readable storage medium of claim 13, wherein the machine-readable storage medium stores instructions, which when executed by the processor, are further configured to:
upon being a voter controller in the second consensus, validate the one or more resources identified by the second single lead controller to be used to serve the packed client requests.

### Claim 16

A controller device to be implemented in a communication network including a plurality of controller devices, the controller device comprising a processor and machine-readable storage medium coupled to the processor, wherein the machine-readable storage medium stores instructions, which when executed by the processor, are configured to:
form a first consensus with a first plurality of controller devices to determine a role for the controller device,
upon the controller device being elected as a first single lead controller among the first plurality of controller devices for the first consensus,
pack a client request from a client with other client requests from the client or a different client into a block,
validating the packed client requests within the block with the first plurality of controller devices, wherein the first plurality of controller devices is to confirm that client requests within the block are unaltered and that the client requests within the block are servable by the communication network, and
sealing the block after the packed client requests are validated; and
forming a second consensus with a second plurality of controller devices upon sealing of the block, the second consensus electing a second single lead controller, only the second single lead controller within the second plurality of controller devices identifying one or more resources to serve the packed client requests in the sealed block while other controller devices within the second plurality of controller devices are to confirm that identification of the one or more resources is acceptable.

### Claim 17 (depends on 16)

The controller device of claim 16, wherein the machine-readable storage medium stores instructions, which when executed by the processor, are further configured to:
form a third consensus with a third plurality of controller devices to determine the role for the controller device in provisioning the one or more identified resources to serve the packed client requests, and
upon being elected as a third single lead controller for the third consensus, select a provisioning controller to provision the one or more identified resources to serve the packed client requests.

### Claim 18 (depends on 17)

The controller device of claim 17, wherein the provisioning controller is selected based on one or more smart contracts included in the sealed block.

### Claim 19 (depends on 17)

The controller device of claim 17, wherein the provisioning controller is to provide a result of the provisioning to one or more controller devices upon completion of the provisioning of the one or more resources.

### Claim 20 (depends on 16)

The controller device of claim 16, wherein the packed client requests are visible to the first plurality of controller devices in the first consensus prior to sealing the block.
