diff --git a/.github/workflows/smoke-test.yml b/.github/workflows/smoke-test.yml index 074d41e8..9db63593 100644 --- a/.github/workflows/smoke-test.yml +++ b/.github/workflows/smoke-test.yml @@ -14,13 +14,18 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ !contains(github.ref, 'integration/')}} - jobs: smoke_test: - strategy: matrix: - test-script: [ ./smoke-test.bash, ./smoke-test-l3.bash, ./smoke-test-nitro-simple.bash, ./smoke-test-full-node.bash ] + test-script: + [ + ./smoke-test.bash, + ./smoke-test-l3.bash, + ./smoke-test-nitro-simple.bash, + ./smoke-test-full-node.bash, + ./smoke-test-finality-node.bash, + ] runs-on: ubuntu-24.04 @@ -66,6 +71,11 @@ jobs: build-args: | TOKEN_BRIDGE_BRANCH=v1.2.2 + - name: Install websocat + run: | + sudo apt-get update + sudo apt-get install -y websocat + - name: Smoke Test with Latest Espresso Image run: | ${{ matrix.test-script }} diff --git a/docker-compose.yaml b/docker-compose.yaml index cd2d8ad2..0ffaa0aa 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -182,6 +182,23 @@ services: depends_on: - geth + sequencer-espresso-finality: + 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: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:8550 --graphql.enable --graphql.vhosts * --graphql.corsdomain * + depends_on: + - geth + sequencer_b: pid: host # allow debugging image: nitro-node-dev-testnode @@ -451,6 +468,7 @@ volumes: seqdata_b: seqdata_c: seqdata_d: + seqdata_espresso_finality unsafestaker-data: validator-data: poster-data: diff --git a/scripts/config.ts b/scripts/config.ts index 1936b4d9..e020c03a 100644 --- a/scripts/config.ts +++ b/scripts/config.ts @@ -352,8 +352,27 @@ function writeConfigs(argv: any) { } else { sequencerConfig.node["seq-coordinator"].enable = true } - fs.writeFileSync(path.join(consts.configpath, "sequencer_config.json"), JSON.stringify(sequencerConfig)) - + + if (argv.enableFinalityNode) { + sequencerConfig.execution.sequencer["enable-espresso-finality-node"] = + true; + sequencerConfig.execution.sequencer["enable-espresso-sovereign"] = false; + sequencerConfig.execution.sequencer["espresso-finality-node-config"] = { + "hotshot-url": argv.espressoUrl, + "start-block": 0, + namespace: 412346, + }; + fs.writeFileSync( + path.join(consts.configpath, "espresso_finality_sequencer_config.json"), + JSON.stringify(sequencerConfig) + ); + } else { + fs.writeFileSync( + path.join(consts.configpath, "sequencer_config.json"), + JSON.stringify(sequencerConfig) + ); + } + let posterConfig = JSON.parse(baseConfJSON) if (argv.espresso) { posterConfig.node.feed.input.url.push("ws://sequencer:9642")