Skip to content

chore: run celestia-prover in docker instead of locally #246

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

Draft
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

rootulp
Copy link
Collaborator

@rootulp rootulp commented Apr 9, 2025

Context

Currently you have to run the celestia-prover locally and the rest of the stack in Docker in order to run the demo. This PR fixes that so all the services run in Docker.

@rootulp rootulp self-assigned this Apr 9, 2025
@rootulp rootulp changed the title fix: celestia prover docker chore: run celestia-prover in docker instead of locally Apr 9, 2025
@rootulp
Copy link
Collaborator Author

rootulp commented Apr 9, 2025

Currently failing on

--> Transferring tokens from simapp to the EVM roll-up
2025/04/09 11:46:51 Failed to transfer from SimApp to EVM roll-up: failed to assert verifier keys: state transition verifier key mismatch. client: [0 1 248 26 164 170 120 181 189 85 81 212 39 110 97 209 57 132 172 234 83 70 190 124 21 165 199 229 108 192 78 97], prover: [0 194 204 237 33 97 136 14 66 153 81 34 65 32 161 100 3 89 141 129 212 178 26 213 187 169 223 202 92 1 214 174]

@rootulp
Copy link
Collaborator Author

rootulp commented Apr 9, 2025

The genesis.json has:

  "updateClientVkey": "0x0001f81aa4aa78b5bd5551d4276e61d13984acea5346be7c15a5c7e56cc04e61",

The celestia-prover running locally has:

  "stateTransitionVerifierKey": "0x0001f81aa4aa78b5bd5551d4276e61d13984acea5346be7c15a5c7e56cc04e61",

The celestia-prover in Docker has:

  "stateTransitionVerifierKey": "0x00c2cced2161880e429951224120a16403598d81d4b21ad5bba9dfca5c01d6ae",

@rootulp
Copy link
Collaborator Author

rootulp commented Apr 9, 2025

After most recent change:

celestia-prover running locally:

  "stateTransitionVerifierKey": "0x0048d7516827ef800a2ffa464eda996dc662f3e97a15127aef0aa7ba642676ab",

which appears to be the mock verifier key. This won't match the client verifier key in genesis.json but it may not matter if the proof isn't actually verified.

@rootulp
Copy link
Collaborator Author

rootulp commented Apr 9, 2025

Most recent error when generating STF proof for celestia-prover in Docker

2025-04-09 13:40:19 trusted_consensus_state: ConsensusState { timestamp: 1744220343, root: 0x90b4bfe9850f4a0d00779c4ef40eb6fd10264bb2df0a773e7958ee0c1d1e2ae7, nextValidatorsHash: 0xbc4b9aae47a39635413417f7104fff9f09984d9e5f7b543e93227061c956457a }
2025-04-09 13:40:19 proving from height 3 to height 17
2025-04-09 13:40:19 stderr: 
2025-04-09 13:40:19 stderr: thread '<unnamed>' panicked at programs/sp1-programs/update-client/src/main.rs:35:10:
2025-04-09 13:40:19 stderr: called `Result::unwrap()` on an `Err` value: Custom("could not convert slice to array")
2025-04-09 13:40:19 stderr: stack backtrace:
2025-04-09 13:40:19 stderr: note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
2025-04-09 13:40:19 
2025-04-09 13:40:19 thread 'tokio-runtime-worker' panicked at provers/celestia-prover/prover/src/prover.rs:72:18:
2025-04-09 13:40:19 proving failed: execution failed with exit code 1
2025-04-09 13:40:19 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

@rootulp
Copy link
Collaborator Author

rootulp commented Apr 14, 2025

When I run celestia-prover in Docker, I get the verifier key

  "stateTransitionVerifierKey": "0x00c2cced2161880e429951224120a16403598d81d4b21ad5bba9dfca5c01d6ae",

When I run celestia-prover locally, I get the verifier key

  "stateTransitionVerifierKey": "0x0001f81aa4aa78b5bd5551d4276e61d13984acea5346be7c15a5c7e56cc04e61",

@ninabarbakadze
Copy link
Member

When I run celestia-prover in Docker, I get the verifier key

  "stateTransitionVerifierKey": "0x00c2cced2161880e429951224120a16403598d81d4b21ad5bba9dfca5c01d6ae",

When I run celestia-prover locally, I get the verifier key

  "stateTransitionVerifierKey": "0x0001f81aa4aa78b5bd5551d4276e61d13984acea5346be7c15a5c7e56cc04e61",

probably because the docker image is using different circuits than the local version?

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.

2 participants