IP Library › Granted Patent US 11,757,642
Granted Patent B1
US 11,757,642 · App. 17/867,061 · Granted Sep 12, 2023

Systems and methods for decentralized synchronization and braided conflict resolution

Inventor: Jonathan Andrew Crockett Moore (Portland, OR)
Assignee: SpiderOak, Inc.
H04L9/3213G06F21/62H04L9/50H04L63/101H04L63/102
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,757,642
App. No.
17/867,061
Granted
Sep 12, 2023
Kind
B1
Abstract

A conflict-free method of independently governing user authority across one or more devices includes managing user and device authority without the use of a centralized server. The conflict-free method utilizes a conflict-free replicated data type (CRDT) which resolves potential conflicts between merging linear sequences. A first linear sequence at a first electronic device merges with a second linear sequence at a second electronic device. The first linear sequence and the second linear sequence are different due to independent processes performed on devices that are not connected via a network at some point in time. Potential conflicts between the first linear sequence and the second linear sequence are resolved in accordance with CRDTs.

Claims (62)

1. A conflict-free method of independently governing user authority across one or more devices, the conflict-free method comprising:

receiving, at a first electronic device of a set of electronic devices, a first linear sequence defining a set of blocks, the set of blocks comprising:

a first block defining a policy specifying a role and an authority associated with the role, the role associated with at least one operation; and

a second block comprising a unique user ID identifying a user and associating the unique user ID with the role and the authority associated with the role as specified in the policy;

after receiving the first linear sequence, performing, using the first electronic device, the at least one operation in accordance with the role, the authority associated with the role, and the associated unique user ID, the at least one operation being performed when the first electronic device is not in communication with other electronic devices of the set of electronic devices;

creating, at the first electronic device, a second linear sequence by appending a third block corresponding to performance of the at least one operation to the first linear sequence;

after creating the second linear sequence and using the first electronic device, communicating with a second electronic device of the set of electronic devices to receive a third linear sequence;

merging, at the first electronic device, the second linear sequence and the third linear sequence to generate a fourth linear sequence having characteristics of both the second linear sequence and the third linear sequence;

while the first electronic device is not in communication with the other electronic devices, revoking the authority;

at a time after the authority is revoked, establishing a connection between the first electronic device and the other electronic devices; and

in accordance with establishing the connection, reverting any action associated with the unique user ID after the authority was revoked.

2. The conflict-free method of claim 1 , further comprising:

identifying a conflict between the second linear sequence and the third linear sequence;

in accordance with identifying the conflict, using the policy to determine which of the second linear sequence or the third linear sequence is a controlling linear sequence and which of the second linear sequence or the third linear sequence is a deferential linear sequence; and

in accordance with the conflict, using the controlling linear sequence to modify the deferential linear sequence to eliminate the conflict.

3. The conflict-free method of claim 2 , wherein the conflict corresponds to the unique user ID being at least partially stripped of at least one of the role or the authority associated with the role while the first electronic device was not in communication with other electronic devices.

4. The conflict-free method of claim 1 , further comprising:

identifying a conflict between the second linear sequence and the third linear sequence; and

in accordance with identifying the conflict, rolling back all operations of the second linear sequence that differ from the first linear sequence.

5. The conflict-free method of claim 1 , further comprising:

identifying a conflict between the second linear sequence and the third linear sequence;

identifying a checkpoint node; and

in accordance with identifying the conflict and the checkpoint node, preventing any modification to the second linear sequence with respect to operations performed before the checkpoint node.

6. The conflict-free method of claim 1 , wherein the first linear sequence, the second linear sequence, and the third linear sequence comprise one or more conflict-free replicated data types.

7. The conflict-free method of claim 1 , wherein:

the first electronic device is a satellite or an electronic device on the satellite;

the other electronic devices of the set of electronic devices are terrestrial electronic devices; and

