Patent ID: 11928612
Assignee: SPIDEROAK, INC.
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 0:
1. A non-transitory, computer-readable storage medium comprising instructions that, when executed by at least one processor of a system, cause the system to:
obtain a first directed acyclic graph including multiple nodes and multiple edges connecting the multiple nodes,
wherein a node in the first directed acyclic graph represents a command issued by a computing device among multiple computing devices in a network susceptible to partition,
wherein a process to create a weave of the first directed acyclic graph produces a matching weave when executed on the first directed acyclic graph by two different computing devices among the multiple computing devices,
wherein the weave indicates a linear order of the multiple nodes,
wherein an addition of the node to the multiple nodes associated with the first directed acyclic graph produces a second directed acyclic graph, and
wherein the addition of the node to the first directed acyclic graph changes the weave of the first directed acyclic graph;

obtain a process to reach a global consensus among the multiple computing devices,
wherein the process indicates a criterion associated with the multiple computing devices to satisfy prior to reaching the global consensus;

determine whether the multiple computing devices in the network satisfy the criterion;
upon determining that the multiple computing devices in the network satisfy the criterion, add a node including a finalize command to the first directed acyclic graph to obtain a third directed acyclic graph,
wherein a weave of the third directed acyclic graph cannot change;

upon determining that the multiple computing devices in the network do not satisfy the criterion, refuse to add the finalize command to the first directed acyclic graph;
obtain the weave of the first directed acyclic graph,
wherein each node in the weave indicates the command and a user associated with the command;

evaluate whether the user associated with the command has a permission to issue the command;
upon determining that the user associated with the command does not have the permission to issue the command, refuse to execute the command; and
prevent the command from being executed by protecting the weave and issuing the finalize command.