Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SDK network prover client can be constructed Ok, but all requests eventually fails without libcurl #2075

Open
2 tasks done
nuke-web3 opened this issue Feb 17, 2025 · 4 comments
Assignees

Comments

@nuke-web3
Copy link

nuke-web3 commented Feb 17, 2025

Component

sp1-sdk

Have you ensured that all of these are up to date?

  • SP1 SDK
  • cargo prove CLI/sp1up

What version of SP1 SDK are you on?

4.0.1

What version of the cargo prove CLI are you on?

cargo-prove sp1 (9d8e067 2025-01-18T06:07:07.677933315Z)

Operating System

Linux (Debian)

Describe the bug

The network prover client can be constructed Ok, but if libcurl is not on the machine running it, the client has a "temporary" error is thrown, and the request retried until ultimate failure, without any logs that suggest the lib is missing. See celestiaorg/eq-service#48 (comment) for more details.

Discovered accidentally while trying to diagnose network errors with curl on a debian:bookworm-slim container. It doesn't come with the required package, unless you install it manually (e.g. RUN apt update && apt install -y libcurl4 && rm -rf /var/lib/apt/lists/*) or something that pulls it in (lie curl).

It's quite likely the requirement is coming from the features used in reqwest

reqwest-middleware = { version = "0.3.2", optional = true }
reqwest = { version = "0.12.4", default-features = false, features = [
"rustls-tls",
"trust-dns",
"stream",
], optional = true }

It would be great to have the builder fail (or panic) if libcurl is missing. That, or statically link/include it (perhaps optionally)

@quangtuyen88
Copy link

@nuke-web3 Hello... How did you install sp1 ?
because the dependencies requirement already mentioned here

https://github.com/rust-lang/rust/blob/master/INSTALL.md#dependencies

@nuke-web3
Copy link
Author

Using https://hub.docker.com/_/rust/ to build the package. I am not using the build container to package the binary.

https://docs.succinct.xyz/docs/sp1/developers/usage-in-ci#getting-started is what I am using to do the build here, but I would not expect I require curl to operate my bin, at least not for the SDK to fail with "temporary" errors and retry when it's really a fundamental issue in the environment.

@ratankaliani
Copy link
Member

@leruaa Can you update the book to include documentation that on the base debian:bookworm-slim container that libcurl must be installed?

@nuke-web3
Copy link
Author

Would love to have someone check this too - as it might actually be simply the SSL certs are too old, or other thing that installing libcurl happens to fix.

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

No branches or pull requests

4 participants