Etherlink: add support for executing Farfadet natively 馃崁
Context
Closes L2-648.
Getting native execution for Farfadet wasn't trivial, I splitted the commits on purpose so that we make sure nothing was missed or is hidden in the mass of diff (because of the snapshot).
Walkthrough of the commits:
- First commit snapshot Farfadet with renaming on crates.
- Second commit adds the Farfadet dependency to the wasm runtime library.
- Third commit adds Farfadet to the manifest.
- Fourth commit makes Farfadet available for native execution by adding the missing entrypoints + trait implem.
- Fifth commit splits the sdk runtimes per version to be able to compile the node with different sdk crates version.
- Sixth commit fix a compilation error where some symbols were undefined and some were duplicated.
- Seventh commit is just updating the kernel constants from the EVM node's side + reset regression test.
- Last commit is just a changelog entry.
Testing
After building Farfadet using the Docker-based script etherlink/scripts/build-wasm.sh, run the following command:
RUST_LOG=octez_evm_node_wasm_runtime::runtime=trace octez-evm-node run sandbox --init-from-snapshot --network testnet --data-dir testnet --native-execution-policy always --replicate --kernel $path_to_tezos_repo/etherlink/kernels-d2842ae4dea4447b7adc2e01079ed9fe9bc7a393/evm_kernel.wasm
You should see:
[2025-11-28T15:03:33Z TRACE octez_evm_node_wasm_runtime::runtime] kernel root hash 002ce9946e42dad48751bf81120f26d44bd86aa2e386e9015a0c2e8b0aefb89c
[2025-11-28T15:03:33Z TRACE octez_evm_node_wasm_runtime::runtime] farfadet::kernel_loop
Edited by Rodi-Can Bozman