Rollup node: allow to fetch pre-images from an external service
Context
This MR introduces a new command line argument --pre-images-endpoint
(and configuration field) to specify an endpoint from which pre-images can be downloaded individually. When given, the rollup node will attempt to download missing pre-images from this service.
The most straightforward use case for this feature is the seamless support of kernel upgrades of the Etherlink EVM. End users (rollup node operators) can choose to add such a service to their configuration and upgrades won't require any manual intervention, as is now the case.
Note that this is a bit redundant with DAC but does not require a committee or running a DAC node. The service is a centralized source of data for missing pre-images, and of course availability is not guaranteed. However, the service needs not be trusted as the rollup node verifies that the pre-image matches the hash before using it.
Manually testing the MR
dune exec tezt/tests/main.exe -- -f sc_rollup.ml -i reveals fetch