[go: up one dir, main page]

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

Merge request reports

Loading