diff --git a/kona/docker/fpvm-prestates/justfile b/kona/docker/fpvm-prestates/justfile index 0f5849f995f1e..50f096ece377a 100644 --- a/kona/docker/fpvm-prestates/justfile +++ b/kona/docker/fpvm-prestates/justfile @@ -41,8 +41,18 @@ build-client-prestate-cannon-artifacts \ mkdir -p $OUTPUT_DIR echo "Building kona-client (variant: {{kona_client_variant}}) prestate artifacts for the cannon target. 🔫 Cannon Tag: {{cannon_tag}}" + + # Build the --allow flag conditionally (requires Docker Buildx v0.15.0+) + ALLOW_FLAG="" + BUILDX_VERSION=$(docker buildx version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1 || echo "0.0.0") + MAJOR=$(echo "$BUILDX_VERSION" | cut -d. -f1) + MINOR=$(echo "$BUILDX_VERSION" | cut -d. -f2) + if [[ "$MAJOR" -gt 0 ]] || [[ "$MAJOR" -eq 0 && "$MINOR" -ge 15 ]]; then + ALLOW_FLAG="--allow fs=${CUSTOM_CONFIGS_CONTEXT}" + fi + docker buildx bake \ --set "*.output=$OUTPUT_DIR" \ -f docker/docker-bake.hcl \ - --allow fs=${CUSTOM_CONFIGS_CONTEXT} \ + $ALLOW_FLAG \ kona-cannon-prestate diff --git a/op-devstack/sysgo/l1_nodes.go b/op-devstack/sysgo/l1_nodes.go index d6dc3baa002ff..1f8d879434f21 100644 --- a/op-devstack/sysgo/l1_nodes.go +++ b/op-devstack/sysgo/l1_nodes.go @@ -131,11 +131,8 @@ func WithL1NodesInProcess(l1ELID stack.L1ELNodeID, l1CLID stack.L1CLNodeID) stac }) l1ELNode := &L1Geth{ - id: l1ELID, - // Use WS for user RPC so op-node components (and op-supernode virtual nodes) - // can subscribe to L1 head updates. Using HTTP here causes HeadL1 to remain zero, - // which can stall components like the batcher that wait for initialized sync status. - userRPC: firstNonEmpty(l1Geth.Node.WSEndpoint(), l1Geth.Node.HTTPEndpoint()), + id: l1ELID, + userRPC: l1Geth.Node.HTTPEndpoint(), authRPC: l1Geth.Node.HTTPAuthEndpoint(), l1Geth: l1Geth, blobPath: blobPath, @@ -152,15 +149,6 @@ func WithL1NodesInProcess(l1ELID stack.L1ELNodeID, l1CLID stack.L1CLNodeID) stac }) } -func firstNonEmpty(values ...string) string { - for _, v := range values { - if v != "" { - return v - } - } - return "" -} - // WithExtL1Nodes initializes L1 EL and CL nodes that connect to external RPC endpoints func WithExtL1Nodes(l1ELID stack.L1ELNodeID, l1CLID stack.L1CLNodeID, elRPCEndpoint string, clRPCEndpoint string) stack.Option[*Orchestrator] { return stack.AfterDeploy(func(orch *Orchestrator) {