packages.valory.skills.registration_
abci.behaviours
This module contains the behaviours for the 'abci' skill.
RegistrationBaseBehaviour Objects
class RegistrationBaseBehaviour(BaseBehaviour, ABC)
Agent registration to the FSM App.
async_
act
def async_act() -> Generator
Do the action.
Steps: - Build a registration transaction. - Send the transaction and wait for it to be mined. - Wait until ABCI application transitions to the next round. - Go to the next behaviour (set done event).
RegistrationStartupBehaviour Objects
class RegistrationStartupBehaviour(RegistrationBaseBehaviour)
Agent registration to the FSM App.
initial_
tm_
configs
@property
def initial_tm_configs() -> Dict[str, Dict[str, Any]]
A mapping of the other agents' addresses to their initial Tendermint configuration.
initial_
tm_
configs
@initial_tm_configs.setter
def initial_tm_configs(configs: Dict[str, Dict[str, Any]]) -> None
A mapping of the other agents' addresses to their initial Tendermint configuration.
LogMessages Objects
class LogMessages(Enum)
Log messages used in RegistrationStartupBehaviour
__
str__
def __str__() -> str
For ease of use in formatted string literals
tendermint_
parameter_
url
@property
def tendermint_parameter_url() -> str
Tendermint URL for obtaining and updating parameters
is_
correct_
contract
def is_correct_contract(
service_registry_address: str) -> Generator[None, None, bool]
Contract deployment verification.
get_
agent_
instances
def get_agent_instances(
service_registry_address: str,
on_chain_service_id: int) -> Generator[None, None, Dict[str, Any]]
Get service info available on-chain
get_
addresses
def get_addresses() -> Generator
Get addresses of agents registered for the service
get_
tendermint_
configuration
def get_tendermint_configuration() -> Generator[None, None, bool]
Make HTTP GET request to obtain agent's local Tendermint node parameters
request_
tendermint_
info
def request_tendermint_info() -> Generator[None, None, bool]
Request Tendermint info from other agents
format_
genesis_
data
def format_genesis_data(
collected_agent_info: Dict[str, Any]) -> Dict[str, Any]
Format collected agent info for genesis update
request_
update
def request_update() -> Generator[None, None, bool]
Make HTTP POST request to update agent's local Tendermint node
wait_
for_
block
def wait_for_block(timeout: float) -> Generator[None, None, bool]
Wait for a block to be received in the specified timeout.
async_
act
def async_act() -> Generator
Do the action.
Steps: 1. Collect personal Tendermint configuration 2. Make Service Registry contract call to retrieve addresses of the other agents registered on-chain for the service. 3. Request Tendermint configuration from registered agents. This is done over the Agent Communication Network using the p2p_libp2p_client connection. 4. Update Tendermint configuration via genesis.json with the information of the other validators (agents). 5. Restart Tendermint to establish the validator network.
RegistrationBehaviour Objects
class RegistrationBehaviour(RegistrationBaseBehaviour)
Agent registration to the FSM App.
AgentRegistrationRoundBehaviour Objects
class AgentRegistrationRoundBehaviour(AbstractRoundBehaviour)
This behaviour manages the consensus stages for the registration.