EVM/scripts: build reproducible wasm and preimages
What
Fix #6206 (closed)
This MR provides a script to build the evm kernel wasm files and preimages through a docker container, allowing reproducible builds.
Why
Sofar the preimages and wasm files are only given through https://snapshots.eu.tzinit.org/etherlink-ghostnet/index.html, it hurts a bit the decentralization.
How
To build the kernel, we use the rust-toolchain image stored in gitlab registry (this is done through arguments, so it can be changed if needed) and force the docker platform to be always linux/x86_64 which make, e.g., docker for mac use emulation.
Manually testing the MR
you can run the script:
etherlink/scripts/build-wasm.sh
you should get an output directory: etherlink/kernels-$COMMIT with the wasm files and the preimages.
The sha256 hash of the wasm file (obtained with sha256sum evm_kernel.wasm) should be (on any architecture):
02143db5a90e204ecac9d4c2b623ebb0395507071f236c57bd63bc426ee346b7
Following
The next job is to run this job in the CI and put the directory as artifact.
Checklist
-
Document the interface of any function added or modified (see the coding guidelines) -
Document any change to the user interface, including configuration parameters (see node configuration) -
Provide automatic testing (see the testing guide). -
For new features and bug fixes, add an item in the appropriate changelog ( docs/protocols/alpha.rstfor the protocol and the environment,CHANGES.rstat the root of the repository for everything else). -
Select suitable reviewers using the Reviewersfield below. -
Select as Assigneethe next person who should take action on that MR