From fc03d7dbde269586dbb7792408703b0dc0640d82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Miko=C5=82ajczyk?= Date: Wed, 11 Mar 2026 11:36:27 +0100 Subject: [PATCH 1/6] Build validator binary and include it in `nitro-node-dev`. Symlink legacy machines, to have them all in the same directory for server --- Dockerfile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Dockerfile b/Dockerfile index 4f3e6a155b9..4f4fdadf00a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -140,6 +140,7 @@ RUN touch -a -m crates/prover/src/lib.rs RUN NITRO_BUILD_IGNORE_TIMESTAMPS=1 make build-prover-lib RUN NITRO_BUILD_IGNORE_TIMESTAMPS=1 make build-prover-bin RUN NITRO_BUILD_IGNORE_TIMESTAMPS=1 make build-jit +RUN NITRO_BUILD_IGNORE_TIMESTAMPS=1 make build-validation-server FROM scratch AS prover-export COPY --from=prover-builder /workspace/target/ / @@ -344,6 +345,13 @@ COPY --from=module-root-calc /workspace/target/machines/latest/machine.wavm.br / COPY --from=module-root-calc /workspace/target/machines/latest/until-host-io-state.bin /home/user/target/machines/latest/ COPY --from=module-root-calc /workspace/target/machines/latest/module-root.txt /home/user/target/machines/latest/ COPY --from=module-root-calc /workspace/target/machines/latest/replay.wasm /home/user/target/machines/latest/ +COPY --from=prover-export /bin/validator /usr/local/bin/ +# Symlink legacy machine dirs into /home/user/target/machines so the Rust +# validator can serve all module roots from a single --root-path. +RUN for dir in /home/user/nitro-legacy/machines/*/; do \ + name=$(basename "$dir"); \ + [ "$name" != "latest" ] && ln -sf "$dir" /home/user/target/machines/"$name" || true; \ + done RUN export DEBIAN_FRONTEND=noninteractive && \ apt-get update && \ apt-get install -y \ From 3fb2bc0cef5b6a116dffa019c73f53c1a81149e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Miko=C5=82ajczyk?= Date: Wed, 11 Mar 2026 11:48:11 +0100 Subject: [PATCH 2/6] Configure nitro-testnode to use Rust server --- nitro-testnode | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nitro-testnode b/nitro-testnode index a8f87ada672..951b0befb0b 160000 --- a/nitro-testnode +++ b/nitro-testnode @@ -1 +1 @@ -Subproject commit a8f87ada672eaaea6f9e9c508d439dfd85f471b3 +Subproject commit 951b0befb0be83783a3a71d86eec7ececa9a8762 From 1daebd0bf5370d97caf9ef92342df646d02fa334 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Miko=C5=82ajczyk?= Date: Wed, 11 Mar 2026 12:54:02 +0100 Subject: [PATCH 3/6] Allow http connection --- staker/block_validator.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/staker/block_validator.go b/staker/block_validator.go index fb0f3c752a2..6b92e49cfbd 100644 --- a/staker/block_validator.go +++ b/staker/block_validator.go @@ -203,8 +203,8 @@ func (c *BlockValidatorConfig) Validate() error { if err != nil { return fmt.Errorf("failed parsing validation server's url:%s err: %w", serverUrl, err) } - if u.Scheme != "ws" && u.Scheme != "wss" { - return fmt.Errorf("validation server's url scheme is unsupported, it should either be ws or wss, url:%s", serverUrl) + if u.Scheme != "ws" && u.Scheme != "wss" && u.Scheme != "http" && u.Scheme != "https" { + return fmt.Errorf("validation server's url scheme is unsupported, it should be ws, wss, http, or https, url:%s", serverUrl) } } } From b13956056db7d39d548a96012e133def9f051d55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Miko=C5=82ajczyk?= Date: Wed, 11 Mar 2026 12:54:13 +0100 Subject: [PATCH 4/6] Bump Go version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4f4fdadf00a..5b50b8c2751 100644 --- a/Dockerfile +++ b/Dockerfile @@ -67,7 +67,7 @@ COPY --from=wasm-libs-builder /workspace/ / FROM wasm-base AS wasm-bin-builder RUN apt update && apt install -y wabt # pinned go version -RUN curl -L https://golang.org/dl/go1.25.1.linux-`dpkg --print-architecture`.tar.gz | tar -C /usr/local -xzf - +RUN curl -L https://golang.org/dl/go1.25.8.linux-`dpkg --print-architecture`.tar.gz | tar -C /usr/local -xzf - COPY ./Makefile ./go.mod ./go.sum ./ COPY ./arbcompress ./arbcompress COPY ./arbos ./arbos From f192e7f81f76934f7e2a1d08bb4e3cb244527bd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Miko=C5=82ajczyk?= Date: Wed, 11 Mar 2026 14:09:14 +0100 Subject: [PATCH 5/6] Add healthchecks, wait for validator service to be healthy --- nitro-testnode | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nitro-testnode b/nitro-testnode index 951b0befb0b..ec0060b104a 160000 --- a/nitro-testnode +++ b/nitro-testnode @@ -1 +1 @@ -Subproject commit 951b0befb0be83783a3a71d86eec7ececa9a8762 +Subproject commit ec0060b104a4f1951ac7cdcb65dd108300f69504 From 627ffff18d0c63a9149f5d67cbb8257a2013f701 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Miko=C5=82ajczyk?= Date: Wed, 11 Mar 2026 16:11:29 +0100 Subject: [PATCH 6/6] More logging --- nitro-testnode | 2 +- staker/block_validator.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nitro-testnode b/nitro-testnode index ec0060b104a..c94a36ece78 160000 --- a/nitro-testnode +++ b/nitro-testnode @@ -1 +1 @@ -Subproject commit ec0060b104a4f1951ac7cdcb65dd108300f69504 +Subproject commit c94a36ece789a3d8c8163d85e68af36afb21ae45 diff --git a/staker/block_validator.go b/staker/block_validator.go index 6b92e49cfbd..4f31b53aab6 100644 --- a/staker/block_validator.go +++ b/staker/block_validator.go @@ -928,7 +928,7 @@ func (v *BlockValidator) advanceValidations(ctx context.Context) (*arbutil.Messa } v.testingProgressMadeMutex.Unlock() - log.Trace("result validated", "count", v.validated(), "blockHash", v.lastValidGS.BlockHash) + log.Info("block validated", "count", v.validated(), "blockHash", v.lastValidGS.BlockHash, "batch", v.lastValidGS.Batch, "posInBatch", v.lastValidGS.PosInBatch) } }