IP Library Granted Patent US 11,861,343
Granted Patent B2
US 11,861,343 · App. 17/039,359 · Granted Jan 2, 2024

Systems, apparatus, and methods for updating a programmable device using a distributed ledger

Inventors: Ned M. Smith (Beaverton, OR); Zheng Zhang (Portland, OR); Thiago J. Macieira (Portland, OR)
Assignee: McAfee, LLC
G06F8/65H04L67/34H04L9/3239H04L9/50
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,861,343
App. No.
17/039,359
Granted
Jan 2, 2024
Kind
B2
Abstract

Examples for device-driven auto-recovery using multiple recovery sources are disclosed herein. At least one storage device or storage disk includes instructions that, when executed, cause at least one processor to at least detect a flaw in a first configuration of a program to be installed on a programmable device, the first configuration recorded on a first chain of a distributed ledger of a blockchain; correct the flaw in the first configuration to generate a corrected configuration; commit the corrected configuration to the distributed ledger, the corrected configuration to create a second chain of the distributed ledger; detect an update of the first configuration to a first updated configuration and an update to the corrected configuration to an updated corrected configuration; and prevent the first updated configuration from being installed on the programmable device by replacing the first updated configuration with the updated corrected configuration on the second chain.

Claims (47)

1. A method comprising:

registering, on a distributed ledger of a blockchain and by executing an instruction with at least one processor, a first configuration of software installed on a programmable device, the first configuration applied by a first update entity;

based on a contract associated with the programmable device, the first update entity, and a second update entity, transmitting, prior to application of an update to the software from the first configuration to a second configuration by the second update entity, a first notification indicative of the first configuration of the software to the second update entity, the first update entity different than the second update entity, the contract on the distributed ledger, and the contract defining that the first configuration is to be applied by the first update entity prior to the application of the update by the second update entity;

detecting, by executing an instruction with the at least one processor, the update of the software installed on the programmable device;

registering, on the distributed ledger and by executing instruction with the at least one processor, the second configuration of the software installed on the programmable device; and

transmitting a second notification indicative of the second configuration of the software to the first update entity, the second notification different than the registration of the second configuration on the distributed ledger.

2. The method of claim 1 , wherein the update is a first update and further including:

detecting a second update of the software installed on the programmable device, the second update from the second configuration to a third configuration applied by the first update entity; and

registering the third configuration of the software installed on the programmable device on the distributed ledger.

3. The method of claim 1 , wherein registering the first configuration of the software on the distributed ledger including committing the first configuration of the software to the distributed ledger.

4. The method of claim 1 , further including transmitting the second configuration of the software to the first update entity.

5. The method of claim 1 , wherein the registering of the first configuration of the software on the distributed ledger is to occur prior to the transmitting of the first notification to the second update entity based on the contract associated with the programmable device, the first update entity, and the second update entity.

6. The method of claim 1 , further including:

registering the first configuration of the software on the distributed ledger by generating a first block for the blockchain; and

registering the second configuration of the software on the distributed ledger by generating a second block for the blockchain.

7. At least one machine readable solid state memory, optical disk, or magnetic disk comprising instructions that, when executed, cause a programmable device to at least:

register, on a distributed ledger of a blockchain, a first configuration of software installed on the programmable device, the first configuration applied by a first update entity;

based on a contract associated with the programmable device, the first update entity, and a second update entity, cause transmission of a first notification indicative of the first configuration of the software to the second update entity prior to application of an update to the software from the first configuration to a second configuration by the second update entity, the first update entity different than the second update entity, the contract on the distributed ledger, and the contract defining that the first configuration is to be applied by the first update entity prior to the application of the update by the second update entity;

detect the update of the software installed on the programmable device;

register, on the distributed ledger, the second configuration of the software installed on the programmable device; and

cause transmission of a second notification indicative of the second configuration of the software to the first update entity, the second notification different than the registration of the second configuration on the distributed ledger.

8. The at least one machine readable solid state memory, optical disk, or magnetic disk of claim 7 , wherein the update is a first update and the instructions, when executed, cause the programmable device to:

detect a second update of the software installed on the programmable device, the second update from the second configuration to a third configuration applied by the first update entity; and

register the third configuration of the software installed on the programmable device on the distributed ledger.

9. The at least one machine readable solid state memory, optical disk, or magnetic disk of claim 7 , wherein the instructions, when executed, cause the programmable device to register the first configuration of the software on the distributed ledger by committing the first configuration of the software to the distributed ledger.

10. The at least one machine readable solid state memory, optical disk, or magnetic disk of claim 7 , wherein the instructions, when executed, cause the programmable device to cause transmission of the second configuration of the software to the first update entity.

11. The at least one machine readable solid state memory, optical disk, or magnetic disk of claim 7 , wherein the instructions, when executed, cause the programmable device to register the first configuration of the software on the distributed ledger prior to the transmission of the first notification to the second update entity based on the contract associated with the programmable device, the first update entity, and the second update entity.

12. The at least one machine readable solid state memory, optical disk, or magnetic disk of claim 7 , wherein the instructions, when executed, cause the programmable device to:

register the first configuration of the software on the distributed ledger by generating a first block for the blockchain; and

register the second configuration of the software on the distributed ledger by generating a second block for the blockchain.

13. A system comprising:

memory;

instructions; and

at least one processor to execute the instructions to:

commit, to a distributed ledger of a blockchain, a first configuration of software installed on a programmable device, the first configuration applied by a first update entity;

in response to a request by a second update entity to apply an update to the software from the first configuration to a second configuration and based on a contract associated with the programmable device, the first update entity, and the second update entity, cause transmission of a first notification indicative of the first configuration of the software to the second update entity prior to application of the update by the second update entity, the first update entity different than the second update entity, the contract stored in the distributed ledger, and the contract defining that the first configuration is to be applied by the first update entity prior to the application of the update by the second update entity;

subsequent to the update of the software installed on the programmable device:

commit, to the distributed ledger, the second configuration of the software installed on the programmable device; and

cause transmission of a second notification indicative of the second configuration of the software to the first update entity, the second notification conveyed independent of the distributed ledger.

14. The system of claim 13 , wherein the update is a first update and the at least one processor is to:

detect a second update of the software installed on the programmable device, the second update from the second configuration to a third configuration applied by the first update entity; and

commit the third configuration of the software installed on the programmable device to the distributed ledger.

15. The system of claim 13 , wherein the at least one processor is to cause transmission of the second configuration of the software to the first update entity.

16. The system of claim 13 , wherein the at least one processor is to commit the first configuration of the software to the distributed ledger prior to transmitting the first notification to the second update entity based on the contract associated with the programmable device, the first update entity, and the second update entity.

17. The system of claim 13 , wherein the at least one processor is to:

commit the first configuration of the software to the distributed ledger by generating a first block for the blockchain; and

commit the second configuration of the software to the distributed ledger by generating a second block for the blockchain.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2020
From: SMITH, NED M; ZHANG, ZHENG; MACIEIRA, THIAGO J
To: MCAFEE, INC.
Reel/Frame 054047/0549 →
CHANGE OF NAME Recorded Oct 14, 2020
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 054074/0504 →
Continuity (3)
Continuation 16224013 · Dec 18, 2018
Continuation 15278936 · Sep 28, 2016
Related Publication 20210011708A1 · Jan 14, 2021