Enable canisters to make HTTP(S) requests

It is the most recent one, 0.12.0-beta.3, released earlier this week.

4bd164bbc600421a2e6f93feb41f3d1479bb8d0f

Stay tuned for more information tomorrow morning Swiss time!

1 Like

It’s not morning yet, but I can say: Latest release (EDIT: that’s SDK release) does NOT yet contain this commit. The next time we update the replica version the change will be included

@lastmjs, @Severin:
The 0.12.0-beta.3 contains an earlier replica version (9173c5f1b28e140931060b90e9de65b923ee57e6) than the one being rolled out in mainnet (4bd164bbc600421a2e6f93feb41f3d1479bb8d0f), but it has everything we need regarding the latest changes for the feature.
You need to install the beta.3 version, e.g., by using the following command:
DFX_VERSION=0.12.0-beta.3 sh -ci "$(curl -fsSL https://internetcomputer.org/install.sh)"

2 Likes

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

Congratulations on the launch and the amazing work done by the team! :face_holding_back_tears:

1 Like

I deploy the sample code,but the canister did not return any icp price. How can i to solve this probloem?

3 Likes

Hi @heyuanxun , there are some updates to the sample dapp that is going through review, and expect to be merged this week. If you would like, please feel free to download from the branch and try.

5 Likes

I did all of the upgrades and pushed to the IC… still not working. It works on local with DFX 0.12 and the transform in the updates.

Is the change on all of the subnets?

Got it Error: “This API is not enabled on this subnet”

Please activate on pae4o-o6dxf-xki7q-ezclx-znyd6-fnk6w-vkv5z-5lfwh-xym2i-otrrw-fqe as there is no method to choose a subnet.

Not yet, it is being rolled out to all application subnets.

The rollout process of the feature will activate it on all subnets, please have some more patience or try a couple of times until you land on an already-activated subnet with your canister.

1 Like

Thank you! How long is the rollout process?

1 Like

updates are now merged

3 Likes

Hello, is there a Motoko HTTP outcall implementation example?

1 Like

Here you go: Motoko example for HTTPS Outcalls

7 Likes

Perfect, thank you! :heart_hands:

1 Like

Is it possible to solve the oracle problem on ICP utilizing HTTPS requests? Linkies (ticker:LINK) say it’s not possible, talking about verifying data truth and having decentralized data input. Can a replacement for Link be built on ICP? Or is there an inherent fault in IC’s structure to handle precisely this?

Would it be possible to have a oracle specific subnet? I think chainlink pays nodes to verify the data.