Why will the IC be able to call external APIs while other blockchains can't do that?

Hi @Mathias

Thanks for your interest in this topic. This will indeed be a game changer as it will allow for many exciting scenarios to be realized.

To answer your question: There are two potential reasons that come to my mind why the IC can do that, but other blockchains cannot or do not:

  • Thanks to the subnet-based architecture of the IC, only the replicas of one subnet handle an HTTP(S) request, and not all replicas of the blockchain. This is definitely a big advantage in terms of scalability. More detail: For making the HTTP request, each replica of the subnet, e.g., 13 replicas in a standard-size subnet, make the same request, optionally apply a transformation on the response to normalize it to not contain any per-request-variable items any more, and then run consensus over the transformed responses.
  • Our consensus implementation is rather flexible in terms of handling different kinds of payload that require different processing. E.g., ingress messages, Xnet messages, DKG-related and soon also threshold-ECDSA-related messages and HTTP(S) messages. Not sure, whether the consensus layer of every blockchain provides that much flexibility. Any experience here?

There is a separate topic on Canisters making HTTP requests and the same question has been asked there as well. I copied the answer over, but would like to point you to the other topic for the other interesting discussions there.

3 Likes