Enable canisters to make HTTP(S) requests

Dear community!

We are happy to announce that, after many months of hard engineering work, the public rollout of the HTTPS outcalls feature has been started and the feature has been rolled out to a subset of the IC’s subnets already by now! This enables, for the first time in blockchain history, smart contracts to directly talk to Web 2.0 servers without the need for an oracle.

Last week, we made the final implementation changes to the replica code base as required for the rollout of the HTTPS outcalls feature. The replica version 4bd164bb containing those changes was elected this Monday, Sep 26, by NNS proposal 82425. This replica version has since started to be rolled out to the subnets of the IC using the standard process of updating the subnets one by one over the course of a week. The subnet fuqsr has been updated to the latest replica on Tuesday with NNS proposal 83069 for the purpose of smoke testing the HTTPS outcalls feature before the wider rollout, which has been successfully concluded on Tuesday.

The team has meanwhile proposed activation of the HTTPS outcalls feature on multiple subnets of the IC as shown in the following NNS proposals, all of which have been accepted and executed already.

Towards an IC-wide rollout, the feature will be progressively activated on further subnets of the IC that have been updated to the latest replica version.

The feature is flagged as experimental initially until we have gained some operational experience with it in the wild (i.e., on IC mainnet). Also, we will release an API upgrade that simplifies the implementation of transformation functions for certain classes of APIs and allows for covering an even wider set of HTTP APIs in the near future. This change will be a breaking API change, which is another reason for flagging the feature as experimental for now.

You can use the feature on subnets on which it has been activated already now. Soon, all application subnets of the IC will have the feature activated. You need to upgrade to the latest beta version of the development tools (dfx 0.12.0-beta.3) in order to code with the feature. As this is a beta version, please install using the following command:

DFX_VERSION=0.12.0-beta.3 sh -ci "$(curl -fsSL https://internetcomputer.org/install.sh)"

Further information

Some links to informative information sources are provided next. For those among you who want to get started coding HTTPS outcalls right away, we recommend to dive into the documentation immediately.

Many thanks to the team working on the feature for their excellent work!

Happy coding!

34 Likes