Smart Rollup node changelog#

This page lists the changes in each Octez Smart Rollup node release, the most recent first. A version with a date, such as 20260724, is a standalone release. A version such as 24.0 is a release of the Octez suite. Each change is under the first release that contains it.

See Smart Rollup node releases for the release procedure.

Unreleased#

  • The vendored Wasmer runtime used for fast execution was upgraded from 3.3.0 to 7.2.1. This fixes a misaligned ucontext_t dereference that made the previous version crash with SIGILL or SIGSEGV on macOS ARM64. The set of WebAssembly proposals accepted by fast execution is unchanged.

  • Fixed the WASM PVM fast execution engine (Wasmer) answering a different error code than the interpreter when a kernel reads an empty, or a negative, number of bytes from an address outside its memory. A kernel making such a call computed a different state under the fast engine than under the interpreter. (MR !22837)

  • The WASM PVM fast execution engine (Wasmer) now implements the new durable storage (NDS) host functions of PVM version V6 and above, with the same results as the interpreter. A kernel importing them no longer panics the fast engine, so it runs at full speed without --slow-vm-fallback. (MR !22822)

  • The RPC server now rejects with HTTP 413 requests whose body exceeds the cap set by the new --rpc-max-request-body option (in bytes, 32 MiB by default).

Version 25.3 (2026-10-20)#

  • Security: For protocol Ushuaia (025), refutation moves are now injected together with an additional smart_rollup_add_messages operation, required by the new validation of refutation proofs. (MR !23032)

