Skip to content

IA1.2.11 Write scripts and documentation for demo#211

Merged
shenkeyao merged 31 commits intocelo-integration-rebase-13.2from
keyao/demo
Aug 19, 2025
Merged

IA1.2.11 Write scripts and documentation for demo#211
shenkeyao merged 31 commits intocelo-integration-rebase-13.2from
keyao/demo

Conversation

@shenkeyao
Copy link
Copy Markdown
Member

Closes https://app.asana.com/1/1208976916964769/project/1209392461754458/task/1211039956508130?focus=true.

This PR:

  • Adds scripts for the demo with Celo to pre-build everything, start services, view logs, and shut down everything.
  • Updates documentation about how to run scripts.

Key places to review:

  • Try the scripts following README_ESPRESSO.md.

Ayiga and others added 6 commits August 18, 2025 12:20
The `verifier`, `caff-node`, and `sequencer` all do not have their ports forwarded to
the host machine.  Having these ports exposed can make testing / debugging easier
by utilizing the optimism RPC API.

This change exposes these ports.
The CAFF environment variables utilized in the `docker-compose.yml` need to have
a prefix of `OP_NODE_`, otherwise they will not apply.  These not applying causes
the `caff-node` to never make progress.

This change corrects the misconfigured `caff-node` environment variables, and
cleans up an unnecessary one.
The `caff-node` is meant to be running a derivation based on information retrieved
from Espresso's network.  However, it needs to be enabled to do so.  This change
enables the `caff-node`'s mode by explicitly setting `caff.node` to `true` in the
launch configuration.
In order to showcase the speed and progress of the Espresso solution with the Caff
node, versus the existing sequencer, or the L1 derived verifier, a script has been
added that utilities `watch` and `tmux` to provide a nice visual comparison between
the three nodes.
Copy link
Copy Markdown
Collaborator

@philippecamacho philippecamacho left a comment

Choose a reason for hiding this comment

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

LGTM

