diff --git a/.gitlab/ci/pipelines/schedule_container_scanning_evm_node_releases.yml b/.gitlab/ci/pipelines/schedule_container_scanning_evm_node_releases.yml index 103a42cff3285d26d9578a51e7534ca006ef070b..9b29dd3ef1f793704978e703447423e8677aed54 100644 --- a/.gitlab/ci/pipelines/schedule_container_scanning_evm_node_releases.yml +++ b/.gitlab/ci/pipelines/schedule_container_scanning_evm_node_releases.yml @@ -33,6 +33,6 @@ container_scanning: - gtcs scan variables: GIT_STRATEGY: fetch - CS_IMAGE: tezos/tezos:octez-evm-node-v0.18 + CS_IMAGE: tezos/tezos:octez-evm-node-v0.19 SECURE_LOG_LEVEL: debug CS_DOCKERFILE_PATH: build.Dockerfile diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 2e3e5e60150bf204f4564995eacff13dfe940d8d..59ebb019b498cdcbc31464f542a66b7611cbf315 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -335,7 +335,7 @@ let () = [ Common.job_datadog_pipeline_trace; Common.job_container_scanning - ~docker_image:"tezos/tezos:octez-evm-node-v0.18" + ~docker_image:"tezos/tezos:octez-evm-node-v0.19" ~dockerfile_path:"build.Dockerfile"; ] ~description: diff --git a/etherlink/CHANGES_NODE.md b/etherlink/CHANGES_NODE.md index b7050d47d677f7365f952ce9e8559129c96f9149..e486735f5d159c18f023cf1d712093d38acf7982 100644 --- a/etherlink/CHANGES_NODE.md +++ b/etherlink/CHANGES_NODE.md @@ -4,6 +4,39 @@ ### Breaking changes +### Configuration changes + +### RPCs changes + +### Metrics changes + +### Execution changes + +### Storage changes + +### Experimental features changes + +*No guarantees are provided regarding backward compatibility of experimental +features. They can be modified or removed without any deprecation notices. If +you start using them, you probably want to use `octez-evm-node check config +--config-file PATH` to assert your configuration file is still valid.* + +## Version 0.19 (2025-03-10) + +This release contains a number of quality of life improvements, notably related +to snapshots. The integration between the Octez EVM node and our [snapshot +service] is deepened, and it is now possible to initialize a new data directory +for arbitrary history mode using `run observer --network NETWORK --history +HISTORY --init-from-snapshot`. To a large extent, this release fully concludes +the stabilization of the new block storage feature initiated in version 0.16. + +[snapshot service]: https://snapshotter-sandbox.nomadic-labs.eu/ + +This release will not apply any migration to the node’s store (version 19), +meaning it is possible to downgrade to the previous version. + +### Breaking changes + - The default snapshot filename has been changed from `evm-snapshot--` to `evm--snapshot--`. (!16946) @@ -21,27 +54,14 @@ ### Configuration changes -- Observer `--init-from-snapshot` now also accepts a path to an existing - snapshot. (!16963) -- **experimental feature** Adds a configuration for the `tx_queue`. - (!16903) - Commands emitting logs now systematically comply with the `verbosity` configuration option. (!16975) -- Supports specifying an expected history mode in `run observer` with the - `--history` argument. The node will refuse to start if its context is using a - different history mode, but it can be used with `--init-from-snapshot` to - download a snapshot of the expected mode. (!16979) - Fixes experimental features being set by `init config`. (!17078) -- Fixes `--private-rpc-port` being ignored by the `run observer` command. (!17078) -- Observer `--init-from-snapshot` now defaults to our new snapshot services. - Snapshots are generated nightly (Europe time) for each history mode. (!17052) +- Fixes `--private-rpc-port` being ignored by the `run observer` command. + (!17078) ### RPCs changes -- **experimental feature** With the `tx_queue` feature enable in an - observer node, the RPC `eth_getTransactionByhash` returns the - transaction found in the `tx_queue`, it also works for transaction - that have been already forwarded to the upstream node. (!16829) - `GET /health_check` now returns an error if the node does not keep up with its remote EVM node. More precisely, the node will fetch the current head of the upstream node every 60 seconds, and compare it with its own. If the @@ -57,10 +77,6 @@ ### Execution changes -- **experimental feature** The `tx_queue` respect the configuration - field `keep_alive` for it's RPC. (!16894) -- **experimental feature** `tx_queue` clears itself when a delayed - inbox flush has happened. (!17091) - Adds `--network` and `--init-from-snapshot` to `run sandbox` to simplify starting a sandbox for a supported network. For instance, `run sandbox --network mainnet` will start a new sandbox using Mainnet’s initial kernel, @@ -79,6 +95,30 @@ of the node. (!16946) - Ensures `snapshot export` does not leave temporary files behind when interrupted. (!16985) +- Observer `--init-from-snapshot` now also accepts a path to an existing + snapshot. (!16963) +- Supports specifying an expected history mode in `run observer` with the + `--history` argument. The node will refuse to start if its context is using a + different history mode, but it can be used with `--init-from-snapshot` to + download a snapshot of the expected mode. (!16979) +- Observer `--init-from-snapshot` now defaults to our new snapshot services. + Snapshots are generated nightly (Europe time) for each history mode. (!17052) + +### Experimental features changes + +*No guarantees are provided regarding backward compatibility of experimental +features. They can be modified or removed without any deprecation notices. If +you start using them, you probably want to use `octez-evm-node check config +--config-file PATH` to assert your configuration file is still valid.* + +- Adds a configuration for the `tx_queue`. (!16903) +- With the `tx_queue` feature enable in an observer node, the RPC + `eth_getTransactionByhash` returns the transaction found in the `tx_queue`, + it also works for transaction that have been already forwarded to the + upstream node. (!16829) +- The `tx_queue` respect the configuration field `keep_alive` for it's RPC. + (!16894) +- `tx_queue` clears itself when a delayed inbox flush has happened. (!17091) ## Version 0.18 (2025-02-24) diff --git a/etherlink/bin_node/lib_dev/sequencer.ml b/etherlink/bin_node/lib_dev/sequencer.ml index c16663ab7833d5bf03aea6a4f757d5d5b385f41f..631cdaf8c3891ea418cdbeb6cf6f6d2804367a32 100644 --- a/etherlink/bin_node/lib_dev/sequencer.ml +++ b/etherlink/bin_node/lib_dev/sequencer.ml @@ -112,7 +112,21 @@ let main ~data_dir ?(genesis_timestamp = Misc.now ()) ~cctxt funded_addresses in let* () = - Option.iter_es (fun kernel -> Evm_context.patch_kernel kernel) kernel + Option.iter_es + (fun kernel -> + match kernel with + | Wasm_debugger.On_disk _ when status = Loaded -> + (* [kernel] being [On_disk] means it was provided by the + user. [status] being [Loaded] means the data-dir was + already populated or a snapshot was imported. + + This is the only case where we patch the kernel. If + [kernel] is [In_memory], then it was inferred from + [network]. If [status] is [Created], then [kernel] was + already used as initial kernel. *) + Evm_context.patch_kernel kernel + | _ -> return_unit) + kernel in return_unit | None -> return_unit diff --git a/etherlink/scripts/docker-compose/mainnet-docker-compose/.env b/etherlink/scripts/docker-compose/mainnet-docker-compose/.env index 5ad585b97724796b78b547081a45fc8888664492..16c7da2f37ca91902d046321dd59314d711e0b10 100644 --- a/etherlink/scripts/docker-compose/mainnet-docker-compose/.env +++ b/etherlink/scripts/docker-compose/mainnet-docker-compose/.env @@ -49,7 +49,7 @@ ARCHIVE_OCTEZ_NODE_ENDPOINT=${ARCHIVE_OCTEZ_NODE_ENDPOINT:-"https://rpc.tzkt.io/ # EVM node is not published yet in release and so it must uses a more # recent commit (on master branch). -EVM_OCTEZ_TAG=octez-evm-node-v0.18 +EVM_OCTEZ_TAG=octez-evm-node-v0.19 # exposed port of the evm-node container EVM_OCTEZ_PORT=8545 # snapshot to use to start the octez-evm-node with. This snapshot is