Skip to content

Releases: api3dao/airnode

v0.4.1

21 Feb 04:55
Compare
Choose a tag to compare

Heartbeat now passes the API key in the header.

Pre-built Docker images

api3/airnode-deployer

api3/airnode-client

api3/airnode-admin

v0.4.0

09 Feb 14:45
Compare
Choose a tag to compare

Migration

There have been three breaking updates in this release. Since we are on major version zero (i.e., v0.y.z), this only bumps the minor version (v0.3.1->v0.4.0). Please heed the following while migrating your Airnode deployment from an earlier version to v0.4.0 or higher:

  • We introduced string32 to represent UTF-8 encoded text sized 32 bytes, which was referred to as bytes32 before. Now, bytes32 refers to binary data of size 32 bytes, which means the workaround described here is no longer needed. Before migrating to v0.4.0, you should update the templates and request parameters so that the bytes32 values in _type are now string32.

  • The sponsor wallet derivation path for RRP has changed (compare v0.3 docs with v0.4 docs). Before migrating to v0.4, use the admin tooling to derive your new sponsor wallet addresses and make sure that they are funded to avoid any service outage. This is to future-proof the sponsor wallet derivation scheme to allow new protocols to be added, so it is unlikely that such a thing will be needed again.

  • We no longer use DynamoDB locks to block simultaneous deployments of the node on AWS. Due to this change, you are recommended to remove your pre-v0.4 deployment with the deployer image that you used to deploy, then use the post-v0.4 deployer to make a fresh deployment (e.g., if you have a v0.3.1 deployment up, instead of using the v0.4.0 deployer to redeploy in a single step as usual, use the v0.3.1 deployer to remove the previous deployment and use the v0.4.0 deployer to deploy).

Features

You don't need to worry about the above if you are not migrating your Airnode deployment from a previous version. See the v0.4.0 features below:

  • The way RRP requests are handled is reworked to greatly improve request fulfillment throughput
  • The node is stress-tested with the update above, and was able to fulfill ~250 requests/minute on a public Ethereum testnet, both with AWS and GCP deployments.
  • You can now set per-chain limits on the number of requests that will be serviced. This means that the node will not attempt to fulfill all requests received on a chain at a time, but only a number that you have determined. This means an Airnode can serve multiple chains in an isolated way, which is desirable if some of these are testnets (because they are more spammable).
  • The HTTP Gateway is now also supported for GCP
  • We no longer use DynamoDB locks to prevent simultaneous deployments because these pushed the user out of AWS Free Tier if they were running 3 or more Airnodes simultaneously (and the main concern is this happening accidentally due to user error). Now, it is the user's responsibility to make sure that they are not running simultaneous deployments (i.e., make sure to wait until the deployer is done before running it again, or you will have to manually remove your broken deployment).
  • We introduced a new string32 type, which freed up bytes32 to be used to represent binary data. This is handy when the API returns a transaction hash or any other kind of naturally 32 bytes long data.
  • RRP is now given the protocol ID 1, which is used in the sponsor wallet derivation path. The following protocols will be given IDs similarly, and this will allow them to be used in parallel without collisions.
  • The sponsor address and sponsor wallet address can now be relayed as a security scheme
  • Configuration file validation is allowed to be skipped with a flag
  • The serverless deployment no longer validates the configuration file to improve performance. This is now only done by the deployer.

Pre-built Docker images

api3/airnode-deployer

api3/airnode-client

api3/airnode-admin

v0.3.1

09 Dec 10:40
Compare
Choose a tag to compare
  • The v0.3.0 tags were off by one commit. Re-published everything to fix that.

Pre-built Docker images

api3/airnode-deployer
api3/airnode-client
api3/airnode-admin

v0.3.0

09 Dec 10:38
7c4ab92
Compare
Choose a tag to compare
  • Requests can now be specified to return multiple fields and dynamic types. Refer to the docs and our example projects.
  • Requests can now be specified to return a timestamp generated by the Airnode. This allows the requester contract to assess the freshness of the fulfillment, which is required for use-cases such as live data feeds.
  • GCP support! You can now do AWS+GCP deployments for excellent uptime. Note that the HTTP gateway is not supported for GCP yet, as it is treated as an experimental feature and you're probably not using it.
  • The memory and timeout limits of the serverless function handlers are optimized based on the stress tests we have conducted on AWS and GCP
  • Started publishing an additional docker image (api3/airnode-admin) that wraps the admin CLI. This can be used to generate an Airnode mnemonic before the first deployment, and also execute all other admin interactions without having to install any Node.js dependencies.
  • Metadata relay functionality is revised based on the feedback, see the docs. It is now implemented as an OIS security scheme and is much more flexible.

A sincere thank you to our development team on behalf of the API3 community! You can also refer to this blog post for additional information about this release. You can also see the automatically generated CHANGELOG.md files in the individual packages.

v0.2.2

19 Nov 16:22
Compare
Choose a tag to compare
  • Added the required dependencies for the Docker image builds
  • Relaxed validator requirements for nodeVersion

Pre-built Docker images

api3/airnode-deployer
api3/airnode-client

v0.2.1

19 Nov 16:18
Compare
Choose a tag to compare
  • Fixed the root project visibility

v0.2.0

19 Nov 16:14
Compare
Choose a tag to compare

The previous, pre-alpha version of Airnode was a proof of concept that demonstrated features such as

  • Serverless implementation and its containerized form
  • Zero operational costs
  • Statelessness
  • Sponsor-funded request fulfillments
  • Separate transaction queues per sponsor
  • Standardized API integration flow
  • Effortless deployment

This release is the first of the rolling releases that will be continuously building on top of the pre-alpha concept. The major features implemented in this version are:

  • Updated protocol with an initial audit from Certik
  • Added authorizer contracts that enable authorization and monetization of services
  • Migrated from a mix of Serverless Framework and Terraform to pure Terraform for serverless deployments
  • Validator now runs as a step during deployment
  • Variable interpolation between config.json and secrets.env
  • Heartbeat and HTTP gateway for test API calls
  • Improved terminology in implementation and documentation
  • Examples projects now maintained in the monorepo and integrated to CI
  • Extended admin CLI functionality
  • ...

You can also refer to this blog post for additional information about this release. It is difficult to make a complete list of all features due to the discontinuous nature of development until this point. From this point on, a more strict feature list will be kept in release notes, and you will be able to refer to CHANGELOG.md files in individual packages of the monorepo.