github ethereum-optimism/optimism op-challenger/v1.11.0
op-challenger v1.11.0

2 hours ago

Overview

Important

This is a recommended release for all op-challenger operators, and a strongly recommended one for operators still on v1.10.0 or earlier, because it also contains the eMudhra certificate authority fixes from v1.10.1. It contains a fix for resolved games holding back op_challenger_highest_acted_l1_block, quieter logging while the local node catches up, corrected CLI output for super-root games, and the bundled kona-host v1.9.0.

Breaking changes

  • list-games and list-claims output renamed (#23265). The L2 sequence number and root claim are now labelled correctly for every game type; for super-root games they are an L2 timestamp and a super root, not a block number and an output root. Scripts must switch:

    • list-games --sort-by l2BlockNum (OP_CHALLENGER_SORT_BY) becomes l2SequenceNum; the old value now fails with invalid sort-by value.
    • list-games --format json: l2BlockNumber becomes l2SequenceNumber, and outputRoot becomes rootClaim.
    • list-claims --format json: l2StartBlock becomes l2StartSequenceNumber, and l2BlockNumber becomes l2EndSequenceNumber.

    The old JSON keys are gone, not kept as aliases. Text output headings change from L2 Block / Output Root to L2 Sequence / Root Claim.

  • run-trace rejects --run entries it cannot execute (#23222). A --run entry whose game type is not cannon, cannon-kona or super-cannon-kona now fails at startup, listing the valid types. Before, such runs never executed a VM and logged setup failures every interval. Remove them before upgrading: one bad entry stops every run in the process.

  • The bundled kona-host refuses to start with an unusable dependency set file (#23276). When a dependency set file is configured with --depset-config or its --cannon-kona-depset-config / --super-cannon-kona-depset-config variants, kona-host now exits with an error if the file is missing, unreadable or doesn't parse, instead of serving an empty dependency set. A dependency set whose overrideMessageExpiryWindow is above 604800 seconds (7 days) is also rejected. Operators who set one of these flags must check the file before upgrading; operators relying on --network are unaffected.

Other changes

Bug fixes

  • Resolved games whose prestate can no longer be validated, for example because the node no longer has safe-head history for old games, are no longer retried with an Invalid prestate error on every scheduling pass. Such a game no longer holds op_challenger_highest_acted_l1_block back, which kept no-L1-progress alerts firing while active games were progressing, and is no longer counted in op_challenger_tracked_games{status="in_progress"}. In-progress games still require a valid prestate (#23535)

Logging

  • On super-root games, a node that has not yet processed the game's L1 head now logs Local node not sufficiently up to date at WARN, naming the endpoint that is behind and its current L1 block, instead of Failed to calculate all required moves at ERROR once per game per L1 block. The challenger still skips the game and retries on the next L1 block (#23020)

CLI tools

  • game-proposal-outputs now checks super-cannon-kona and super-permissioned games against superroot_atTimestamp from --superroot-rpc, and reports whether the node has processed past the game's L1 head. Before, it compared them with optimism_outputAtBlock at what is actually a timestamp, so the results were meaningless. --rollup-rpc is now needed only for output-root games. JSON records for super-root games add timestamp, superRoot and nodeSynced (#23242)
  • create-game accepts --game-type as a number or a name such as cannon or super-cannon-kona, and rejects anything else before sending a transaction; a name used to parse silently as 0 and create a cannon game. Super-root game types now require a non-zero --l2-chain-id (#23243)
  • list-games shows - instead of 0 for the claim count of super-permissioned games, whose claims it never fetched (#23237)

Bundled kona-host

The image now bundles kona-host v1.9.0, up from the kona-host v1.7.0 code in v1.10.x. See the kona-host v1.8.0 and kona-host v1.9.0 release notes. For op-challenger operators:

  • kona-host reads the beacon slot duration from SLOT_DURATION_MS in the beacon node's /eth/v1/config/spec, falling back to SECONDS_PER_SLOT, so it keeps fetching blobs from consensus clients that no longer serve SECONDS_PER_SLOT (#23138)
  • rustls is updated to 0.23.46 for RUSTSEC-2026-0349, a low-severity post-quantum key-exchange downgrade on kona-host's TLS connections to L1, L2 and beacon RPCs (#23433)
  • An I/O error on a preimage pipe no longer closes the pipe's file descriptor (#23038)
  • isSystemTx on Bedrock system deposits fetched over JSON RPC is now decoded as a boolean, so proofs over Bedrock-era blocks expect a current op-reth or op-geth endpoint (#22946)

Security

  • Includes the eMudhra certificate authority fixes (CVE-2026-111943) first released in v1.10.1: op-challenger and cannon are built with Go 1.26.10, whose crypto/x509 rejects the compromised eMudhra intermediates; the bundled kona-host's rustls-webpki 0.103.16 (RUSTSEC-2026-0382) and webpki-roots 1.0.10 (RUSTSEC-2026-0381) reject them and drop the eMudhra roots; and the image's CA trust store (ca-certificates-bundle 20260909-r3) no longer includes the emSign Root CA G3, C1 and C3 roots (#23546, #23567, #23566)

Full Changelog: op-challenger/v1.10.1...op-challenger/v1.11.0

🚢 Docker Image:

Don't miss a new optimism release

NewReleases is sending notifications on new releases.