EVM node: use Dream/httpun instead of Resto/Cohttp for http server
What
This MR makes the EVM node use the Dream HTTP server (based on httpun) instead of the Resto/Cohttp one when the feature flag is experimental_features.rpc_server = "dream".
Why
Dream already provides easy to use functions for creating a websocket server whereas there is no support in Resto.
How
Requires !15793 (merged).
We reuse the services written for Resto by adding a thin wrapper around Dream in router.ml.
Manually testing the MR
Apply this patch the use the Dream server in tests:
diff --git a/etherlink/tezt/lib/evm_node.ml b/etherlink/tezt/lib/evm_node.ml
index 1c67312a745..707fe1e7455 100644
--- a/etherlink/tezt/lib/evm_node.ml
+++ b/etherlink/tezt/lib/evm_node.ml
@@ -1166 +1166 @@ let patch_config_with_experimental_feature
- ?(next_wasm_runtime = true) ?garbage_collector ?rpc_server () =
+ ?(next_wasm_runtime = true) ?garbage_collector ?(rpc_server = Dream) () =
@@ -1216 +1216 @@ let patch_config_with_experimental_feature
- |> optional_json_put ~name:"rpc_server" rpc_server (function
+ |> optional_json_put ~name:"rpc_server" (Some rpc_server) (function
And run the EVM node tests, e.g.
dune exec etherlink/tezt/tests/main.exe \ci_disabled
Edited by Alain Mebsout