Releases: api3dao/airnode
v0.4.1
Heartbeat now passes the API key in the header.
Pre-built Docker images
v0.4.0
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 asbytes32
before. Now,bytes32
refers to binary data of size 32 bytes, which means the workaround described here is no longer needed. Before migrating tov0.4.0
, you should update the templates and request parameters so that thebytes32
values in_type
are nowstring32
. -
The sponsor wallet derivation path for RRP has changed (compare
v0.3
docs withv0.4
docs). Before migrating tov0.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 av0.3.1
deployment up, instead of using thev0.4.0
deployer to redeploy in a single step as usual, use thev0.3.1
deployer to remove the previous deployment and use thev0.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 upbytes32
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
v0.3.1
- 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
- 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 anyNode.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
- Added the required dependencies for the Docker image builds
- Relaxed validator requirements for
nodeVersion
Pre-built Docker images
v0.2.1
- Fixed the root project visibility
v0.2.0
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
andsecrets.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.