After that has been done you should be able to spin up the simple script
using the following command:
```console
./espresso/scripts/demo_tmux_get_sync_status.sh
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

When I run this script I get "sh: 1: ./get_sync_status.sh: not found ".

Copy link
Copy Markdown
Collaborator

@philippecamacho philippecamacho left a comment

Choose a reason for hiding this comment

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

The tmux script does not work for me.

The `get_sync_status.sh` script attempts to target `zsh` residing within `/bin/zsh`,
but this isn't a universally available. It is better to target a more commonly available
like `/bin/bash`.

This change modifies the script to target `/bin/bash` instead of `/bin/zsh`.
Copy link
Copy Markdown
Collaborator

@philippecamacho philippecamacho left a comment

Choose a reason for hiding this comment

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

LGTM

@shenkeyao shenkeyao merged commit 3f96717 into celo-integration-rebase-13.2 Aug 19, 2025
29 checks passed
@shenkeyao shenkeyao deleted the keyao/demo branch August 19, 2025 18:53
dailinsubjam pushed a commit that referenced this pull request Oct 4, 2025
* Add devnet test for batcher restart

* Check error returns

* Separate op-geth instances for each L2 node

* Build devnet dockers in CI

* Build op-deployer in CI

* Try larger runner

* Increase test outage and recovery time

* Try to speed up transaction verification

* Do not drop batches before we have seen a finalized L1 block

* Remove unnecessary sleep

* Add scripts for demo and documentation

* Build containers in dependency order

* Don't copy config file into Docker image at build time

* Fix syntax

* Checkout submodules in CI

* Don't copy config file into Docker image at build time

* Remove another COPY

* Run devnet test in separate workflow

* Add exposed ports for more nodes in docker-compose

The `verifier`, `caff-node`, and `sequencer` all do not have their ports forwarded to
the host machine.  Having these ports exposed can make testing / debugging easier
by utilizing the optimism RPC API.

This change exposes these ports.

* Fix CAFF environment variables

The CAFF environment variables utilized in the `docker-compose.yml` need to have
a prefix of `OP_NODE_`, otherwise they will not apply.  These not applying causes
the `caff-node` to never make progress.

This change corrects the misconfigured `caff-node` environment variables, and
cleans up an unnecessary one.

* Set `caff.node` to `true` for `caff-node`

The `caff-node` is meant to be running a derivation based on information retrieved
from Espresso's network.  However, it needs to be enabled to do so.  This change
enables the `caff-node`'s mode by explicitly setting `caff.node` to `true` in the
launch configuration.

* Support alias and input check

* Add scripts and instructions for running utility script

In order to showcase the speed and progress of the Espresso solution with the Caff
node, versus the existing sequencer, or the L1 derived verifier, a script has been
added that utilities `watch` and `tmux` to provide a nice visual comparison between
the three nodes.

* Update scripts after separating geth

* Update readme

* tmux in flake.nix

* Update shell being targeted in get_sync_status.sh

The `get_sync_status.sh` script attempts to target `zsh` residing within `/bin/zsh`,
but this isn't a universally available. It is better to target a more commonly available
like `/bin/bash`.

This change modifies the script to target `/bin/bash` instead of `/bin/zsh`.

---------

Co-authored-by: Jeb Bearer <jeb@espressosys.com>
Co-authored-by: Theodore Schnepper <tschnepper@espressosys.com>
Co-authored-by: Philippe Camacho <philippe@espressosys.com>
dailinsubjam pushed a commit that referenced this pull request Oct 7, 2025
* Add devnet test for batcher restart

* Check error returns

* Separate op-geth instances for each L2 node

* Build devnet dockers in CI

* Build op-deployer in CI

* Try larger runner

* Increase test outage and recovery time

* Try to speed up transaction verification

* Do not drop batches before we have seen a finalized L1 block

* Remove unnecessary sleep

* Add scripts for demo and documentation

* Build containers in dependency order

* Don't copy config file into Docker image at build time

* Fix syntax

* Checkout submodules in CI

* Don't copy config file into Docker image at build time

* Remove another COPY

* Run devnet test in separate workflow

* Add exposed ports for more nodes in docker-compose

The `verifier`, `caff-node`, and `sequencer` all do not have their ports forwarded to
the host machine.  Having these ports exposed can make testing / debugging easier
by utilizing the optimism RPC API.

This change exposes these ports.

* Fix CAFF environment variables

The CAFF environment variables utilized in the `docker-compose.yml` need to have
a prefix of `OP_NODE_`, otherwise they will not apply.  These not applying causes
the `caff-node` to never make progress.

This change corrects the misconfigured `caff-node` environment variables, and
cleans up an unnecessary one.

* Set `caff.node` to `true` for `caff-node`

The `caff-node` is meant to be running a derivation based on information retrieved
from Espresso's network.  However, it needs to be enabled to do so.  This change
enables the `caff-node`'s mode by explicitly setting `caff.node` to `true` in the
launch configuration.

* Support alias and input check

* Add scripts and instructions for running utility script

In order to showcase the speed and progress of the Espresso solution with the Caff
node, versus the existing sequencer, or the L1 derived verifier, a script has been
added that utilities `watch` and `tmux` to provide a nice visual comparison between
the three nodes.

* Update scripts after separating geth

* Update readme

* tmux in flake.nix

* Update shell being targeted in get_sync_status.sh

The `get_sync_status.sh` script attempts to target `zsh` residing within `/bin/zsh`,
but this isn't a universally available. It is better to target a more commonly available
like `/bin/bash`.

This change modifies the script to target `/bin/bash` instead of `/bin/zsh`.

---------

Co-authored-by: Jeb Bearer <jeb@espressosys.com>
Co-authored-by: Theodore Schnepper <tschnepper@espressosys.com>
Co-authored-by: Philippe Camacho <philippe@espressosys.com>
shenkeyao added a commit that referenced this pull request Jan 15, 2026
* Add devnet test for batcher restart

* Check error returns

* Separate op-geth instances for each L2 node

* Build devnet dockers in CI

* Build op-deployer in CI

* Try larger runner

* Increase test outage and recovery time

* Try to speed up transaction verification

* Do not drop batches before we have seen a finalized L1 block

* Remove unnecessary sleep

* Add scripts for demo and documentation

* Build containers in dependency order

* Don't copy config file into Docker image at build time

* Fix syntax

* Checkout submodules in CI

* Don't copy config file into Docker image at build time

* Remove another COPY

* Run devnet test in separate workflow

* Add exposed ports for more nodes in docker-compose

The `verifier`, `caff-node`, and `sequencer` all do not have their ports forwarded to
the host machine.  Having these ports exposed can make testing / debugging easier
by utilizing the optimism RPC API.

This change exposes these ports.

* Fix CAFF environment variables

The CAFF environment variables utilized in the `docker-compose.yml` need to have
a prefix of `OP_NODE_`, otherwise they will not apply.  These not applying causes
the `caff-node` to never make progress.

This change corrects the misconfigured `caff-node` environment variables, and
cleans up an unnecessary one.

* Set `caff.node` to `true` for `caff-node`

The `caff-node` is meant to be running a derivation based on information retrieved
from Espresso's network.  However, it needs to be enabled to do so.  This change
enables the `caff-node`'s mode by explicitly setting `caff.node` to `true` in the
launch configuration.

* Support alias and input check

* Add scripts and instructions for running utility script

In order to showcase the speed and progress of the Espresso solution with the Caff
node, versus the existing sequencer, or the L1 derived verifier, a script has been
added that utilities `watch` and `tmux` to provide a nice visual comparison between
the three nodes.

* Update scripts after separating geth

* Update readme

* tmux in flake.nix

* Update shell being targeted in get_sync_status.sh

The `get_sync_status.sh` script attempts to target `zsh` residing within `/bin/zsh`,
but this isn't a universally available. It is better to target a more commonly available
like `/bin/bash`.

This change modifies the script to target `/bin/bash` instead of `/bin/zsh`.

---------

Co-authored-by: Jeb Bearer <jeb@espressosys.com>
Co-authored-by: Theodore Schnepper <tschnepper@espressosys.com>
Co-authored-by: Philippe Camacho <philippe@espressosys.com>
shenkeyao added a commit that referenced this pull request Feb 2, 2026
* Add devnet test for batcher restart

* Check error returns

* Separate op-geth instances for each L2 node

* Build devnet dockers in CI

* Build op-deployer in CI

* Try larger runner

* Increase test outage and recovery time

* Try to speed up transaction verification

* Do not drop batches before we have seen a finalized L1 block

* Remove unnecessary sleep

* Add scripts for demo and documentation

* Build containers in dependency order

* Don't copy config file into Docker image at build time

* Fix syntax

* Checkout submodules in CI

* Don't copy config file into Docker image at build time

* Remove another COPY

* Run devnet test in separate workflow

* Add exposed ports for more nodes in docker-compose

The `verifier`, `caff-node`, and `sequencer` all do not have their ports forwarded to
the host machine.  Having these ports exposed can make testing / debugging easier
by utilizing the optimism RPC API.

This change exposes these ports.

* Fix CAFF environment variables

The CAFF environment variables utilized in the `docker-compose.yml` need to have
a prefix of `OP_NODE_`, otherwise they will not apply.  These not applying causes
the `caff-node` to never make progress.

This change corrects the misconfigured `caff-node` environment variables, and
cleans up an unnecessary one.

* Set `caff.node` to `true` for `caff-node`

The `caff-node` is meant to be running a derivation based on information retrieved
from Espresso's network.  However, it needs to be enabled to do so.  This change
enables the `caff-node`'s mode by explicitly setting `caff.node` to `true` in the
launch configuration.

* Support alias and input check

* Add scripts and instructions for running utility script

In order to showcase the speed and progress of the Espresso solution with the Caff
node, versus the existing sequencer, or the L1 derived verifier, a script has been
added that utilities `watch` and `tmux` to provide a nice visual comparison between
the three nodes.

* Update scripts after separating geth

* Update readme

* tmux in flake.nix

* Update shell being targeted in get_sync_status.sh

The `get_sync_status.sh` script attempts to target `zsh` residing within `/bin/zsh`,
but this isn't a universally available. It is better to target a more commonly available
like `/bin/bash`.

This change modifies the script to target `/bin/bash` instead of `/bin/zsh`.

---------

Co-authored-by: Jeb Bearer <jeb@espressosys.com>
Co-authored-by: Theodore Schnepper <tschnepper@espressosys.com>
Co-authored-by: Philippe Camacho <philippe@espressosys.com>
shenkeyao added a commit that referenced this pull request Feb 10, 2026
* Add devnet test for batcher restart

* Check error returns

* Separate op-geth instances for each L2 node

* Build devnet dockers in CI

* Build op-deployer in CI

* Try larger runner

* Increase test outage and recovery time

* Try to speed up transaction verification

* Do not drop batches before we have seen a finalized L1 block

* Remove unnecessary sleep

* Add scripts for demo and documentation

* Build containers in dependency order

* Don't copy config file into Docker image at build time

* Fix syntax

* Checkout submodules in CI

* Don't copy config file into Docker image at build time

* Remove another COPY

* Run devnet test in separate workflow

* Add exposed ports for more nodes in docker-compose

The `verifier`, `caff-node`, and `sequencer` all do not have their ports forwarded to
the host machine.  Having these ports exposed can make testing / debugging easier
by utilizing the optimism RPC API.

This change exposes these ports.

* Fix CAFF environment variables

The CAFF environment variables utilized in the `docker-compose.yml` need to have
a prefix of `OP_NODE_`, otherwise they will not apply.  These not applying causes
the `caff-node` to never make progress.

This change corrects the misconfigured `caff-node` environment variables, and
cleans up an unnecessary one.

* Set `caff.node` to `true` for `caff-node`

The `caff-node` is meant to be running a derivation based on information retrieved
from Espresso's network.  However, it needs to be enabled to do so.  This change
enables the `caff-node`'s mode by explicitly setting `caff.node` to `true` in the
launch configuration.

* Support alias and input check

* Add scripts and instructions for running utility script

In order to showcase the speed and progress of the Espresso solution with the Caff
node, versus the existing sequencer, or the L1 derived verifier, a script has been
added that utilities `watch` and `tmux` to provide a nice visual comparison between
the three nodes.

* Update scripts after separating geth

* Update readme

* tmux in flake.nix

* Update shell being targeted in get_sync_status.sh

The `get_sync_status.sh` script attempts to target `zsh` residing within `/bin/zsh`,
but this isn't a universally available. It is better to target a more commonly available
like `/bin/bash`.

This change modifies the script to target `/bin/bash` instead of `/bin/zsh`.

---------

Co-authored-by: Jeb Bearer <jeb@espressosys.com>
Co-authored-by: Theodore Schnepper <tschnepper@espressosys.com>
Co-authored-by: Philippe Camacho <philippe@espressosys.com>
shenkeyao added a commit that referenced this pull request Feb 12, 2026
* Add devnet test for batcher restart

* Check error returns

* Separate op-geth instances for each L2 node

* Build devnet dockers in CI

* Build op-deployer in CI

* Try larger runner

* Increase test outage and recovery time

* Try to speed up transaction verification

* Do not drop batches before we have seen a finalized L1 block

* Remove unnecessary sleep

* Add scripts for demo and documentation

* Build containers in dependency order

* Don't copy config file into Docker image at build time

* Fix syntax

* Checkout submodules in CI

* Don't copy config file into Docker image at build time

* Remove another COPY

* Run devnet test in separate workflow

* Add exposed ports for more nodes in docker-compose

The `verifier`, `caff-node`, and `sequencer` all do not have their ports forwarded to
the host machine.  Having these ports exposed can make testing / debugging easier
by utilizing the optimism RPC API.

This change exposes these ports.

* Fix CAFF environment variables

The CAFF environment variables utilized in the `docker-compose.yml` need to have
a prefix of `OP_NODE_`, otherwise they will not apply.  These not applying causes
the `caff-node` to never make progress.

This change corrects the misconfigured `caff-node` environment variables, and
cleans up an unnecessary one.

* Set `caff.node` to `true` for `caff-node`

The `caff-node` is meant to be running a derivation based on information retrieved
from Espresso's network.  However, it needs to be enabled to do so.  This change
enables the `caff-node`'s mode by explicitly setting `caff.node` to `true` in the
launch configuration.

* Support alias and input check

* Add scripts and instructions for running utility script

In order to showcase the speed and progress of the Espresso solution with the Caff
node, versus the existing sequencer, or the L1 derived verifier, a script has been
added that utilities `watch` and `tmux` to provide a nice visual comparison between
the three nodes.

* Update scripts after separating geth

* Update readme

* tmux in flake.nix

* Update shell being targeted in get_sync_status.sh

The `get_sync_status.sh` script attempts to target `zsh` residing within `/bin/zsh`,
but this isn't a universally available. It is better to target a more commonly available
like `/bin/bash`.

This change modifies the script to target `/bin/bash` instead of `/bin/zsh`.

---------

Co-authored-by: Jeb Bearer <jeb@espressosys.com>
Co-authored-by: Theodore Schnepper <tschnepper@espressosys.com>
Co-authored-by: Philippe Camacho <philippe@espressosys.com>
QuentinI pushed a commit that referenced this pull request Feb 20, 2026
* Add devnet test for batcher restart

* Check error returns

* Separate op-geth instances for each L2 node

* Build devnet dockers in CI

* Build op-deployer in CI

* Try larger runner

* Increase test outage and recovery time

* Try to speed up transaction verification

* Do not drop batches before we have seen a finalized L1 block

* Remove unnecessary sleep

* Add scripts for demo and documentation

* Build containers in dependency order

* Don't copy config file into Docker image at build time

* Fix syntax

* Checkout submodules in CI

* Don't copy config file into Docker image at build time

* Remove another COPY

* Run devnet test in separate workflow

* Add exposed ports for more nodes in docker-compose

The `verifier`, `caff-node`, and `sequencer` all do not have their ports forwarded to
the host machine.  Having these ports exposed can make testing / debugging easier
by utilizing the optimism RPC API.

This change exposes these ports.

* Fix CAFF environment variables

The CAFF environment variables utilized in the `docker-compose.yml` need to have
a prefix of `OP_NODE_`, otherwise they will not apply.  These not applying causes
the `caff-node` to never make progress.

This change corrects the misconfigured `caff-node` environment variables, and
cleans up an unnecessary one.

* Set `caff.node` to `true` for `caff-node`

The `caff-node` is meant to be running a derivation based on information retrieved
from Espresso's network.  However, it needs to be enabled to do so.  This change
enables the `caff-node`'s mode by explicitly setting `caff.node` to `true` in the
launch configuration.

* Support alias and input check

* Add scripts and instructions for running utility script

In order to showcase the speed and progress of the Espresso solution with the Caff
node, versus the existing sequencer, or the L1 derived verifier, a script has been
added that utilities `watch` and `tmux` to provide a nice visual comparison between
the three nodes.

* Update scripts after separating geth

* Update readme

* tmux in flake.nix

* Update shell being targeted in get_sync_status.sh

The `get_sync_status.sh` script attempts to target `zsh` residing within `/bin/zsh`,
but this isn't a universally available. It is better to target a more commonly available
like `/bin/bash`.

This change modifies the script to target `/bin/bash` instead of `/bin/zsh`.

---------

Co-authored-by: Jeb Bearer <jeb@espressosys.com>
Co-authored-by: Theodore Schnepper <tschnepper@espressosys.com>
Co-authored-by: Philippe Camacho <philippe@espressosys.com>
shenkeyao added a commit that referenced this pull request Mar 20, 2026
* Add devnet test for batcher restart

* Check error returns

* Separate op-geth instances for each L2 node

* Build devnet dockers in CI

* Build op-deployer in CI

* Try larger runner

* Increase test outage and recovery time

* Try to speed up transaction verification

* Do not drop batches before we have seen a finalized L1 block

* Remove unnecessary sleep

* Add scripts for demo and documentation

* Build containers in dependency order

* Don't copy config file into Docker image at build time

* Fix syntax

* Checkout submodules in CI

* Don't copy config file into Docker image at build time

* Remove another COPY

* Run devnet test in separate workflow

* Add exposed ports for more nodes in docker-compose

The `verifier`, `caff-node`, and `sequencer` all do not have their ports forwarded to
the host machine.  Having these ports exposed can make testing / debugging easier
by utilizing the optimism RPC API.

This change exposes these ports.

* Fix CAFF environment variables

The CAFF environment variables utilized in the `docker-compose.yml` need to have
a prefix of `OP_NODE_`, otherwise they will not apply.  These not applying causes
the `caff-node` to never make progress.

This change corrects the misconfigured `caff-node` environment variables, and
cleans up an unnecessary one.

* Set `caff.node` to `true` for `caff-node`

The `caff-node` is meant to be running a derivation based on information retrieved
from Espresso's network.  However, it needs to be enabled to do so.  This change
enables the `caff-node`'s mode by explicitly setting `caff.node` to `true` in the
launch configuration.

* Support alias and input check

* Add scripts and instructions for running utility script

In order to showcase the speed and progress of the Espresso solution with the Caff
node, versus the existing sequencer, or the L1 derived verifier, a script has been
added that utilities `watch` and `tmux` to provide a nice visual comparison between
the three nodes.

* Update scripts after separating geth

* Update readme

* tmux in flake.nix

* Update shell being targeted in get_sync_status.sh

The `get_sync_status.sh` script attempts to target `zsh` residing within `/bin/zsh`,
but this isn't a universally available. It is better to target a more commonly available
like `/bin/bash`.

This change modifies the script to target `/bin/bash` instead of `/bin/zsh`.

---------

Co-authored-by: Jeb Bearer <jeb@espressosys.com>
Co-authored-by: Theodore Schnepper <tschnepper@espressosys.com>
Co-authored-by: Philippe Camacho <philippe@espressosys.com>
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