From 73cf9992fcbdc4163d1df209ab1b4675be9677d4 Mon Sep 17 00:00:00 2001 From: Thomas Letan Date: Mon, 10 Mar 2025 15:55:16 +0100 Subject: [PATCH 1/4] EVM Node: Fixes [run sandbox --network mainnet --init-from-snapshot] --- etherlink/bin_node/lib_dev/sequencer.ml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/etherlink/bin_node/lib_dev/sequencer.ml b/etherlink/bin_node/lib_dev/sequencer.ml index c16663ab7833..631cdaf8c389 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 -- GitLab From cd019c68964cd22a41bfad377714e27ad94ee324 Mon Sep 17 00:00:00 2001 From: Thomas Letan Date: Mon, 10 Mar 2025 13:32:06 +0100 Subject: [PATCH 2/4] EVM Node: Release 0.19 --- etherlink/CHANGES_NODE.md | 59 ++++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/etherlink/CHANGES_NODE.md b/etherlink/CHANGES_NODE.md index b7050d47d677..91415caccdca 100644 --- a/etherlink/CHANGES_NODE.md +++ b/etherlink/CHANGES_NODE.md @@ -1,6 +1,18 @@ # Changelog -## Unreleased +## 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 @@ -21,27 +33,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 +56,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 +74,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) -- GitLab From 4e9db779c15ce413daaad918cbb697ee6d9d0e97 Mon Sep 17 00:00:00 2001 From: Thomas Letan Date: Mon, 10 Mar 2025 13:38:45 +0100 Subject: [PATCH 3/4] EVM Node: Bump the latest version of the EVM node --- .../pipelines/schedule_container_scanning_evm_node_releases.yml | 2 +- ci/bin/main.ml | 2 +- etherlink/scripts/docker-compose/mainnet-docker-compose/.env | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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 103a42cff328..9b29dd3ef1f7 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 2e3e5e60150b..59ebb019b498 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/scripts/docker-compose/mainnet-docker-compose/.env b/etherlink/scripts/docker-compose/mainnet-docker-compose/.env index 5ad585b97724..16c7da2f37ca 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 -- GitLab From 8a9b6eecb53e87a640dbf151fa7c1d41ffee3795 Mon Sep 17 00:00:00 2001 From: Thomas Letan Date: Mon, 10 Mar 2025 13:35:11 +0100 Subject: [PATCH 4/4] EVM Node: Start a new section in the changelog --- etherlink/CHANGES_NODE.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/etherlink/CHANGES_NODE.md b/etherlink/CHANGES_NODE.md index 91415caccdca..e486735f5d15 100644 --- a/etherlink/CHANGES_NODE.md +++ b/etherlink/CHANGES_NODE.md @@ -1,5 +1,26 @@ # Changelog +## Unreleased + +### 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 -- GitLab