Sequence diagram
Communication
This diagram shows the communication flow between the AEAs and their environment.
sequenceDiagram
activate KeeperAgentInstance
activate ConsensusEngine
activate OtherAgentInstances
activate Blockchain
activate PriceAPI
activate RandomnessSource
Note left of KeeperAgentInstance: HealthCheck
KeeperAgentInstance->>ConsensusEngine: get_status
ConsensusEngine-->>KeeperAgentInstance: ok_response
OtherAgentInstances->>ConsensusEngine: get_status
ConsensusEngine-->>OtherAgentInstances: ok_response
Note left of KeeperAgentInstance: Initialization
ConsensusEngine-->>KeeperAgentInstance: ready_signal
ConsensusEngine-->>OtherAgentInstances: ready_signal
Note left of KeeperAgentInstance: Registration
KeeperAgentInstance->>ConsensusEngine: register_service
KeeperAgentInstance->>ConsensusEngine: search_agents
OtherAgentInstances->>ConsensusEngine: register_service
OtherAgentInstances->>ConsensusEngine: search_agents
ConsensusEngine-->>KeeperAgentInstance: list_of_agents
ConsensusEngine-->>OtherAgentInstances: list_of_agents
Note left of KeeperAgentInstance: Randomness
KeeperAgentInstance->>RandomnessSource: get_randomness
RandomnessSource-->>KeeperAgentInstance: randomness
OtherAgentInstances->>RandomnessSource: get_randomness
RandomnessSource-->>OtherAgentInstances: randomness
Note left of KeeperAgentInstance: KeeperSelection
KeeperAgentInstance->>ConsensusEngine: vote_keeper
OtherAgentInstances->>ConsensusEngine: vote_keeper
ConsensusEngine-->>KeeperAgentInstance: keeper
ConsensusEngine-->>OtherAgentInstances: keeper
Note left of KeeperAgentInstance: DeploySafe
KeeperAgentInstance->>Blockchain: deploy_safe_contract
Blockchain-->>KeeperAgentInstance: contract_adress
KeeperAgentInstance->>ConsensusEngine: contract_adress
Note left of KeeperAgentInstance: ValidateSafe
KeeperAgentInstance->>ConsensusEngine: validate
OtherAgentInstances->>ConsensusEngine: validate
ConsensusEngine-->>KeeperAgentInstance: validated
ConsensusEngine-->>OtherAgentInstances: validated
Note left of KeeperAgentInstance: DeployOracle
KeeperAgentInstance->>Blockchain: deploy_oracle_contract
Blockchain-->>KeeperAgentInstance: contract_adress
KeeperAgentInstance->>ConsensusEngine: contract_adress
Note left of KeeperAgentInstance: ValidateOracle
KeeperAgentInstance->>ConsensusEngine: validate
OtherAgentInstances->>ConsensusEngine: validate
ConsensusEngine-->>KeeperAgentInstance: validated
ConsensusEngine-->>OtherAgentInstances: validated
Note left of KeeperAgentInstance: Observation
KeeperAgentInstance->>PriceAPI: observe_price
PriceAPI-->>KeeperAgentInstance:price_observation
OtherAgentInstances->>PriceAPI: observe_price
PriceAPI-->>OtherAgentInstances: price_observation
KeeperAgentInstance->>ConsensusEngine: collect_observations
ConsensusEngine-->>KeeperAgentInstance: observations
OtherAgentInstances->>ConsensusEngine: collect_observations
ConsensusEngine-->>OtherAgentInstances: observations
Note left of KeeperAgentInstance: Estimation
KeeperAgentInstance->>KeeperAgentInstance: estimate_price
OtherAgentInstances->>OtherAgentInstances: estimate_price
Note left of KeeperAgentInstance: TransactionHash
KeeperAgentInstance->>ConsensusEngine: transaction_hash
Note left of KeeperAgentInstance: Signature
ConsensusEngine-->>OtherAgentInstances: collect_tx
KeeperAgentInstance->>ConsensusEngine: tx_signature
OtherAgentInstances->>ConsensusEngine: tx_signature
ConsensusEngine-->>KeeperAgentInstance: collect_signatures
ConsensusEngine-->>OtherAgentInstances: collect_signatures
Note left of KeeperAgentInstance: Finalization
KeeperAgentInstance->>Blockchain: final_tx
Blockchain-->>KeeperAgentInstance: final_tx_hash
KeeperAgentInstance->>ConsensusEngine: final_tx_hash
ConsensusEngine-->>OtherAgentInstances: final_tx_hash
Note left of KeeperAgentInstance: ValidateTx
KeeperAgentInstance->>ConsensusEngine: validate
OtherAgentInstances->>ConsensusEngine: validate
ConsensusEngine-->>KeeperAgentInstance: validated
ConsensusEngine-->>OtherAgentInstances: validated
Note left of KeeperAgentInstance: End
KeeperAgentInstance->>KeeperAgentInstance: end
OtherAgentInstances->>OtherAgentInstances: end
deactivate KeeperAgentInstance
deactivate ConsensusEngine
deactivate OtherAgentInstances
deactivate Blockchain
deactivate PriceAPI
deactivate RandomnessSource