diff --git a/CHANGES.rst b/CHANGES.rst index 0933c9c6a9fadc5ea1bf31cef7cbd4f90b6c4b70..802e7539cde35bf18d1e1d59a9a0c9bd591e2b2b 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -140,6 +140,9 @@ Smart Rollup node - Fix issue when connecting to Octez nodes behind a proxy that can rearrange chunks. (MR :gl:`!20057`) +- Fix issue where setting for ``l1_monitor_finalized`` would be ignored from the + configuration file. (MR :gl:`!20239`) + Smart Rollup WASM Debugger -------------------------- diff --git a/src/lib_smart_rollup_node/cli.ml b/src/lib_smart_rollup_node/cli.ml index 7f498b62ef7c74f73cc03391a61036708bdb2de7..889aa2f1c7c068cc4453dbf1055951391f825fb6 100644 --- a/src/lib_smart_rollup_node/cli.ml +++ b/src/lib_smart_rollup_node/cli.ml @@ -653,8 +653,12 @@ let etherlink_switch : (bool, Client_context.full) Tezos_clic.arg = ~doc:"Force this rollup to be detected as an Etherlink rollup" () -let l1_monitor_finalized_switch : (bool, Client_context.full) Tezos_clic.arg = +let l1_monitor_finalized_switch : + (bool option, Client_context.full) Tezos_clic.arg = Tezos_clic.switch ~long:"l1-monitor-finalized" ~doc:"The rollup node will only monitor finalized blocks of the L1 node" () + |> Tezos_clic.map_arg ~f:(fun _ -> function + | true -> Lwt_result_syntax.return_some true + | false -> Lwt_result_syntax.return_none) diff --git a/src/lib_smart_rollup_node/configuration.ml b/src/lib_smart_rollup_node/configuration.ml index 76d598a0d32f045c0dea376a2fd10a491a328f45..39ed53af176a827063b8866ea15673a82c7a7519 100644 --- a/src/lib_smart_rollup_node/configuration.ml +++ b/src/lib_smart_rollup_node/configuration.ml @@ -967,7 +967,10 @@ module Cli = struct l1_blocks_cache_size = default_l1_blocks_cache_size; l2_blocks_cache_size = default_l2_blocks_cache_size; prefetch_blocks = None; - l1_monitor_finalized; + l1_monitor_finalized = + Option.value + l1_monitor_finalized + ~default:default_l1_monitor_finalized; l1_rpc_timeout = default_l1_rpc_timeout; loop_retry_delay = default_loop_retry_delay; index_buffer_size; @@ -1112,7 +1115,10 @@ module Cli = struct (match profiling with | None -> configuration.opentelemetry | Some enable -> {configuration.opentelemetry with enable}); - l1_monitor_finalized; + l1_monitor_finalized = + Option.value + l1_monitor_finalized + ~default:configuration.l1_monitor_finalized; } let create_or_read_config ~config_file ~rpc_addr ~rpc_port ~acl_override diff --git a/src/lib_smart_rollup_node/configuration.mli b/src/lib_smart_rollup_node/configuration.mli index 8e0626aa6a7ba66c7e3f36d3bbe0b9da7fcb36e9..e37693a94c9960e13162ffd20709ded005194af4 100644 --- a/src/lib_smart_rollup_node/configuration.mli +++ b/src/lib_smart_rollup_node/configuration.mli @@ -283,6 +283,9 @@ val default_irmin_cache_size : int details such as a timestamp, message content, severity level, etc. *) val default_index_buffer_size : int +(** Default setting for monitoring finalized heads of L1 node. *) +val default_l1_monitor_finalized : bool + (** Encoding for configuration. *) val encoding : t Data_encoding.t @@ -332,7 +335,7 @@ module Cli : sig bail_on_disagree:bool -> profiling:bool option -> force_etherlink:bool -> - l1_monitor_finalized:bool -> + l1_monitor_finalized:bool option -> t tzresult Lwt.t val create_or_read_config : @@ -370,6 +373,6 @@ module Cli : sig bail_on_disagree:bool -> profiling:bool option -> force_etherlink:bool -> - l1_monitor_finalized:bool -> + l1_monitor_finalized:bool option -> t tzresult Lwt.t end diff --git a/src/lib_smart_rollup_node/rollup_node_daemon.ml b/src/lib_smart_rollup_node/rollup_node_daemon.ml index 0b06a17998de8cd42ad6c00080259b393a0d6021..01443d56da9beab53d849caddaf41e01c08119fb 100644 --- a/src/lib_smart_rollup_node/rollup_node_daemon.ml +++ b/src/lib_smart_rollup_node/rollup_node_daemon.ml @@ -1066,7 +1066,7 @@ module Replay = struct ~bail_on_disagree:false ~profiling ~force_etherlink:false - ~l1_monitor_finalized:false + ~l1_monitor_finalized:None in let* cleanup = setup_opentelemetry ~data_dir configuration in let* node_ctxt =