IP Library Granted Patent US 10,698,675
Granted Patent B2
US 10,698,675 · App. 15/383,793 · Granted Jun 30, 2020

Decentralized automated software updates via blockchain

Inventors: Luis Angel D. Bathen (Placentia, CA); Gabor Madl (San Jose, CA); Mu Qiao (Belmont, CA); Ramani R. Routray (San Jose, CA)
Assignee: International Business Machines Corporation
G06F8/65H04L9/3239H04L9/3247H04W12/10H04L2209/38
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 10,698,675
App. No.
15/383,793
Granted
Jun 30, 2020
Kind
B2
Abstract

A blockchain of transactions may be referenced for various purposes and may be later accessed by interested parties for ledger verification. One example operation may comprise one or more of identifying an updated software build, creating a hash based on the updated software build, storing the hash of the updated software build in a blockchain, and storing a binary representation of the updated software build in a distributed hash table (DHT).

Claims (66)

1. A method, comprising:

identifying an updated software build;

creating a hash based on the updated software build;

storing the hash of the updated software build in a blockchain;

storing a binary representation of the updated software build in a distributed hash table (DHT);

transmitting the DHT to a plurality of nodes;

responsive to transmitting the DHT to the plurality of nodes, receiving response data from the plurality of nodes;

creating a blockchain transaction comprising the response data; and

transmitting the blockchain transaction to one or more verification nodes for verification based on a smart contract specifying a particular number of verification nodes required for verification of the blockchain transaction.

2. The method of claim 1 , wherein the plurality of nodes are operating on a peer-to-peer network.

3. The method of claim 1 , wherein the response data comprises signed binaries, signatures and metadata.

4. The method of claim 1 , further comprising:

receiving verified blocks from the one or more verification nodes; and

broadcasting the verified blocks to the plurality of nodes.

5. The method of claim 4 , further comprising:

scanning the verified blocks; and

identifying whether the updated software build in the verified blocks is a new software build as compared to a current software build operating on one or more of the plurality of nodes.

6. The method of claim 5 , further comprising:

responsive to identifying the updated software build is a new software build, downloading the new software build from the blockchain;

verifying a signature associated with the new software build; and

applying the new software build to the one or more of the plurality of nodes.

7. The method of claim 1 , further comprising:

determining whether n-out-of-m builders have attested to a validity of the updated software build, and if so, deeming the updated software build valid, wherein ‘n’ is an integer value equal to or less than cm′.

8. An apparatus, comprising:

a processor configured to:

identify an updated software build;

create a hash based on the updated software build;

store the hash of the updated software build in a blockchain; and

store a binary representation of the updated software build in a distributed hash table (DHT);

a transmitter configured to transmit the DHT to a plurality of nodes;

a receiver configured to receive response data from the plurality of nodes, responsive to the DHT being transmitted to the plurality of nodes; and

wherein the processor is further configured to create a blockchain transaction comprising the response data, and the transmitter is further configured to transmit the blockchain transaction to one or more verification nodes for verification based on a smart contract specifying a particular number of verification nodes required for verification of the blockchain transaction.

9. The apparatus of claim 8 , wherein the plurality of nodes are operating on a peer-to-peer network.

10. The apparatus of claim 8 , wherein the response data comprises signed binaries, signatures and metadata.

11. The apparatus of claim 8 , wherein the receiver is configured to receive verified blocks from the one or more verification nodes, and the transmitter is configured to broadcast the verified blocks to the plurality of nodes.

12. The apparatus of claim 11 , wherein the processor is configured to scan the verified blocks, and identify whether the updated software build in the verified blocks is a new software build as compared to a current software build that operate on one or more of the plurality of nodes.

13. The apparatus of claim 12 , further comprising:

responsive to the updated software build being identified as a new software build, the processor is further configured to:

download the new software build from the blockchain,

verify a signature associated with the new software build, and

apply the new software build to the one or more of the plurality of nodes.

14. The apparatus of claim 8 , wherein the processor is further configured to:

determine whether n-out-of-m builders have attested to a validity of the updated software build, and if so, then the processor is further configured to:

deem the updated software build valid, wherein ‘n’ is an integer value equal to or less than cm′.

15. A non-transitory computer readable storage medium configured to store at least one instruction that when executed by a processor causes the processor to perform:

identifying an updated software build;

creating a hash based on the updated software build;

storing the hash of the updated software build in a blockchain;

storing a binary representation of the updated software build in a distributed hash table (DHT);

transmitting the DHT to a plurality of nodes;

responsive to transmitting the DHT to the plurality of nodes, receiving response data from the plurality of nodes;

creating a blockchain transaction comprising the response data; and

transmitting the blockchain transaction to one or more verification nodes for verification based on a smart contract specifying a particular number of verification nodes required for verification of the blockchain transaction.

16. The non-transitory computer readable storage medium of claim 15 , wherein the plurality of nodes are operating on a peer-to-peer network.

17. The non-transitory computer readable storage medium of claim 16 , wherein the response data comprises signed binaries, signatures and metadata.

18. The non-transitory computer readable storage medium of claim 15 , further configured to store at least one instruction that when executed by the processor causes the processor to perform:

receiving verified blocks from the one or more verification nodes; and

broadcasting the verified blocks to the plurality of nodes.

19. The non-transitory computer readable storage medium of claim 18 , further configured to store at least one instruction that when executed by the processor causes the processor to perform:

scanning the verified blocks;

identifying whether the updated software build in the verified blocks is a new software build as compared to a current software build operating on one or more of the plurality of nodes;

responsive to identifying the updated software build is a new software build, downloading the new software build from the blockchain;

verifying a signature associated with the new software build; and

applying the new software build to the one or more of the plurality of nodes.

20. The non-transitory computer readable storage medium of claim 15 , further configured to store at least one instruction that when executed by the processor causes the processor to perform:

determining whether n-out-of-m builders have attested to a validity of the updated software build, and if so, deeming the updated software build valid, wherein ‘n’ is an integer value equal to or less than ‘m’.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2016
From: BATHEN, LUIS ANGEL D.; MADL, GABOR; QIAO, MU; ROUTRAY, RAMANI R.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040673/0798 →
Continuity (1)
Related Publication 20180176229A1 · Jun 21, 2018