Skip to content

Integrate Espresso proxy#90

Open
Sneh1999 wants to merge 3 commits into
celo-org:mainfrom
EspressoSystems:integrate-proxy
Open

Integrate Espresso proxy#90
Sneh1999 wants to merge 3 commits into
celo-org:mainfrom
EspressoSystems:integrate-proxy

Conversation

@Sneh1999
Copy link
Copy Markdown

@Sneh1999 Sneh1999 commented May 5, 2026

Description

This PR integrates Espresso proxy with celo docker compose setup

Changes

  • Adds Espresso proxy to docker compose
  • Updates README
  • Adds .env files for proxy

@Sneh1999 Sneh1999 changed the title Integrate proxy Integrate Espresso proxy May 5, 2026
@Sneh1999 Sneh1999 marked this pull request as ready for review May 8, 2026 13:50
@piersy
Copy link
Copy Markdown

piersy commented May 12, 2026

@codex review

Comment on lines +1 to +6
ESPRESSO_QUERY_SERVICE_URL=
ESPRESSO_LIGHT_CLIENT_ADDRESS=0x303872bb82a191771321d4828888920100d0b3e4
BATCHER_ADDR=
BATCH_AUTH_ADDR=
ESPRESSO_INITIAL_HOTSHOT_HEIGHT=
ESPRESSO_TAG=
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The approach we used previously for the network specific env files was to include here things that were network specific and would not change. The remaining config options which operators might actually want to configure themselves we would put in the network env file in the root of the repo.

ESPRESSO_TAG seems like something that operators would want to configure and I'm also wondering about the ESPRESSO_QUERY_SERVICE_URL, is that something that would be fixed per network or something that operators may want to customise?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Yes this is true, I will move the ESPRESSO_TAG to network specific config and ESPRESSO_QUERY_SERVICE_URL is something which can be fixed so will add those fixed values here 🙌

Comment on lines +1 to +6
ESPRESSO_QUERY_SERVICE_URL=
ESPRESSO_LIGHT_CLIENT_ADDRESS=0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458
BATCHER_ADDR=
BATCH_AUTH_ADDR=
ESPRESSO_INITIAL_HOTSHOT_HEIGHT=
ESPRESSO_TAG=
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This repo is intended to provide a zero configuration approach to running a celo node, simply copy the env for the given network and run docker compose up, so these empty vars are breaking that, but it seems like all of them should be able to be set with sensible defaults.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Yes makes sense! As discussed we can fill out some of these values as we are close to the migration which will help the proxy sync faster

Comment thread README.md Outdated
```


## Espresso Rollup Node Proxy
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This section is out of place in that it's wedged in between two ### headings, under advanced configuration.

My suggestion would be to Introduce a flag that enables espresso (ESPRESSO_ENABLED), similar to the MONITORING_ENABLED flag and then add a line under Key Environment Variables with a short description of the effect of ESPRESSO_ENABLED and link to a sub heading coming after ### P2P Networking Environment Variables that describes espresso functionality and config.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Sounds good, will update!

Comment thread README.md Outdated
Comment on lines +179 to +185
To use a specific version of the Espresso proxy image:

```text
IMAGE_TAG__ESPRESSO_PROXY=<tag>
```

If unset, the default tag (`v0.0.1`) is used.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This seems unnecessary, since the mechanism is already described above (line 109). It's also liable to get stale since this would need to be updated in tandem with the version defined in the docker compose file. So I'd be in favour of removing this section.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

will remove!

@@ -0,0 +1,6 @@
ESPRESSO_QUERY_SERVICE_URL=
ESPRESSO_LIGHT_CLIENT_ADDRESS=0x95Ca91Cea73239b15E5D2e5A74d02d6b5E0ae458
BATCHER_ADDR=
Copy link
Copy Markdown

@piersy piersy May 12, 2026

Choose a reason for hiding this comment

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

I'm wondering why a BATCHER_ADDRESS is required here, given that espresso batches are authenticated based on their signature and not on the address of the batcher?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

The proxy checks that the messages that are finalized by Espresso are from an authorized TEE batcher address thats why the batcher addr is needed here ( its the tee batcher addr) I will improve naming here

@jcortejoso
Copy link
Copy Markdown
Member

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 31bd8342d1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/start-espresso-rollup-node-proxy.sh Outdated
Comment thread README.md

Note: Any request that does not contain the configured Espresso tag is proxied to op-geth without interception, so all standard JSON-RPC functionality is preserved.

The proxy waits for op-geth to fully sync before starting and stores its state in a persistent volume.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I'm wondering how long syncing will take, potentially it makes sense to allow the proxy to sync while op-geth is syncing?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Proxy wont be able to reliably sync while the op geth is syncing because for proxy to actually advance the espresso finalized block, it needs to first get that block from op-geth and then check if it matches with what Espresso finalized.

@@ -0,0 +1,5 @@
ESPRESSO_QUERY_SERVICE_URL=https://query.decaf.testnet.espresso.network/
ESPRESSO_LIGHT_CLIENT_ADDRESS=0x303872bb82a191771321d4828888920100d0b3e4
TEE_BATCHER_ADDR=
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

will fill these values later once we have them available

@Sneh1999 Sneh1999 requested a review from piersy May 15, 2026 17:20
ESPRESSO_LIGHT_CLIENT_ADDRESS=0x303872bb82a191771321d4828888920100d0b3e4
TEE_BATCHER_ADDR=
BATCH_AUTH_ADDR=
ESPRESSO_INITIAL_HOTSHOT_HEIGHT=
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I'm wondering if this is needed to be set explicitly, it seems like it could be automatically set by calling the espresso light client on the L1 to fetch a recently finalized espresso block?

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.

3 participants