Version 20260724 (2026-07-24)#

  • Security fix Fixed the public secure RPC ACL, which did not deny the mutating /local/dal/** endpoints (POST /local/dal/batcher/injection, POST /local/dal/slot/indices and POST /local/dal/injection/<id>/forget). On a publicly exposed node an unauthenticated caller could enqueue DAL payloads that the operator node published as an operator-funded dal_publish_commitment operation on L1. These endpoints are now denied like the other /local/** mutating endpoints. (MR !22597)

  • Added support for the Ushuaia protocol (protocol 025, PsUshuai): its protocol plugin is now included in release builds of the rollup node. (MR !22485)

  • The injector now splits batches when individual operations fail simulation with gas exhaustion (instead of repeatedly dropping them), and re-queues the operations set aside by a batch split so they are reconsidered in a later injection round. This fixes a permanent stall with large backlogs of same-tag operations (e.g. cementation). (MR !22417)

  • The injector now gives cementation operations strictly higher priority than commitment publication, and the rollup node no longer enqueues commitments that are beyond the protocol’s smart_rollup_max_lookahead_in_blocks window. This prevents a backlog of failing publish operations from starving cementation when the operating and cementing purposes share the same key. (MR !22414)

  • Breaking change The RPC GET /global/last_cemented_commitment now always returns the last cemented commitment commitment_hash and level known from L1, with the commitment content in an optional commitment field, instead of returning null when the content is not available in the node’s storage (e.g. after a snapshot import in full mode). (MR !22415)

  • The fast WASM execution engine (Wasmer) now trusts deterministic WASM traps (unreachable, out-of-bounds memory access, division by zero, indirect call type mismatch): the trap is recorded as a failed kernel_run in the PVM state, mirroring the reference WASM PVM behaviour, instead of aborting fast execution (which by default makes the node exit, or falls back to the slow interpreter with --slow-vm-fallback). A warning event is emitted with the trap message. (MR !22299)

  • Hardened snapshot import: archive members whose path would resolve outside the destination directory are now rejected. (MR !22100)

  • Fixed a file descriptor leak in the RPC client: the connection of each followed HTTP redirect was never released. This affected the rollup node when its L1 endpoint answers redirects (e.g. behind a reverse proxy). (MR !22138)

  • The rollup node RPC server now enables TCP keepalive on accepted connections, so that connections whose peer has disappeared without closing (e.g. behind a NAT or load balancer that drops idle flows) are eventually closed and their resources released, instead of being retained until restart. (MR !22167)

Internal#

  • Moved reading of WASM durable storage outside the PVM plugin interface: the durable storage RPCs, dump durable storage command and kernel preload now decode the durable storage through a shared helper instead of per-protocol plugin accessors. (MR !22255)

  • Added a shared WASM 2.0.0 PVM Irmin state module, used by all protocol plugins. (MR !22254)

  • Added Durable.fold to the WASM PVM durable storage API. (MR !22205)

  • Made the WASM PVM dual proof encoding embeddable, keeping proofs byte-identical. (MR !22400)

  • Renamed the tree type of the PVM plugin signature to state. (MR !22192)

  • Fast WASM execution engine: dropped the singleton VM instance and exposed the Make_vm/Make_pvm functor surface. (MR !22047)

Version 20260511 (2026-05-11)#

  • Fixed a regression in snapshot import where non-compact snapshots re-evaluated blocks even when the head’s commit was already present in the imported context. Context reconstruction is now skipped in this case. (MR !21810)

  • Added a --dal-node option to snapshot import so reconstruction of compact snapshots can fetch DAL pages from a DAL node. (MR !21810)

  • Made snapshot import more robust when verifying that the snapshot’s commitment is published on L1: the rollup node now searches around the snapshot’s head level rather than only at the L1 head, and reports a clear error suggesting an archive L1 node when the snapshot is older than the savepoint. (MR !21841)

  • Registered the missing handler for the /global/last_cemented_commitment RPC, which previously returned 404 even though the service was declared. (MR !21757)

  • The rollup node no longer exits when the L1 RPC is unreachable at startup; the initial connection is retried with the configured --reconnection-delay exponential backoff, matching the existing behaviour for runtime disconnections. A reconnected notice is emitted once the connection is re-established. (MR !21854)

Version 20260407 (2026-04-07)#

  • Fixed l1_monitor_finalized being ignored when set in the configuration file, and fixed the /global/monitor_finalized_blocks streaming RPC not working when --l1-monitor-finalized was used. (MRs !20239, !20256)

  • Fixed inbox divergence when DAL attestation lags produce published levels before the rollup’s genesis level. Errors fetching DAL attested slots messages are now propagated instead of silently returning an empty list. (MR !21293)

  • Delayed the start of a refutation game by one commitment period (approximately 15 minutes) to prevent some edge cases in dispute resolution. (MR !20674)

  • Added max_batch_length configuration option in the injector settings to limit the maximum number of operations included in a single L1 batch. This allows operators to control batch length independently of the operation size limit, which can help avoid gas quota exceeded errors when multiple operations of the same type would consume too much gas when batched together. Configure via injector.max_batch_length in the rollup node configuration file. (MR !20670)

  • Remove protocol plugin for Nairobi (17). This still allows to replay Etherlink mainnet from genesis but not Etherlink testnet. (MR !20301)

  • Fix the status of traces for our workers’ handlers remaining unset. (MR !20379)

  • The rollup node only monitors finalized L1 heads when used on a RISC-V rollup. (MR !20448)

  • When the fast WASM execution engine (Wasmer) fails, the node now exits by default instead of falling back to the slow OCaml interpreter. Use --slow-vm-fallback to opt in to the previous behavior. (MR !21069)

  • Fixed Wasmer host function errors (e.g. during reveal_preimage) being lost across the OCaml-Wasmer boundary. Exceptions are now passed through a side-channel instead of Wasmer traps, which also fixes crashes (SIGILL) on macOS ARM64 caused by unreliable Cranelift panic unwinding. (MRs !21082, !21125)

  • Store the PVM state hash and status during block evaluation and serve RPCs directly from the store, avoiding expensive context checkouts. This includes a migration of the SQL database. (MR !21016)

  • Added a --level option to snapshot export and import commands. For export, it controls the last level included in the snapshot (defaults to finalized). For import, it allows importing a snapshot at an earlier level than provided by the snapshot. This fixes snapshot imports failing when the L2 head in the snapshot is on a branch that was reorganized on L1. (MR !21201)

  • Fixed an expensive and unnecessary reorg computation when the rollup node connects to an L1 node that is behind on the same chain. Previously this could cause the daemon to catch up very slowly. (MR !21323)

  • Refactored PVM state handling to use mutable state, avoiding redundant copies of the PVM state during block evaluation. This is particularly beneficial for RISC-V rollups where the PVM state is large. (MRs !20158, !20186, !20214, !20403, !20409, !20465, !21183)

  • Added --commit-on option to control how frequently the rollup node commits PVM context to disk, reducing I/O overhead for PVMs with expensive serialization such as RISC-V. (MR !19902)

  • Fixed DAL-related refutation games: handle invalid page IDs with a dedicated proof variant, support changing DAL attestation lag across protocol migrations, hardened page import when published levels are far in the future relative to the import level, and use publication-time DAL parameters when importing pages. (MRs !19533, !19977, !20051, !20402)

  • Optimized refutation game state caching by sharing immutable state copies across tick caches and avoiding expensive context checkouts between blocks. For RISC-V rollups, cached dissection states are now snapshotted to disk instead of kept in memory, reducing live PVM states from ~131 to ~4 during games. (MRs !20996, !21156)

  • The rollup node now reads DAL slot attestation status directly from L1 instead of relying on the DAL node, which only updates after block finalization. (MRs !19532, !20326)

  • The rollup node now retries fetching DAL slot status for a few seconds when the status is not yet final, instead of immediately returning an error that could crash the node. (MR !19919)

  • Added Prometheus metrics for RISC-V PVM live states (immutable and mutable), exposed at the /metrics endpoint as octez_sc_rollup_node_riscv_states. (MR !20688)

  • Added OpenTelemetry tracing for RPCs between the rollup node and the DAL node. (MR !19801)

  • Fixed injection_ttl configuration being ignored by the injector, which always used the default of 120 L1 blocks. (MR !21193)

Version 24.0 (2026-01-08)#

  • Updated opentelemetry library to 0.12 which should fix the issue where a log protobuf encoding crashes the node when telemetry is activated. (MR !19516)

  • Ensured metrics are initialized before starting metrics server. (MR !19707)

  • Allow to only monitor finalized L1 blocks with CLI switch --l1-monitor-finalized. This allows a more efficient processing when the consumer is only interested in finalized blocks. (MR !19568)

  • New RPC GET /global/monitor_finalized_blocks to stream only finalized blocks (similarly to /global/monitor_blocks). (MR !19568)

  • Fixed streaming RPC /global/monitor_blocks (resp. /global/monitor_finalized_blocks) which could return an empty body if they were called before the first (resp. finalized) block is produced. (MR !19569)

  • Reduced number of RPCs to L1 node by fetching chain id on startup. (MR !19788)

  • The rollup node now properly supports DAL on Shadownet. (MRs !19765, !19809)

  • Fixed an issue when connecting to Octez nodes behind a proxy that can rearrange chunks. (MR !20057)

Version 20251031 (2025-10-31) 🎃#

  • Update opentelemetry library to 0.12 which should fix the issue where a log protobuf encoding crashes the node when telemetry is activated. (MR !19516)

  • Ensure metrics are initialized before starting metrics server. (MR !19707)

  • Allow to only monitor finalized L1 blocks with CLI switch --l1-monitor-finalized. This allows a more efficient processing when the consumer is only interested in finalized blocks. (MR !19568)

  • New RPC GET /global/monitor_finalized_blocks to stream only finalized blocks (similarly to /global/monitor_blocks). (MR !19568)

  • Fix streaming RPC /global/monitor_blocks (resp. /global/monitor_finalized_blocks) which could return an empty body if they were called before the first (resp. finalized) block is produced. (MR !19569)

  • Reduce number of RPCs to L1 node by fetching chain id on startup. (MR !19788)

  • The rollup node now properly supports DAL on Shadownet. (MRs !19765, !19809)

Version 20250911 (2025-09-11)#

  • Improved Opentelemetry traces for Etherlink block evaluation (MR !18592)

  • The rollup node now exports its logs to Opentelemetry when enabled in the configuration file or with --profiling true. (MR !18910)

  • The rollup node now ensures pending telemetry data is exported on exit (MR !19157)

  • Allow patching durable storage from a file using the CLI command patch durable storage (for development purposes only). (MR !19195)

Version 23.0 (2025-08-21)#

  • The RPCs /global/block/{block_id}/dal/slot_headers and /global/block/{block_id}/dal/processed_slots have been deleted, since they are now obsolete, the DAL-related indexing logic having been moved out of the rollup-node (MR !17466).

  • Breaking change Enforced stricter validation for the JSON configuration file. Previously, the parser would silently ignore any content that appeared after the first valid JSON object. Now, any extraneous data will cause the function to return an error. (MR !18745)

Version 20250627 (2025-06-27)#

  • Add query parameter outbox_level for RPCs /local/outbox/pending/executable and /local/outbox/pending/unexecutable. (MR !16831)

  • Add a new RPC /local/outbox/pending to fetch all known outbox messages with their status. (MR !16831)

  • Add a CLI argument --config-file to allow specifying a configuration file outside the data directory. (MR !17225)

  • Allow to provide a remote URL for downloading snapshots in commands snapshot info and snapshot import. (MRs !17407, !17420, !17477)

  • Display logging levels in logs by default. (MR !17479)

  • Allow to import snapshots from standard input with -. (MR !17463)

  • Retire old store implementation. The rollup node cannot read stores produced by versions < v21.0 anymore. (MR !17933)

  • Aggregate performance metrics for all child processes (including Irmin GC). (MR !17973)

  • Add new commands replay block and replay blocks to replay one or multiple L1 blocks. The results are compared with what the rollup node has stored on disk. (MR !18160)

  • Produce Opentelemetry traces with --profiling, configurable with a field "opentelemetry" in the configuration. (MRs !18274, !18290, !18331, !18344, !18368, !18433, !18434, !18441, !18466)

  • The rollup node now identifies Etherlink rollups (the rollup can also be forced to be identified as Etherlink with the CLI switch --etherlink) and emit events for processed Etherlink blocks in the logs and in the traces. (MR !18466)

Version 22.1 (2025-06-11)#

  • Fixed an issue with the execution of outbox messages (e.g. withdrawals on Etherlink) during reorgs, when messages are not in the new chain. (MR !17961)

Version 22.0 (2025-04-07)#

  • In the bailout mode there was a bug where the wrong key was used when recovering the bond. The node uses the cementing key and not the operating key. (MR !16016).

  • Extended the DELETE /admin/injector/queues RPC endpoint with new query to clear injector queues based on priority order. The RPC can takes two optional arguments:

    • order_below: an integer that filters out all operations with order strictly inferior to it.

    • drop_no_order: a boolean that if true remove all operations that has no order specified. false by default.

    When tag is specified only operation of that type will be considered, else all operations are considered.(MR !15929)

  • Added an RPC DELETE /admin/batcher/queue endpoint, which can take two optional arguments:

    • order_below: an integer that filters all messages with order inferior to it.

    • drop_no_order: a boolean that if true remove all messages that has no order specified. false by default. If no order_below is specified it completely clear the queue.

    (MR !15929)

  • Improved error messages for RPC /global/block/<block_id>/helpers/proofs/outbox/<outbox_level>/messages?index=<message_index>. (MR !15507)

  • Fixed potential issue with store with SQLite < 3.35. (MR !15631)

  • Improved error messages for RPC /global/block/<block_id>/helpers/proofs/outbox/<outbox_level>/messages?index=<message_index>. (MR !15507)

  • Fix potential issue with store with SQLite < 3.35. (MR !15631)

  • Addeed a new CLI switch --unsafe-disable-wasm-kernel-checks which allows to bypass invalid kernel checks in the WASM VM, for use by jstz. (MR !15910)

  • Support remote signer scheme and check remote signer available on startup. (MR !16651)

Version 21.3 (2025-01-23)#

  • Updated batcher with a new order structure. The RPC /local/batcher/injection now has a new query argument possibility "order": <int>. The batcher will batch the received chunk with the following priority order: First chunks with ascending order then chunks by order of arrival. (MR !15672)

  • Injector now uses a heap structure for its queue which allows to prioritize operations to send on L1. (MR !15864)

  • New RPC to retrieve values under a key in the durable storage /global/block/<block_id>/durable/wasm_2_0_0/values?key=<key>&offset=<offset>&length=<length>. (MR !15627)

  • Added RPCs /global/block/<block_id>/committed_status to retrieve commitment and cementation status for a given block (or an estimated timestamp otherwise). (MR !15409)

  • Fixed an issue in the background store migration which could make the rollup node send old heads in its stream at the end of the migration. (MR !15739)

  • Fixed an issue in the background store migration which could make the rollup node send old heads in its stream at the end of the migration. (MR !15739)

Version 21.0 (2024-11-14)#

  • Storage now uses SQLite as a backend instead of the custom indexed-file based store. This change makes the rollup node more robust but entails a migration of the store data. (MRs !15053, !15026, !15059, !15073, !15218, !15257)

  • Allow to import snaphosts for older stores by migrating the data on import. (MR !15422)

  • Fixed a bug which would make injection of messages in the batcher with the RPC /local/batcher/injection fail if called too early. (MR !15459)

  • Updated RPC /local/batcher/injection with a new query argument possibility. When the rpc contains "drop_duplicate": true then the batcher will drop the messages that were already injected with a previous RPC call. If "drop_duplicate": false then the rollup node defaults to its the previous behavior, where messages are injected again, even if the exact same one was previously injected. By default "drop_duplicate": false. (MR !13165)

  • RPC /health now returns meaningful health related data to asses if the rollup node operates correctly. Old /health RPC is renamed to /ping. (MR !12940)

  • Use a local cache per game for intermediate states of dissections. (MR !12899)

  • Introduced the 5th version of the WASM PVM, which defaults to a higher tick limit to delegate refutability to the kernel. (MR !12999)

  • Trigger GC every 1000 blocks (instead of 100) by default to reduce CPU consumption. (MR !13177)

  • Default history mode is now “full”. (MR !13178)

  • Allow to import archive snapshots in “full” rollup node. (MR !13186)

  • Fixed a bug in how commitments are computed after a protocol migration where the commitment period changes. (MR !13588)

  • Ensure penultimate commitment is published on snapshot export as a failsafe. (MR !13544)

  • Included commitment publication information in snapshots. (MR !13724)

  • Under-approximate publication level for cementation when it is missing. (MR !13725)

  • New metrics for the rollup node, including performance ones which can be enabled with the flag --enable-performance-metrics (requires lsof). (MR !12290)

  • Rotate multiple batcher keys in injector so that they are used evenly. (MR !14194)

  • RPC /global/block/<block_id>?outbox=true now returns the outbox messages produced by the PVM for block_id if the query parameter outbox is present. (MR !14140)

  • Introduced the 6th version of the WASM PVM. (MR !14493)

  • New RPC GET /admin/cancel_gc to cancel any on-going garbage collection in the rollup node. (MR !14693)

  • Refined GC for rollup node is now triggered every ~3 days to make it less wasteful on resources. Gc is not run anymore after importing an archive snapshot in a full node. (MR !14717)

  • The command snapshot export tries to cancel ongoing GC, if any. Add --rollup-node-endpoint to specify the RPC server endpoint, if the address and port of the running node have been changed via command-line arguments. (MR !14694)

  • Fix an issue which could introduce a discrepancy between the snapshot header and its content. (MR !14777)

  • The command generate openapi now exports mimified JSON. (MR !14908)

  • The rollup node can be configured to execute outbox message automatically with filters. (MRs !14498, !14499)

Version 20.1 (2024-06-18)#

  • New command repair commitments which allows the rollup node to recompute correct commitments for a protocol upgrade which did not. (MR !13615)

Version 20.0 (2024-05-28)#

  • Added support for custom, and user defined, PVM patches for rollup genesis (to be used on private rollups). (MRs !12907, !12957, !12983)

  • Added RPC /describe?recurse=true to retrieve schema of RPCs for the rollup node. (MR !10118)

  • Added RPC /openapi?protocol={ProtoHash} to retrieve the OpenAPI specification for RPCs of the rollup node. (MR !10118)

  • Introduced a new command generate openapi, to generate the OpenAPI JSON specification and output it to stdout. (MR !10118)

  • Registered in octez-codec some of the protocol smart rollup related encodings. (MRs !10174, !11200)

  • Added Snapshot inspection command. (MR !11456)

  • Added Snapshot export options. (MRs !10812, !11078, !11256, !11454)

  • Added Snapshot import. (MR !10803)

  • Pre-images endpoint (configurable on the CLI of the config file) to allow the rollup node to fetch missing pre-images from a remote server. (MR !11600)

  • Higher gas limit for publish commitment operations to avoid their failing due to gas variations. (MR !11761)

  • Breaking change Removed RPC /helpers/proofs/outbox?message_index=<index>&outbox_level=<level>&serialized_outbox_message=<bytes>. Use helpers/proofs/outbox/<level>/messages?index=<index> to avoid generating the serialized_outbox_message yourself. (MR !12140)

  • Compact snapshots with context reconstruction. (MR !11651)

  • Prevent some leak of connections to L1 node from rollup node (and avoid duplication). (MR !11825)

  • Playing the refutation games completely asynchronous with the rest of the rollup node. (MR !12106)

  • Rollup node can recover from degraded mode if they have everything necessary to pick back up the main loop. (MR !12107)

  • Added RPC /local/synchronized to wait for the rollup node to be synchronized with L1. (MR !12247)

  • Secure ACL by default on remote connections. Argument --acl-override secure to choose the secure set of RPCs even for localhost, e.g., for use behind a proxy. (MR !12323)

  • Fixed an issue with catching up on rollup originated in previous protocol with an empty rollup node. (MR !12565)

  • Fixed issue with catching up on rollup originated in previous protocol with an empty rollup node. (MR !12565)

  • Added new administrative RPCs /health, /version, /stats/ocaml_gc, /stats/memory, and /config. (MR !12718)

  • Added administrative RPCs to inspect injector queues and clear them. (MR !12497)

Version 19.2 (2024-04-16)#

  • Fixed an issue with the way the rollup node computes dissections in the refutation games. (MR !12534)

Version 19.1 (2024-02-06)#

  • Fixed a critical bug that could lead to data loss when chain reorganizations happen while a GC is running. (MR !11358)

  • Fixed issue with constants fetching during protocol migration. (MR !11804)

Version 19.0 (2024-01-22)#

  • A new bailout mode that solely cements and defends existing commitments without publishing new ones. Recovers bonds when possible, after which the node exits gracefully. (MR !9721, MR !9817, MR !9835)

  • RPC /global/block/<block-id>/simulate accepts inputs with a new optional field "log_kernel_debug_file" which allows to specify a file in which kernel logs should be written (this file is in <data-dir>/simulation_kernel_logs). (MR !9606)

  • The protocol specific rollup nodes binaries are now deprecated and replaced by symbolic links to the protocol agnostic rollup node. In the future, the symbolic links will be removed. (MR !10086)

  • Released the protocol agnostic rollup node octez-smart-rollup-node as part of the Octez distribution. (MR !10086)

  • Added the rollup node command inside the docker entrypoint (MR !10253)

  • Added the argument cors-headers and cors-origins to specify respectively the allowed headers and origins. (MR !10571)

  • Fix header in messages store to use predecessor hash to avoid missing pointer in case of reorganization and GC. (MR !10847)

  • Added a garbage collection mechanism that cleans historical data before the LCC. (MRs !10050, !10135, !10236, !10237, !10452)

  • Added a history-mode option, which can be either archive or full. In archive, the default, the rollup node has the whole L2 chain history, no GC happens. In full the rollup node retains data for possible refutations. (MRs !10475, !10695)

  • Snapshot export with integrity checks. (MR !10704)

  • Now smart rollup node allows multiple batcher keys. Setting multiple keys for the batching purpose allows to inject multiple operations of the same kind per block by the rollup node. ( MR !10512, MR !10529, MR !10533, MR !10567, MR !10582, MR !10584, MR !10588, MR !10597, MR !10601, MR !10622, MR !10642, MR !10643, MR !10839, MR !10842, MR !10861, MR !11008 )

Version 18.0 (2023-09-20)#

  • Fixed an issue where the rollup node could forget to update its Layer 2 head for a block. (MR !9868)

  • Remove the batcher simulation. This simulation was generic and could not catch problematic transaction. Batcher configuration now has a one less field simulate. (MR !10842)

  • Faster bootstrapping process. (MR !8618, MR !8767)

  • Single, protocol-agnostic, rollup node binary. The rollup node octez-smart-rollup-node works with any protocol and supports protocol upgrades. The other protocol specific rollup nodes still exist but will be deprecated. (MR !9105)

  • Added a new metrics head_inbox_process_time to report the time the rollup node spent to process a new Layer 1 head. (MR !8971)

  • Breaking change Field "messages" of RPC /global/block/{block_id} now contains serialized messages (external messages start with 01 and internal start with 00). (MR !8876)

  • Breaking change RPC /global/helpers/proof/outbox is moved to /global/block/head/helpers/proof/outbox. (MR !9233)

  • Fixed an issue with level association which could allow the rollup node to publish invalid commitments. (MR !9652)

Version 17.0 (2023-06-07)#

  • Fixed inverted logic for playing a timeout move in a refutation game (MR !7929).

  • Stopped the node when the operator deposit is slashed (MR !7579).

  • Improved computations of refutation games’ dissections (MRs !6948, !7751, !8059, !8382).

  • Improved WASM runtime performances (MR !8252).

  • Made the Fast Execution aware of the newly introduced WASM PVM versionning (MR !8079).

  • Fixed UX issues related to the rollup node configuration (MRs !8148, !8254, !8156).

  • Quality of life improvements in the Layer 1 injector (MRs !7579, !7673, !7675, !7685, !7681, !7846, !8106).

  • Fixed logs for kernel debug messages (MR !7773).

  • New argument --boot-sector-file to specify a path to the boot sector used for the rollup. This is an optional argument that is required only if the smart rollup was bootstrapped and not originated (MR !8556).

  • Fixed legacy run command (MR !8547).

  • Fixed missing commitment for genesis by using local computation instead of RPC (MR !8617).

  • Fixed issue where rollup node believed it disagreed with L1 regarding cemented commitments (MR !8615).

  • Breaking Change Made the simulation RPC take serialized inbox messages as inputs instead of external message payloads. It can be used to simulate internal messages as well. It means that previously used format of inputs needs to be adapted, i.e. they need to be wrapped in external messages. (MR !8888).