Skip to content

[EPROD-1041] Non-replicated http outcalls#241

Closed
F3kilo wants to merge 12 commits intomainfrom
non_replicated_http_outcalls
Closed

[EPROD-1041] Non-replicated http outcalls#241
F3kilo wants to merge 12 commits intomainfrom
non_replicated_http_outcalls

Conversation

@F3kilo
Copy link
Contributor

@F3kilo F3kilo commented Feb 4, 2025

Copy link
Contributor Author

@F3kilo F3kilo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add tests

Copy link
Contributor

@veeso veeso left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general it's okay, but I would maybe add a readme, because it took me a while to get how the proxy canister is supposed to work

@F3kilo
Copy link
Contributor Author

F3kilo commented Mar 21, 2025

Readme added

@F3kilo F3kilo requested a review from veeso March 21, 2025 08:54
@veeso veeso self-assigned this Mar 21, 2025

[private]
build_http_proxy_canister:
cargo run -p ic-http-outcall-proxy-canister --features export-api > {{WASM_DIR}}/ic-http-outcall-proxy-canister.did
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove did generation


## Overview

The HTTP Outcall project provides a set of Rust crates for making HTTP requests from canisters on the Internet Computer. The project includes three main crates:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HTTP requests from canisters to what? Please be explicit in the description.

@@ -0,0 +1,20 @@
# HTTP Outcall Project
=========================

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The entire documentation has to be revamped.
It should contain:

  • what is this project for
  • what is the original problem that it solves
  • how does it solve the problem
  • why it is needed
  • how to use it
  • current limitations

The HTTP Outcall project provides a set of Rust crates for making HTTP requests from canisters on the Internet Computer. The project includes three main crates:
- `ic-http-outcall-api` - common types.
- `ic-http-outcall-proxy-canister` - canister to process pending HTTP outcalls.
- `ic-http-outcall-proxy-client` - service to fetch pending HTTP requests from `ic-http-outcall-proxy-canister`, execute them, and send results back to the `ic-http-outcall-proxy-canister`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the expecected naming? client sounds confusing


The HTTP Outcall project provides a set of Rust crates for making HTTP requests from canisters on the Internet Computer. The project includes three main crates:
- `ic-http-outcall-api` - common types.
- `ic-http-outcall-proxy-canister` - canister to process pending HTTP outcalls.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we another canister for this? Can this be a service to be embedded by other canisters instead? E.g. like ic-metrics for example?

///
/// The `args.callback_name` will be called, when the a reply will be ready.
#[update]
pub fn http_outcall(&mut self, args: RequestArgs) -> RequestId {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As this is an unprotected update endpoint, this canister will work for free for every caller without any attempts to authenticate.


## Usage
To use non-replicated HTTP outcalls there should be:
- `ic-http-outcall-proxy-canister` deployed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How are the users supposed to obtain this canister?

@ufoscout
Copy link
Contributor

@veeso The entire implementation should be rediscussed

@Maximkaaa
Copy link
Contributor

I've added a comment into the issue with the approach we discussed and decided on instead of this PR. I'll close this PR.

@Maximkaaa Maximkaaa closed this Apr 17, 2025
@ufoscout ufoscout deleted the non_replicated_http_outcalls branch April 17, 2025 06:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants