Releases: valory-xyz/open-autonomy
Releases · valory-xyz/open-autonomy
Jolly Jacobson
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 thefrom-token
deployments using--kubernetes
flag - Adds support for specifying whether the deployment should run directly or not, using
--no-deploy
flag on thefrom-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
- A round name should end with
- 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
andTENDERMINT_COM_URL
for tendermint parameters - In the ABCI connection override don't use
ABCI_HOST
andABCI_PORT
for ABCI connection parameters - Tendermint and ABCI connection parameters now use the same environment variables' pattern as all other
configurations
- In the ABCI skill override don't use
- Refactors the
AbciAppDB
'screate()
. 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 thecreate()
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 toreset_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 of3.10.10
to avoid timeouts
v0.9.1
Autonomy:
- Updates the
docker-compose
template to enable the usage ofhost.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 thePipfile
Imaginative Irwin
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
andhashable
- Backports the
makerDAO multicall2
contract fromagent-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
fromAbciApp
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
andlast_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 acceptingrequests/responses
fromall_participants
- Removes
consensus
parameter from the skills' configurations and replaces themax_participants
with the length of theall_participants
list - Updates the
BaseParams
implementation to enforce minimum values forobservation_interval
- Updates the
AbciAppDB
implementation to make surecross_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 from70
minutes to90
minutes - Bumps
tomte
tov0.2.2
Hardworking Hamming
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 fromautonomy.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 handlingIPFS
uploads and downloads - Updates
TendermintRecoveryParams
implementation to make it compatible for sharing the parameters using theACN
- Updates the recovery mechanism in order to first retrieve the
Tendermint
recovery parameters via theACN
before attempting to reset - Enables the usage of
libp2p
connection onTestTendermintResetInterrup
andDEBUG
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
andautonomy service
command groups
Chores:
- Updates
tendermint
docker image to use localwait-for-it.sh
script instead of downloading from source
Generative Goodfellow
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 theabci
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 theBaseBehaviour
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 ofgRPC
channel on tendermint node - Fixes the inconsistencies regarding the usage of
setup
andsetup_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
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 returnpeer_id
for the local tendermint nodePOST /params
endpoint to updatepersistent_peers
when updating the chain config
Packages:
- Fixes the
fast_forward_to_behaviour
in theabci
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 theabstract_round_abci
skill 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 ana2a
transaction via tendermint - Updates the
RegistrationStartupBehaviour
andTendermintHandler
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
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
usingtomte
on CI
v0.5.0.post1
Autonomy:
- Patches packages command group to adapt latest changes from
open-aea
Packages:
- Fixes version specifiers for
open-aea-test-autonomy
andopen-aea-ledger-ethereum
Ecstatic Engelbart
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 thesynchronized_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
Autonomy:
- Deprecates
autonomy analyse abci
command group - Merges
autonomy analyse abci check-app-specs
andautonomy analyse generate-app-specs
intoautonomy analyse fsm-specs
- Moves
autonomy analyse abci check-handlers
toautonomy analyse handlers
- Moves
autonomy analyse abci docstrings
toautonomy analyse docstrings
- Moves
autonomy analyse abci logs
has been moved toautonomy 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 toimage
onaea_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 theApiSpecs
- 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
andTestRegistrationStartupBehaviour
tests to avoid flakiness - Tests for newly introduced code in the
ApiSpecs
implementation - Adds tests for integration test tools on
abstract_round_abci
skill