From bf9d6b513557ea212276cf03a3325f98efa37c64 Mon Sep 17 00:00:00 2001 From: Sylvain Ribstein Date: Thu, 24 Apr 2025 09:22:29 +0200 Subject: [PATCH 1/2] evm/node: move daily logs of rpc mode in separate files --- etherlink/CHANGES_NODE.md | 3 +++ etherlink/bin_node/main.ml | 24 +++++++++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/etherlink/CHANGES_NODE.md b/etherlink/CHANGES_NODE.md index 48036d32f215..efadd560f618 100644 --- a/etherlink/CHANGES_NODE.md +++ b/etherlink/CHANGES_NODE.md @@ -37,6 +37,9 @@ features. They can be modified or removed without any deprecation notices. If you start using them, you probably want to use `octez-evm-node check config --config-file PATH` to assert your configuration file is still valid.* +- The daily logs of the experimental RPC node are written in the same + directory but in a different files. (!17836) + ## Version 0.22 (2025-04-14) This releases of the EVM node adds support for executing natively the Calypso2 diff --git a/etherlink/bin_node/main.ml b/etherlink/bin_node/main.ml index 612ed2b47951..267a5a4ec2c2 100644 --- a/etherlink/bin_node/main.ml +++ b/etherlink/bin_node/main.ml @@ -872,7 +872,7 @@ let websocket_checks config = Internal_event.Simple.emit Event.buggy_dream_websocket () |> Lwt_result.ok | _ -> Lwt_result_syntax.return_unit -let make_event_config ~verbosity ?daily_logs_path () = +let make_event_config ~verbosity ?daily_logs_path ?daily_log_basename () = let open Tezos_event_logging.Internal_event in let open Tezos_base_unix.Internal_event_unix in let open Tezos_base.Internal_event_config in @@ -894,6 +894,9 @@ let make_event_config ~verbosity ?daily_logs_path () = ("rpc_server", Some Fatal); ] in + let daily_log_file = + Option.value ~default:"daily" daily_log_basename ^ ".log" + in let uri = make_config_uri ~create_dirs:true @@ -903,18 +906,27 @@ let make_event_config ~verbosity ?daily_logs_path () = ~chmod:0o640 ~section_prefixes:daily_logs_section_prefixes ~advertise_levels:true - (`Path Filename.Infix.(daily_logs_path // "daily.log")) + (`Path Filename.Infix.(daily_logs_path // daily_log_file)) in add_uri_to_config uri config | None -> config -let init_logs ~daily_logs ~data_dir configuration = +let init_logs ~daily_logs ?rpc_mode_port ~data_dir configuration = let open Tezos_base_unix.Internal_event_unix in let daily_logs_path = if daily_logs then Some Filename.Infix.(data_dir // "daily_logs") else None in + let daily_log_basename = + Option.map + (fun port -> "rpc-" ^ string_of_int port ^ "-daily") + rpc_mode_port + in let config = - make_event_config ~verbosity:configuration.verbose ?daily_logs_path () + make_event_config + ~verbosity:configuration.verbose + ?daily_logs_path + ?daily_log_basename + () in init ~config () @@ -1192,7 +1204,9 @@ let rpc_command = read_write_config ~finalized_view in - let*! () = init_logs ~daily_logs:true ~data_dir config in + let*! () = + init_logs ~daily_logs:true ~rpc_mode_port:rpc_port ~data_dir config + in let* () = websocket_checks config in let*! () = Internal_event.Simple.emit Event.event_starting "rpc" in Evm_node_lib_dev.Rpc.main -- GitLab From 12e2f2a3f0a3871d2f322037429fba8a3d321428 Mon Sep 17 00:00:00 2001 From: Sylvain Ribstein Date: Thu, 24 Apr 2025 09:45:01 +0200 Subject: [PATCH 2/2] evm/node: add log for rpc mode forwarding txs --- etherlink/CHANGES_NODE.md | 4 +++- etherlink/bin_node/lib_dev/rpc.ml | 21 ++++++++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/etherlink/CHANGES_NODE.md b/etherlink/CHANGES_NODE.md index efadd560f618..9778d4677f93 100644 --- a/etherlink/CHANGES_NODE.md +++ b/etherlink/CHANGES_NODE.md @@ -38,7 +38,9 @@ you start using them, you probably want to use `octez-evm-node check config --config-file PATH` to assert your configuration file is still valid.* - The daily logs of the experimental RPC node are written in the same - directory but in a different files. (!17836) + directory but in a different file. (!17836) +- RPC node now logs the transaction it forwards when using the private + inject endpoint of its local node. (!17836) ## Version 0.22 (2025-04-14) diff --git a/etherlink/bin_node/lib_dev/rpc.ml b/etherlink/bin_node/lib_dev/rpc.ml index 1e48ae755188..accae1b804bb 100644 --- a/etherlink/bin_node/lib_dev/rpc.ml +++ b/etherlink/bin_node/lib_dev/rpc.ml @@ -62,13 +62,23 @@ let container_forward_request ~public_endpoint ~private_endpoint ~keep_alive : (module struct let rpc_error = Internal_event.Simple.declare_2 - ~section:(Events.section @ ["local_node_rpc"]) - ~name:"local_node_rpc" + ~section:Events.section + ~name:"local_node_rpc_failure" ~msg:"local node failed answering {rpc} with {message}" ~level:Error ("rpc", Data_encoding.string) ("message", Data_encoding.string) + let forwarding_transaction = + Internal_event.Simple.declare_1 + ~section:Events.section + ~name:"forwarding_error" + ~msg:"forwarding transaction {tx_hash} to local node" + ~level:Info + ~pp1:(fun fmt Ethereum_types.(Hash (Hex h)) -> + Format.fprintf fmt "%10s" h) + ("tx_hash", Ethereum_types.hash_encoding) + let get_or_emit_error ~rpc_name res = let open Lwt_result_syntax in match res with @@ -96,7 +106,12 @@ let container_forward_request ~public_endpoint ~private_endpoint ~keep_alive : (*we return the known next_nonce instead of failing *) return next_nonce - let add ~next_nonce:_ tx_object ~raw_tx = + let add ~next_nonce:_ (tx_object : Ethereum_types.legacy_transaction_object) + ~raw_tx = + let open Lwt_syntax in + let* () = + Internal_event.Simple.emit forwarding_transaction tx_object.hash + in Injector.inject_transaction ~keep_alive ~base:private_endpoint -- GitLab