IP Library Granted Patent US 11,144,645
Granted Patent B2
US 11,144,645 · App. 16/194,548 · Granted Oct 12, 2021

Blockchain technique for immutable source control

Inventors: Bradley C. Herrin (Austin, TX); Xianjun Zhu (Cary, NC); Bo Zhang (Cary, NC); Alexander Sobran (Chapel Hill, NC)
Assignee: International Business Machines Corporation
G06F21/57G06F16/1805G06Q20/382H04L9/0643H04L67/104H04L67/28H04L2209/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 11,144,645
App. No.
16/194,548
Granted
Oct 12, 2021
Kind
B2
Abstract

An example operation may include one or more of intercepting a command from a user to modify a source tree in a source control system, creating a child ledger associated with a master ledger when the intercepted command is destructive, seeking consensus among users of the source tree to approve execution of the intercepted command, merging the child ledger into the master ledger with a transaction describing the intercepted command, a commit tree history, and status of the consensus, and a tree hash, and merging execution results of the intercepted command into a history of the source tree.

Claims (44)

1. A method, comprising:

evaluating, by a proxy, a command from a user of a source control system to modify a source tree in the source control system;

based on the evaluated command being a non-destructive command, passing the non-destructive command directly to the source control system for execution;

based on the evaluated command being a destructive command, creating a child ledger linked to a master ledger;

seeking consensus among users of the source tree to approve execution of the destructive command, wherein the consensus comprises a reply from a pre-defined number of users of the source tree to consent to execute the destructive command;

in response to consensus being reached, merging the child ledger into the master ledger with a transaction describing the destructive command, a commit tree history, and status of the consensus, and a tree hash;

in response to the child ledger being merged into the master ledger, executing the destructive command; and

merging execution results of the intercepted command into the commit tree history.

2. The method of claim 1 , wherein the destructive command unconditionally overwrites the source tree with local work of the user of the source control tree, and wherein a list of commands that are defined as destructive commands is configured in a proxy.

3. The method of claim 1 , wherein the proxy is interposed between the users of the source tree and the source control system, wherein the proxy intercepts the destructive command and initiates a transaction seeking consensus, and wherein a smart contract is embodied on the proxy.

4. The method of claim 1 , wherein non-destructive commands do not change the commit tree history.

5. The method of claim 1 , wherein a configurable consensus rule defines a number of users required for consensus and defines destructive commands.

6. The method of claim 1 , wherein execution of the intercepted command includes updating the master ledger when a required user smart contract consensus standard is met.

7. The method of claim 1 , further comprises:

notifying the user that consensus is not reached to execute the destructive command; and

leaving the commit tree history unchanged.

8. A system, comprising:

a hardware server configured to

evaluate, by a proxy, a command from a user to modify a source tree in a source control system;

based on the evaluated command being a non-destructive command, pass the non-destructive command directly to the source control system for execution;

based on the evaluated command being a destructive command, create a child ledger linked to a master ledger;

seek consensus among users of the source tree to approve execution of the destructive command, wherein the consensus comprises a reply from a pre-defined number of users of the source tree to consent to execute the destructive command;

in response to consensus being reached, merge the child ledger into the master ledger with a transaction describing the intercepted command, a commit tree history, and status of the consensus, and a tree hash;

in response to the child ledger being merged into the master ledger, execute the destructive command; and

merge execution results of the intercepted command into the commit tree history.

9. The system of claim 8 , wherein the destructive command unconditionally overwrites the source tree with local work of the user, and wherein a list of commands that are defined as destructive commands is configured in a proxy.

10. The system of claim 8 , wherein the proxy is interposed between the users of the source tree and the source control system, wherein the proxy intercepts the destructive command and initiates a transaction seeking consensus, and wherein a smart contract is embodied on the proxy.

11. The system of claim 8 , wherein non-destructive commands do not change the commit tree history.

12. The system of claim 8 , wherein a configurable consensus rule defines a number of users required for consensus and defines destructive commands.

13. The system of claim 8 , wherein execution of the intercepted command includes updating the master ledger when a required user smart contract consensus standard is met.

14. The system of claim 8 , wherein the server is further configured to notify the user that consensus is not reached to execute the destructive command; and leave the commit tree history unchanged.

15. A non-transitory computer readable medium comprising instructions, that when read by a processor, cause the processor to perform:

evaluate, by a proxy, a command from a user to modify a source tree in a source control system;

based on the command being a non-destructive command, pass the non-destructive command directly to the source control system for execution;

based on the evaluated command being a destructive command, create a child ledger linked to a master ledger;

seek consensus among users of the source tree to approve execution of the destructive command, wherein the consensus comprises a reply from a pre-defined number of users of the source tree to consent to execute the destructive command;

in response to consensus being reached, merge the child ledger into the master ledger with a transaction describing the intercepted command, a commit tree history, and status of the consensus, and a tree hash;

in response to the child ledger being merged into the master ledger, execute the destructive command; and

merge execution results of the intercepted command into the commit tree history.

16. The non-transitory computer readable medium of claim 15 , wherein the destructive command unconditionally overwrites the source tree with local work of the user, and wherein a list of commands that are defined as destructive commands is configured in a proxy.

17. The non-transitory computer readable medium of claim 15 , wherein the proxy is interposed between the users of the source tree and the source control system, wherein the proxy intercepts the destructive command and initiates a transaction seeking consensus, and wherein a smart contract is embodied on the proxy.

18. The non-transitory computer readable medium of claim 15 , wherein non-destructive commands do not change the commit tree history.

19. The non-transitory computer readable medium of claim 15 , wherein a configurable consensus rule defines a number of users required for consensus and defines destructive commands.

20. The non-transitory computer readable medium of claim 15 , wherein the user is notified that consensus is not reached to execute the destructive command, and the commit tree history is unchanged.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2018
From: HERRIN, BRADLEY C.; ZHU, XIANJUN; ZHANG, BO; SOBRAN, ALEXANDER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 047537/0034 →
Continuity (1)
Related Publication 20200159927A1 · May 21, 2020