the satellite or the electronic device on the satellite can perform operations in accordance with the role, the authority associated with the role, and the associated unique user ID, even when not in communication with the terrestrial electronic devices from which at least one of the role and the authority associated with the role were obtained.

8. A system comprising:

at least one processor; and

memory coupled to the at least one processor, the memory comprising computer-executable instructions that, when executed by the at least one processor, operate to:

receive, at the at least one processor, a first linear sequence defining a set of blocks, the set of blocks comprising:

a first block defining a policy specifying a role and an authority associated with the role, the role associated with at least one operation; and

a second block comprising a unique user ID identifying a user and associating the unique user ID with the role and the authority associated with the role as specified in the policy;

after receiving the first linear sequence, perform, using the at least one processor, the at least one operation in accordance with the role, the authority associated with the role, and the associated unique user ID;

create, at the at least one processor, a second linear sequence by appending a third block corresponding to performance of the at least one operation to the first linear sequence;

after creating the second linear sequence and using the at least one processor, receive a third linear sequence from a network;

merge, at the at least one processor, the second linear sequence and the third linear sequence to generate a fourth linear sequence having characteristics of both the second linear sequence and the third linear sequence;

while the at least one processor is not in communication with the network, revoking the authority;

at a time after the authority is revoked, establishing a connection between the at least one processor and the network; and

in accordance with establishing the connection, reverting any action associated with the unique user ID after the authority was revoked.

9. The system of claim 8 , wherein the fourth linear sequence is generated in a conflict-free manner.

10. The system of claim 8 , wherein the at least one processor is not in communication with a network from which the third linear sequence is received when the second linear sequence is created.

11. The system of claim 8 , wherein the at least one processor is in orbit of the Earth when the second linear sequence is created.

12. The system of claim 8 , wherein the second linear sequence is not identical to the third linear sequence before the merger between the second linear sequence and the third linear sequence.

13. A non-transitory computer-readable storage medium storing computer instructions, which when executed by one or more computer processors cause the one or more computer processors to:

receive a first linear sequence defining a set of blocks, the set of blocks comprising:

a first block defining a policy specifying a role and an authority associated with the role, the role associated with at least one operation; and

a second block comprising a unique user ID identifying a user and associating the unique user ID with the role and the authority associated with the role as specified in the policy;

after receiving the first linear sequence, perform, using the at least one processor, the at least one operation in accordance with the role, the authority associated with the role, and the associated unique user ID;

create, at the at least one processor, a second linear sequence by appending a third block corresponding to performance of the at least one operation to the first linear sequence;

after creating the second linear sequence and using the at least one processor, receive a third linear sequence from a network;

merge, at the at least one processor, the second linear sequence and the third linear sequence to generate a fourth linear sequence having characteristics of both the second linear sequence and the third linear sequence;

while the one or more computer processors are not in communication with the network, revoking the authority;

at a time after the authority is revoked, establishing a connection between the one or more computer processors and the network; and

in accordance with establishing the connection, reverting any action associated with the unique user ID after the authority was revoked.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the fourth linear sequence is generated in a conflict-free manner.

15. The non-transitory computer-readable storage medium of claim 13 , wherein the one or more computer processors are not in communication with a network from which the third linear sequence is received when the second linear sequence is created.

16. The non-transitory computer-readable storage medium of claim 13 , wherein the one or more computer processors are in orbit of the Earth when the second linear sequence is created.

17. The non-transitory computer-readable storage medium of claim 13 , wherein the second linear sequence is not identical to the third linear sequence before the merger between the second linear sequence and the third linear sequence.

18. The non-transitory computer-readable storage medium of claim 13 , wherein merging the second linear sequence and the third linear sequence is performed while the one or more computer processors are not in communication with the network.

19. The non-transitory computer-readable storage medium of claim 13 , wherein the network contains a main blockchain different from the third linear sequence due to a fork.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2022
From: MOORE, JONATHAN ANDREW CROCKETT
To: SPIDEROAK, INC.
Reel/Frame 060536/0275 →
Cited By (1)
US 12,580,762