Skip to content

Releases: valory-xyz/open-autonomy

Jolly Jacobson

22 Mar 14:39
dbe69e4
Compare
Choose a tag to compare

Autonomy:

  • Adds support for using hardware wallets for minting and managing services on-chain
  • Updates the FSM scaffold tool to add the newly scaffolded package to the packages.json after scaffolding the skill
  • Adds support for kubernetes builds on the from-token deployments using --kubernetes flag
  • Adds support for specifying whether the deployment should run directly or not, using --no-deploy flag on the from-deploy command
  • Removes the support for --force flag on the autonomy deploy build command
  • Adds support for configuring networks in a deployment setup to expose various agent ports
  • Adds a naming convention checker for the FSM specifications. From now on
    • A round name should end with Round
    • ABCI app class name should end with AbciApp
  • Deprecates the usage of the special environment variables from the agent deployment setup
  • Adds support for usage of the flashbots ledger plugin on the docker images

Packages:

  • Deprecates the usage of the special environment variables for the agent configurations:
    • In the ABCI skill override don't use TENDERMINT_URL and TENDERMINT_COM_URL for tendermint parameters
    • In the ABCI connection override don't use ABCI_HOST and ABCI_PORT for ABCI connection parameters
    • Tendermint and ABCI connection parameters now use the same environment variables' pattern as all other
      configurations
  • Refactors the AbciAppDB's create(). It is responsible for setting the cross-period keys for the new period
    and converting the corresponding data to the correct format. The skills using the create() method now
    do not need to manually set the data for the next period as this is handled automatically via the
    cross-period keys (#1827)
  • The setup parameters should not be defined as lists anymore (#1833)
  • observation_interval has been renamed to reset_pause_duration (#1836)
  • Adds support for the flashbots ledger plugin (#1885)
  • Adds a flag called use_termination in the configuration to enable or disable the usage of termination (#1891)

Tests:

  • Updates the test to remove the usage of --force flag

Docs:

  • Adds the description column to the package list in the docs
  • Corrects a code snippet in docs
  • Simplifies explanation of what is an agent service

Chores:

  • Updates the workflows to use python 3.10.9 instead of 3.10.10 to avoid timeouts

v0.9.1

23 Feb 16:04
496d718
Compare
Choose a tag to compare

Autonomy:

  • Updates the docker-compose template to enable the usage of host.docker.internal as host machine gateway

Tests:

  • Adds test coverage for newly introduced commands on autonomy analyse group

Docs:

  • Updates the documentation on the usage of custom images in agent deployments.

Chore:

  • Updates the tomte version in the Pipfile

Imaginative Irwin

17 Feb 10:58
bbcfece
Compare
Choose a tag to compare

Autonomy:

  • Updates the on-chain interaction functionalities to wait for the relevant event to make sure the interaction was successful
  • Makes the usage of local tendermint chain optional in the deployment setup
  • Introduces autonomy analyse dialogues command for analysing the dialogue definitions in a skill package
  • Introduces autonomy analyse service command for checking the deployment readiness of a service
  • Introduces autonomy analyse logs command for analysing the agent runtime logs
  • Adds support for defining custom author name for docker images on the autonomy build-image command
  • Removes the usage of MAX_PARTICIPANTS environment variable from deployment setup
  • Adds support for updating the consensus threshold at the runtime using the on-chain metadata

Packages:

  • Makes the synchronized database serializable and hashable
  • Backports the makerDAO multicall2 contract from agent-academy-1 repository
  • Simplifies the way the initial height is set on resets. Now, the initial height will always be 0
  • Removes the need for declaring the payload_attribute on the round class implementation
  • Updates the base rounds to simplify the usage when payloads have multiple attributes
  • Adds support for synchronizing the database on registration so that agents can rejoin at any point
  • Removes reset_index from AbciApp implementation
  • Adds restrictions on which agents can submit in late message round
  • Fixes overlapping blocks by setting unique chain Ids among the tendermint resets
  • Updates the rejoin mechanism to
    • Restart tendermint whenever there's a connection drop, from the abci or otherwise
    • Makes sure monitoring is performed even when tendermint is reset by the tendermint server
    • Clean up timeouts and last_timestamp before trying to restore state received from peers
    • Don't wait for the observation interval in cases when reset is performed for recovery
    • Enables ACN communication for rejoining agents, by accepting requests/responses from all_participants
  • Removes consensus parameter from the skills' configurations and replaces the max_participants with the length of the all_participants list
  • Updates the BaseParams implementation to enforce minimum values for observation_interval
  • Updates the AbciAppDB implementation to make sure cross_period_keys and the database conditions are defined as sets

Tests:

  • Adds test coverage for registry contracts
  • Adds test for building and running the base autonomy image, the agent runtime image and the tendermint server image
  • Re-enables the fuzzer tests for the valory/abci connection on windows platform

Docs:

  • Removes the usage of max_participants parameter
  • Rearranges the on-chain registration section to match with the Autonolas protocol documentation
  • Adds a link to the whitepaper
  • Adds documentation on the deployment readiness checks for a service
  • Adds a guide on initializing an empty local packages repository

Chores:

  • Increases CI timeout for the tests from 70 minutes to 90 minutes
  • Bumps tomte to v0.2.2

Hardworking Hamming

20 Jan 23:06
fa1f616
Compare
Choose a tag to compare

Autonomy:

  • Adds support for minting components using the autonomy mint command group
  • Adds support for managing on chain services using the autonomy service group
  • Updates the autonomy deploy from-token command to use APIs from autonomy.chain module
  • Fixes the bug on the autonomy analyse handlers command by loading all of the dependencies before running a check

Packages:

  • Introduces type checking utility as part of the abstract_round_abci skill
  • Adds support for sharing the recovery parameters on the tendermint protocol and handler
  • Introduces valory/ipfs protocol and connection for handling IPFS uploads and downloads
  • Updates TendermintRecoveryParams implementation to make it compatible for sharing the parameters using the ACN
  • Updates the recovery mechanism in order to first retrieve the Tendermint recovery parameters via the ACN before attempting to reset
  • Enables the usage of libp2p connection on TestTendermintResetInterrup and DEBUG as default logging level
  • Updates the implementation of the base transaction payload class to use data classes and makes them immutable
  • Updates various skill packages to use the new payload class design
  • Transaction is implemented using data class now

Plugins:

  • Updates the TendermintRecoveryParams to clean up the images at the end of the test
  • Adds a fixture for the local IPFS node address

Tests:

  • Adds test coverage for packages/valory/skills/abstract_round_abci/abci_app_chain.py

Docs:

  • Updates documentation on the developer tooling to better explain the usage of benchmarking tools
  • Adds documentation on the usage of the custom docker images for the deployment setup
  • Adds documentation for autonomy mint and autonomy service command groups

Chores:

  • Updates tendermint docker image to use local wait-for-it.sh script instead of downloading from source

Generative Goodfellow

05 Jan 09:26
8d70136
Compare
Choose a tag to compare

Autonomy:

  • Adds support for updating the participants list at the runtime using the on chain metadata of a service
  • Enables the usage of gRPC channel when communicating with the abci connection
  • Updates the tendermint image name constant to make sure it's up to date with the latest framework version

Packages:

  • Adds validation for the setup data and raises early if necessary data are not provided instead of waiting for the first round to happen
  • Removes the fast forward round because it is not meaningful since the setup data cannot be empty
  • Moves all_participants to the setup data
  • Enables the usage of gRPC channel when communicating with the tendermint node
  • Adds meta classes for the AbstractRound and the BaseBehaviour classes to enforce additional checks
  • Fixes typing issues on the synchronized database class
  • Removes the inappropriate usage of the # type: ignore marker and addresses the typing issues properly

Tests:

  • Test coverage for BaseTestEnd2End in the test plugin
  • Test coverage for the abci connection
  • Test coverage for tendermint protocol dialogues
  • Updates hello world e2e test to test the usage of gRPC channel on tendermint node
  • Fixes the inconsistencies regarding the usage of setup and setup_class methods in the test classes
  • Introduces base class for testing test tools
  • Adds tests for transaction settlement integration test tools

Docs:

  • Updates the guide for running a service on different networks
  • Reorganizes the developer tooling section

Chores:

  • Updates the coverage collection in the CI to aggregate the coverage for both framework and the packages

Flamboyant Felten

19 Dec 09:59
b76dd66
Compare
Choose a tag to compare

Autonomy:

  • Removes the need for the agent project when scaffolding an FSM app using specification. Now when scaffolding the FSM app using the -tlr flag, the skill will be directly scaffolded to the local packages directory
  • Updates the FMM scaffolding templates to support defining pre and post conditions for the synchronized data
  • Updates the tendermint communication server
    • GET /params endpoint to return peer_id for the local tendermint node
    • POST /params endpoint to update persistent_peers when updating the chain config

Packages:

  • Fixes the fast_forward_to_behaviour in the abci skill test tools by setting the _current_round_cls which is necessary for retrieving the correct class for the synchronized data
  • Adds support for auto generated behaviour IDs
  • Adds support for auto-generated round IDs
  • Introduces the get_name method as part of the abstract_round_abciskill to retrieve the name of a property dynamically
  • Updates the various packages to to newly introduced auto generate functionalities
  • Removes sleep on reset_tendermint_with_wait on startup
  • Updates the a2a transaction logic to wait for block production to begin before sending an a2a transaction via tendermint
  • Updates the RegistrationStartupBehaviour and TendermintHandler to make sure we update the persistent peers when establishing a new chain
  • Adds support for specifying the external host name for the tendermint P2P connection
  • Introduces pre and post conditions on the synchronized data for each initial and final state of an FSM app (including default pre conditions). These are verified during chaining of the apps
  • Updates all FSM apps to specify their pre- and post-conditions
  • Added message handling support to TmManager.
  • Reset the app hash to the app hash in the begging of the period when hard resetting for recovery

Tests

  • Adds tests for termination_abci
  • Adds tests for docstring analyser when no AbciApp definition is found in the provided module
  • Adds test coverage for autonomy develop command group
  • Introduces pre and post conditions checks on the SynchronizedData for each initial and final state
  • Adds tests for abci connection
  • Adds an e2e test to showcase hard reset being used as a recovery mechanism

v0.5.0.post2

09 Dec 16:05
cb35d86
Compare
Choose a tag to compare

Packages:

  • Fixes synchronized data for safe deployment
  • Ensures that the synchronized data class is set everywhere and added a warning when it is not

Tests:

  • Adds tests for checking PUBLIC_ID in __init__.py files
  • Adds tests for small coverage gaps in open-autonomy
  • Adds tests for registration behaviours
  • Adds tests for abstract_round_abci skill

Chores:

  • Pins tox using tomte on CI

v0.5.0.post1

08 Dec 10:42
7e2c347
Compare
Choose a tag to compare

Autonomy:

  • Patches packages command group to adapt latest changes from open-aea

Packages:

  • Fixes version specifiers for open-aea-test-autonomy and open-aea-ledger-ethereum

Ecstatic Engelbart

06 Dec 16:03
7b66bcf
Compare
Choose a tag to compare

Autonomy:

  • Introduces more flexible approach to defining the overrides for multiple agents in a service component
  • Deprecates the usage of autonomy hash all command, autonomy packages lock can be used to perform package dependency hash updates and checks
  • Updates the override serialisation mechanism to be consistent with the environment variable parser
  • Extends the from-token command to provide password for encrypted private keys at the runtime
  • Updates the process of overriding the safe contract address at the runtime to be more generalised
  • Fixes a bug that allowed the image build to continue even after a command run failed when building the image on build-image command

Packages:

  • Fixes the AbciApp initialization to ensure that synchronized data is retrieved as an instance of the synchronized_data_class specified on the round.
  • Updates the IPFSInteract tool to
    • Catch the broken connection exceptions
    • Remove the correct path before downloading
  • Fixes the tendermint reset mechanism to
    • Avoid race conditions when performing a hard reset
    • Not update the initial height and genesis time when resetting for recovering agent to tendermint communication
    • Update the waiting interval

Tests:

  • Tests for the service config loader
  • Adds test coverage for autonomy framework

Docs:

  • Adds documentation on the usage of the service level overrides
  • Makes sure that naming convention for autonomous services is consistent throughout the documentation

Deterministic Diffie

17 Nov 14:54
6229547
Compare
Choose a tag to compare

Autonomy:

  • Deprecates autonomy analyse abci command group
  • Merges autonomy analyse abci check-app-specs and autonomy analyse generate-app-specs into autonomy analyse fsm-specs
  • Moves autonomy analyse abci check-handlers to autonomy analyse handlers
  • Moves autonomy analyse abci docstrings to autonomy analyse docstrings
  • Moves autonomy analyse abci logs has been moved to autonomy analyse logs
  • Refactors the FSM command definition and extract the code to core and helper modules
  • Updates the error messages on autonomy build-image command
  • Improves error handling on autonomy deploy command group

Plugins:

  • Renames the tag property to image on aea_test_autonomy.docker.base.DockerImage class

Packages:

  • Updates the abstract_round_abci skill to ignore Tendermint blocks with a height lower than the initial height of the Tendermint chain
  • Adds yield statement in CheckTransactionHistoryBehaviour._check_tx_history to avoid freezing the entire behaviour
  • Moves the Tendermint healthcheck from individual round behaviours to the AbstractRoundBehaviour to ensure that Tendermint would reset when the communication is unhealthy
  • Extends ApiSpecs to support getting the response from a list
  • Adds better error logging in the ApiSpecs
  • Adds support to parse error responses to the ApiSpecs
  • Adds backoff logic to the ApiSpecs

Tests:

  • Increases the sleep time in test_async_behaviour_sleep and TestRegistrationStartupBehaviour tests to avoid flakiness
  • Tests for newly introduced code in the ApiSpecs implementation
  • Adds tests for integration test tools on abstract_round_abci skill