Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .clabot
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"contributors": "https://api.github.com/repos/OffchainLabs/clabot-config/contents/nitro-contributors.json",
"message": "We require contributors to sign our Contributor License Agreement. In order for us to review and merge your code, please sign the linked documents below to get yourself added. https://na3.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=b15c81cc-b5ea-42a6-9107-3992526f2898&env=na3&acct=6e152afc-6284-44af-a4c1-d8ef291db402&v=2",
"label": "s"
}
1 change: 1 addition & 0 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ ESPRESSO_DEPLOYER_ACCOUNT_INDEX=6
ESPRESSO_SEQUENCER_API_PORT=41000
ESPRESSO_BUILDER_PORT=41003
ESPRESSO_DEV_NODE_PORT=20000
ESPRESSO_DEV_NODE_EPOCH_HEIGHT=1000000
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:

jobs:
build_and_run:
runs-on: ubuntu-8
runs-on: ubuntu-latest
strategy:
matrix:
pos: [pos, no-pos]
Expand Down
7 changes: 2 additions & 5 deletions .github/workflows/smoke-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,12 @@ jobs:
smoke_test:
strategy:
matrix:
test-script:
[
test-script: [
./smoke-test.bash,
./smoke-test-l3.bash,
./smoke-test-nitro-simple.bash,
Copy link
Author

Choose a reason for hiding this comment

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

we dont need all these tests for celestia integration

./smoke-test-full-node.bash,
./smoke-test-espresso-finality-node.bash,
./smoke-test-altlayer.bash,
./smoke-test-caldera.bash,
./smoke-test-caff-node.bash,
]

runs-on: ubuntu-24.04
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
# Generated by nix-direnv
.direnv/
logs/*
celestia-node
nitro-das-celestia
/node_modules
134 changes: 109 additions & 25 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ services:
bin/blockscout eval "Elixir.Explorer.ReleaseTasks.create_and_migrate()"
node init/install.js postgres 5432
bin/blockscout start
extra_hosts:
- "host.docker.internal:host-gateway"
env_file:
- ./blockscout/nitro.env
environment:
Expand Down Expand Up @@ -46,8 +44,76 @@ services:
ports:
- "127.0.0.1:6379:6379"

localestia:
image: ghcr.io/celestiaorg/localestia:v0.1.2
container_name: 'local-celestia'
environment:
- REDIS_URL=redis://redis:6379
- LISTEN_ADDR=0.0.0.0:26658
- CLEAR_REDIS=true
ports:
- "127.0.0.1:26658:26658"
depends_on:
- redis

celestia:
image: ghcr.io/celestiaorg/celestia-node:v0.21.9
container_name: 'celestia'
environment:
- NODE_TYPE=light
- P2P_NETWORK=mocha
- RPC_URL=rpc-mocha.pops.one
- RPC_PORT=9090
- NETWORK=mocha
command:
- "celestia"
- "light" # node type: light, bridge, or full
- "start"
- "--core.ip"
- "consensus-full-mocha-4.celestia-mocha.com"
- "--core.port"
- "9090"
- "--p2p.network"
- "mocha"
- "--rpc.skip-auth"
- "--rpc.addr"
- "0.0.0.0"
ports:
- "2121:2121"
- "26658:26658"
volumes:
- ${HOME}/.celestia-light-mocha-4:/home/celestia

celestia-server:
image: ghcr.io/celestiaorg/nitro-das-celestia:v0.4.3
container_name: celestia-server
entrypoint: ["/bin/celestia-server", "--rpc-addr", "0.0.0.0", "--rpc-port", "26657", "--celestia.auth-token", "", "--celestia.namespace-id", "000008e5f679bf7116cb", "--celestia.rpc", "http://localestia:26658"]
ports:
- "1317:1317"
- "9090:9090"
- "26657:26657"
- "1095:1095"
- "8080:8080"
depends_on:
- localestia

celestia-server-mocha:
image: ghcr.io/celestiaorg/nitro-das-celestia:v0.4.3
container_name: celestia-server
environment:
- CELESTIA_AUTH_TOKEN=${CELESTIA_AUTH_TOKEN:-}
entrypoint: ["/bin/celestia-server", "--rpc-addr", "0.0.0.0", "--rpc-port", "26657", "--celestia.auth-token", \"$CELESTIA_AUTH_TOKEN\", "--celestia.namespace-id", "000008e5f679bf7116cb", "--celestia.rpc", "http://celestia:26658"]
ports:
- "1317:1317"
- "9090:9090"
- "26657:26657"
- "1095:1095"
- "8080:8080"
depends_on:
- celestia

geth:
image: ethereum/client-go:latest
image: ethereum/client-go:stable
ports:
- "127.0.0.1:8545:8545"
- "127.0.0.1:8551:8551"
Expand Down Expand Up @@ -98,7 +164,6 @@ services:
- --output-ssz=/consensus/genesis.ssz
- --chain-config-file=/config/prysm.yaml
- --geth-genesis-json-in=/config/geth_genesis.json
- --geth-genesis-json-out=/config/geth_genesis.json
volumes:
- "consensus:/consensus"
- "config:/config"
Expand Down Expand Up @@ -168,8 +233,16 @@ services:
- "config:/config"
- "tokenbridge-data:/tokenbridge-data"
command: --conf.file /config/sequencer_config.json --node.feed.output.enable --node.feed.output.port 9642 --http.api net,web3,eth,txpool,debug --node.seq-coordinator.my-url ws://sequencer:8548 --graphql.enable --graphql.vhosts * --graphql.corsdomain *
extra_hosts:
- "host.docker.internal:host-gateway"
depends_on:
- geth
healthcheck:
test: ["CMD-SHELL", "curl -fL http://localhost:8547 || exit 1"]
interval: 10s
timeout: 10s
retries: 5
start_period: 40s

sequencer-on-espresso:
pid: host # allow debugging
Expand All @@ -188,22 +261,23 @@ services:
depends_on:
- geth

sequencer-espresso-finality:
caff-node:
pid: host # allow debugging
image: nitro-node-dev-testnode
entrypoint: /usr/local/bin/nitro
ports:
- "127.0.0.1:8549:8547"
- "127.0.0.1:8550:8548"
- "127.0.0.1:8550:8547"
- "127.0.0.1:8552:8548"
- "127.0.0.1:9645:9642"
volumes:
- "seqdata_espresso_finality:/home/user/.arbitrum/local/nitro"
- "l1keystore:/home/user/l1keystore"
- "config:/config"
- "tokenbridge-data:/tokenbridge-data"
command: --conf.file /config/espresso_finality_sequencer_config.json --node.feed.output.enable --node.feed.output.port 9642 --http.api net,web3,eth,txpool,debug --node.seq-coordinator.my-url ws://sequencer:8548 --graphql.enable --graphql.vhosts * --graphql.corsdomain *
command: --conf.file /config/caff_sequencer_config.json --node.feed.output.enable --node.feed.output.port 9642 --http.api net,web3,eth,txpool,debug --node.seq-coordinator.my-url ws://sequencer:8548 --graphql.enable --graphql.vhosts * --graphql.corsdomain *
depends_on:
- geth
- espresso-dev-node

sequencer_b:
pid: host # allow debugging
Expand Down Expand Up @@ -279,6 +353,8 @@ services:
- "l1keystore:/home/user/l1keystore"
- "config:/config"
command: --conf.file /config/poster_config.json
extra_hosts:
- "host.docker.internal:host-gateway"
depends_on:
- geth
- redis
Expand Down Expand Up @@ -326,7 +402,9 @@ services:
- "validator-data:/home/user/.arbitrum/local/nitro"
- "l1keystore:/home/user/l1keystore"
- "config:/config"
command: --conf.file /config/validator_config.json --http.port 8547 --http.api net,web3,arb,debug,net,eth --ws.port 8548
command: --conf.file /config/validator_config.json --http.port 8547 --http.api net,web3,arb,debug --ws.port 8548
extra_hosts:
- "host.docker.internal:host-gateway"
depends_on:
- sequencer
- validation_node
Expand All @@ -347,6 +425,12 @@ services:
- sequencer
- validation_node
- espresso-dev-node
healthcheck:
test: ["CMD-SHELL", "curl -fL http://localhost:3347 || exit 1"]
interval: 10s
timeout: 10s
retries: 2
start_period: 20s

validation_node:
pid: host # allow debugging
Expand All @@ -357,6 +441,8 @@ services:
volumes:
- "config:/config"
command: --conf.file /config/validation_node_config.json
extra_hosts:
- "host.docker.internal:host-gateway"

scripts:
build: scripts/
Expand Down Expand Up @@ -400,7 +486,6 @@ services:
rollupcreator:
depends_on:
- geth
- sequencer
pid: host
build:
context: rollupcreator/
Expand All @@ -413,39 +498,37 @@ services:
- /var/run/docker.sock:/var/run/docker.sock

espresso-dev-node:
# TODO: revert to `:main` tag once we are compatible with the marketplace builder
image: ghcr.io/espressosystems/espresso-sequencer/espresso-dev-node:20240919-dev-node-legacy-builder
image: ghcr.io/espressosystems/espresso-sequencer/espresso-dev-node:20250428-dev-node-decaf-pos
ports:
- "$ESPRESSO_SEQUENCER_API_PORT:$ESPRESSO_SEQUENCER_API_PORT"
- "$ESPRESSO_BUILDER_PORT:$ESPRESSO_BUILDER_PORT"
- "$ESPRESSO_DEV_NODE_PORT:$ESPRESSO_DEV_NODE_PORT"
environment:
- ESPRESSO_SEQUENCER_L1_PROVIDER
- ESPRESSO_SEQUENCER_ETH_MNEMONIC
- ESPRESSO_DEPLOYER_ACCOUNT_INDEX
- ESPRESSO_SEQUENCER_API_PORT
- ESPRESSO_BUILDER_PORT
- ESPRESSO_DEPLOYER_ACCOUNT_INDEX
- ESPRESSO_DEV_NODE_PORT
- ESPRESSO_SEQUENCER_API_PORT
- ESPRESSO_SEQUENCER_ETH_MNEMONIC
- ESPRESSO_SEQUENCER_L1_PROVIDER
- ESPRESSO_SEQUENCER_DATABASE_MAX_CONNECTIONS=25
- ESPRESSO_DEV_NODE_EPOCH_HEIGHT
- ESPRESSO_SEQUENCER_STORAGE_PATH=/data/espresso
- RUST_LOG=info
- RUST_LOG_FORMAT
- ESPRESSO_DEPLOYER_ALT_CHAIN_PROVIDERS
- ESPRESSO_DEPLOYER_ALT_MNEMONICS
- ESPRESSO_SEQUENCER_DEPLOYER_ALT_INDICES
depends_on:
- geth
- sequencer
volumes:
- espresso_storage:/data/espresso
extra_hosts:
- "host.docker.internal:host-gateway"
healthcheck:
test:
[
"CMD-SHELL",
"curl -fL http://localhost:$ESPRESSO_DEV_NODE_PORT || exit 1",
"curl -fL http://localhost:41000/v0/status/block-height || exit 1",
]
interval: 30s
timeout: 10s
retries: 5
start_period: 40s
extra_hosts:
- "host.docker.internal:host-gateway"

# Reads from sequencer feed, forwards transactions to sequencer
full-node:
Expand Down Expand Up @@ -538,3 +621,4 @@ volumes:
das-committee-a-data:
das-committee-b-data:
das-mirror-data:
espresso_storage:
37 changes: 22 additions & 15 deletions espresso-tests/.env
Original file line number Diff line number Diff line change
@@ -1,23 +1,30 @@
# Environment variables for chain name and rpc_url
# These are essential for the upgrade
PARENT_CHAIN_CHAIN_ID="1337"
CHILD_CHAIN_CHAIN_NAME="412346"
PARENT_CHAIN_RPC_URL="http://localhost:8545"
CHILD_CHAIN_RPC_URL="http://localhost:8547"
export PARENT_CHAIN_CHAIN_ID="1337"
export CHAIN_ID="1337"
export CHILD_CHAIN_CHAIN_NAME="412346"
export PARENT_CHAIN_RPC_URL="http://localhost:8545"
export CHILD_CHAIN_RPC_URL="http://localhost:8547"
# Environment variables for new OSP deployment
# These are essential for the upgrade
HOTSHOT_ADDRESS="0xb6eb235fa509e3206f959761d11e3777e16d0e98"
PARENT_CHAIN_UPGRADE_EXECUTOR="0x513D9F96d4D0563DEbae8a0DC307ea0E46b10ed7"
CHILD_CHAIN_UPGRADE_EXUCTOR_ADDRESS="0xD59870177729b1Fa7CCdA1d2E245C57C6ad5F9F6"
export PARENT_CHAIN_UPGRADE_EXECUTOR="0x513D9F96d4D0563DEbae8a0DC307ea0E46b10ed7"
export PARENT_UPGRADE_EXECUTOR_ADDRESS="0x513D9F96d4D0563DEbae8a0DC307ea0E46b10ed7"
export CHILD_CHAIN_UPGRADE_EXUCTOR_ADDRESS="0xD59870177729b1Fa7CCdA1d2E245C57C6ad5F9F6"
# Environment variables for osp migration action contract
CURRENT_OSP_ENTRY="0x9C2eD9F57D053FDfAEcBF1B6Dfd7C97e2e340B84"
ROLLUP_ADDRESS="0x0DFDF1473B14D2330A40F6a42bb6d601DD121E6b"
PROXY_ADMIN="0x2A1f38c9097e7883570e0b02BFBE6869Cc25d8a3"
export ROLLUP_ADDRESS="0x1b836843Ef0B1731fea7C69d7d3847327DD137c2"
export PROXY_ADMIN_ADDRESS="0x2A1f38c9097e7883570e0b02BFBE6869Cc25d8a3"
# Environment variables for ArbOS upgrade action.
UPGRADE_TIMESTAMP="1723664126"
export UPGRADE_TIMESTAMP="1723664126"

NEW_WASM_MODULE_ROOT="0x2422802a7cda99737209430b103689205bc8e56eab8b08c6ad409e65e45c3145"
CURRENT_WASM_MODULE_ROOT="0xbc1026ff45c20ea97e9e6057224a5668ea78d8f885c9b14fc849238e8ef5c5dc"
# The reader addr is only important if the parent chain is not an arbitrum chain, this is important for the batch poster.
export READER_ADDRESS="0x7DD3F2a3fAeF3B9F2364c335163244D3388Feb83"
export IS_USING_FEE_TOKEN="false"

#Environment variables used in test assertions
CHALLENGE_MANAGER_ADDRESS="0x784FC11476F3d06801A76b944795E6367391b12e"
export MAX_DATA_SIZE="117964"
export OLD_BATCH_POSTER_ADDRESS="0xe2148eE53c0755215Df69b2616E552154EdC584f"
export NEW_BATCH_POSTER_ADDRESS="0xe2148eE53c0755215Df69b2616E552154EdC584f"
export BATCH_POSTER_MANAGER_ADDRESS="0xe2148eE53c0755215Df69b2616E552154EdC584f"
export PARENT_CHAIN_IS_ARBITRUM="false"
export ESPRESSO_TEE_VERIFIER_ADDRESS="0x165155D6aBB370Cb10ad1bF835e723F662d51C86"
export INBOX_ADDRESS="0x9f8c1c641336A371031499e3c362e40d58d0f254"
export TARGET_WASM_MODULE_ROOT="0xe81f986823a85105c5fd91bb53b4493d38c0c26652d23f76a7405ac889908287"
30 changes: 30 additions & 0 deletions espresso-tests/.env-celestia
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Environment variables for chain name and rpc_url
# These are essential for the upgrade
export PARENT_CHAIN_CHAIN_ID="1337"
export CHAIN_ID="1337"
export CHILD_CHAIN_CHAIN_NAME="412346"
export PARENT_CHAIN_RPC_URL="http://localhost:8545"
export CHILD_CHAIN_RPC_URL="http://localhost:8547"
# Environment variables for new OSP deployment
# These are essential for the upgrade
export PARENT_CHAIN_UPGRADE_EXECUTOR="0x513D9F96d4D0563DEbae8a0DC307ea0E46b10ed7"
export PARENT_UPGRADE_EXECUTOR_ADDRESS="0x513D9F96d4D0563DEbae8a0DC307ea0E46b10ed7"
export CHILD_CHAIN_UPGRADE_EXUCTOR_ADDRESS="0xD59870177729b1Fa7CCdA1d2E245C57C6ad5F9F6"
# Environment variables for osp migration action contract
export ROLLUP_ADDRESS="0x1b836843Ef0B1731fea7C69d7d3847327DD137c2"
export PROXY_ADMIN_ADDRESS="0x2A1f38c9097e7883570e0b02BFBE6869Cc25d8a3"
# Environment variables for ArbOS upgrade action.
export UPGRADE_TIMESTAMP="1723664126"

# The reader addr is only important if the parent chain is not an arbitrum chain, this is important for the batch poster.
export READER_ADDRESS="0x7DD3F2a3fAeF3B9F2364c335163244D3388Feb83"
export IS_USING_FEE_TOKEN="false"

export MAX_DATA_SIZE="117964"
export OLD_BATCH_POSTER_ADDRESS="0xe2148eE53c0755215Df69b2616E552154EdC584f"
export NEW_BATCH_POSTER_ADDRESS="0xe2148eE53c0755215Df69b2616E552154EdC584f"
export BATCH_POSTER_MANAGER_ADDRESS="0xe2148eE53c0755215Df69b2616E552154EdC584f"
export PARENT_CHAIN_IS_ARBITRUM="false"
export ESPRESSO_TEE_VERIFIER_ADDRESS="0x165155D6aBB370Cb10ad1bF835e723F662d51C86"
export INBOX_ADDRESS="0x9f8c1c641336A371031499e3c362e40d58d0f254"
export TARGET_WASM_MODULE_ROOT="0xe81f986823a85105c5fd91bb53b4493d38c0c26652d23f76a7405ac889908287"
14 changes: 14 additions & 0 deletions espresso-tests/DeployMockVerifier.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

import "forge-std/Script.sol";
import "nitro-contracts/mocks/EspressoTEEVerifier.sol";

contract DeployMockVerifier is Script {
function run() external {
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
vm.startBroadcast(deployerPrivateKey);
EspressoTEEVerifierMock mockVerifier = new EspressoTEEVerifierMock();
vm.stopBroadcast();
}
}
Loading
Loading