| CPC H04L 63/123 (2013.01) [G06Q 10/08 (2013.01)] | 18 Claims |

|
1. A method of enabling coordinated executions of distributed computing actions in a distributed computing system with a plurality of local computing agents that are untrusted, the method comprising:
recording, in a blockchain database, a smart contract including a plurality of plans that form a global plan, each one of the plurality of plans including a set of one or more actions to be executed by a respective one of the plurality of local computing agents;
the global plan defines a distributed computing plan, each untrusted local computing agent represented by a blockchain node in the blockchain database, each action comprising a computing action of the distributed computing plan assigned to a respective blockchain node, and the smart contract manages collaboration between the untrusted local computing agents in performing the distributed computing plan;
requesting execution of a first action of a first set of actions forming a first one of the plurality of plans by a first of the plurality of local computing agents;
requesting execution of a second action of a second set of actions forming a second one of the plurality of plans to be executed by a second of the plurality of local computing agents;
determining, based on the smart contract, whether the first action can be executed by the first of the plurality of local computing agents, the determining, based on the smart contract, whether the first action can be executed by the first of the plurality of local computing agents including determining, based on the smart contract, whether a first set of one or more preconditions expected to be satisfied prior to the execution of the first action is satisfied, the first set of one or more preconditions including a state of the distributed computing system being operated through the actions of the first of the plurality of local computing agents;
determining, based on the smart contract, whether the second action can be executed by the second of the plurality of local computing agents, the determining, based on the smart contract, whether the second action can be executed by the second of the plurality of local computing agents including determining, based on the smart contract, whether a second set of one or more preconditions expected to be satisfied prior to the execution of the second action is satisfied, the second set of one or more preconditions including the state of the distributed computing system being operated through the actions of the second of the plurality of local computing agents;
responsive to determining that the first action can be executed, causing the first of the plurality of local computing agents to execute the first action; and
responsive to determining that the second action cannot be executed, causing the second of the plurality of local computing agents to not execute the second action;
receiving a confirmation that the first action is executed and a result of execution of the first action;
determining, based on the smart contract, whether the result of execution of the first action is valid;
responsive to determining that the result of execution of the first action is valid, recording the first action in the blockchain database as part of a set of completed actions;
following the recording of the first action in the blockchain database, causing the second of the plurality of local computing agents to:
determine that the second action can be executed, and
responsive to determining that the second action can be executed, causing the second of the plurality of local computing agents to execute the second action.
|