diff --git a/src/proto_021_PsQuebec/lib_delegate/baking_events.ml b/src/proto_021_PsQuebec/lib_delegate/baking_events.ml index ee40ee946dfdf1159cb9bf9b4cb6912a667e2de0..e8be873ba04eb2b2928c9df87e9ec3c63921cd0d 100644 --- a/src/proto_021_PsQuebec/lib_delegate/baking_events.ml +++ b/src/proto_021_PsQuebec/lib_delegate/baking_events.ml @@ -603,6 +603,14 @@ module Node_rpc = struct ~msg:"error while monitoring valid proposals {trace}" ~pp1:Error_monad.pp_print_trace ("trace", Error_monad.trace_encoding) + + let chain_id = + declare_1 + ~section + ~name:"node_chain_id" + ~level:Info + ~msg:"Running baker with chain id: {chain_id}" + ("chain_id", Chain_id.encoding) end module Delegates = struct diff --git a/src/proto_021_PsQuebec/lib_delegate/baking_scheduling.ml b/src/proto_021_PsQuebec/lib_delegate/baking_scheduling.ml index d9c1d2ba7fda80c23766988ecec44ec0ceb95c6d..8dc8ec0a0a610c99ad0ca392872273b31a9d9669 100644 --- a/src/proto_021_PsQuebec/lib_delegate/baking_scheduling.ml +++ b/src/proto_021_PsQuebec/lib_delegate/baking_scheduling.ml @@ -982,6 +982,7 @@ let run cctxt ?canceler ?(stop_on_event = fun _ -> false) let open Lwt_result_syntax in let*! () = Events.(emit Baking_events.Delegates.delegates_used delegates) in let* chain_id = Shell_services.Chain.chain_id cctxt ~chain () in + let*! () = Events.emit Baking_events.Node_rpc.chain_id chain_id in let* constants = match constants with | Some c -> return c diff --git a/src/proto_022_PsRiotum/lib_delegate/baking_events.ml b/src/proto_022_PsRiotum/lib_delegate/baking_events.ml index c558348d179809e82e7d5be6496d4ab1521651dd..ffb9d2bb00b2c080f585cc859d1330f6d5c4a959 100644 --- a/src/proto_022_PsRiotum/lib_delegate/baking_events.ml +++ b/src/proto_022_PsRiotum/lib_delegate/baking_events.ml @@ -590,6 +590,14 @@ module Node_rpc = struct ~msg:"error while monitoring valid proposals {trace}" ~pp1:Error_monad.pp_print_trace ("trace", Error_monad.trace_encoding) + + let chain_id = + declare_1 + ~section + ~name:"node_chain_id" + ~level:Info + ~msg:"Running baker with chain id: {chain_id}" + ("chain_id", Chain_id.encoding) end module Delegates = struct diff --git a/src/proto_022_PsRiotum/lib_delegate/baking_scheduling.ml b/src/proto_022_PsRiotum/lib_delegate/baking_scheduling.ml index fef652c479955c096690eacb6662a4614ccc0352..8250a1df51e92a7ecab9a768acf95cb81ec4841e 100644 --- a/src/proto_022_PsRiotum/lib_delegate/baking_scheduling.ml +++ b/src/proto_022_PsRiotum/lib_delegate/baking_scheduling.ml @@ -972,6 +972,7 @@ let run cctxt ?dal_node_rpc_ctxt ?canceler ?(stop_on_event = fun _ -> false) let open Lwt_result_syntax in let*! () = Events.(emit Baking_events.Delegates.delegates_used delegates) in let* chain_id = Shell_services.Chain.chain_id cctxt ~chain () in + let*! () = Events.emit Baking_events.Node_rpc.chain_id chain_id in let* constants = match constants with | Some c -> return c diff --git a/src/proto_alpha/lib_delegate/baking_events.ml b/src/proto_alpha/lib_delegate/baking_events.ml index 10199ac52a604272e85669f4182a497da5e16c37..50caced08be3da2395bd9346e8469bc9d8bc0c2e 100644 --- a/src/proto_alpha/lib_delegate/baking_events.ml +++ b/src/proto_alpha/lib_delegate/baking_events.ml @@ -597,6 +597,14 @@ module Node_rpc = struct ~msg:"error while monitoring valid proposals {trace}" ~pp1:Error_monad.pp_print_trace ("trace", Error_monad.trace_encoding) + + let chain_id = + declare_1 + ~section + ~name:"node_chain_id" + ~level:Info + ~msg:"Running baker with chain id: {chain_id}" + ("chain_id", Chain_id.encoding) end module Delegates = struct diff --git a/src/proto_alpha/lib_delegate/baking_scheduling.ml b/src/proto_alpha/lib_delegate/baking_scheduling.ml index 6428ce68c120b0d0d3c883865852146d20c2a13d..cc0c576a92f8bd2baa70571b0f42508b2d122013 100644 --- a/src/proto_alpha/lib_delegate/baking_scheduling.ml +++ b/src/proto_alpha/lib_delegate/baking_scheduling.ml @@ -978,6 +978,7 @@ let run cctxt ?dal_node_rpc_ctxt ?canceler ?(stop_on_event = fun _ -> false) let open Lwt_result_syntax in let*! () = Events.(emit Baking_events.Delegates.delegates_used delegates) in let* chain_id = Shell_services.Chain.chain_id cctxt ~chain () in + let*! () = Events.emit Baking_events.Node_rpc.chain_id chain_id in let* constants = match constants with | Some c -> return c diff --git a/tezt/tests/agnostic_baker_test.ml b/tezt/tests/agnostic_baker_test.ml index c38e574cf20b428d7964a2baad3f2b8fcc3541fa..6d85078e84cf58c1c0fcdc1cef0ef15460aadf25 100644 --- a/tezt/tests/agnostic_baker_test.ml +++ b/tezt/tests/agnostic_baker_test.ml @@ -212,8 +212,14 @@ let test_keep_alive = ~uses:(fun _ -> [Constant.octez_agnostic_baker]) @@ fun protocol -> let* node, client = Client.init_with_protocol ~protocol `Client () in + (* Provide a delegate with no voting power to avoid baking blocks with the baker + and the client simultaneously. *) let baker = - Agnostic_baker.create ~node_version_check_bypass:true node client + Agnostic_baker.create + ~delegates:[Constant.activator.public_key_hash] + ~node_version_check_bypass:true + node + client in let* () = Node.terminate node in (* Start the baker with no node running and no [--keep-alive], it crashes. *) @@ -226,23 +232,38 @@ let test_keep_alive = let* () = Agnostic_baker.run ~extra_arguments:["--keep-alive"] baker and* () = wait_for_cannot_connect in (* Start the node. *) - let* () = Node.run node [] and* () = Node.wait_for_ready node in + let f_wait_for_chain_id () = + (* This is an event emitted by the baker lib. *) + Agnostic_baker.wait_for baker "node_chain_id.v0" (fun _json -> Some ()) + in + let wait_for_chain_id = f_wait_for_chain_id () in + let* () = Node.run node [] + and* () = Node.wait_for_ready node + and* () = wait_for_chain_id in (* Bake a block, the baker is connected so it'll see it. *) - let wait_baker_proposal = + let f_wait_baker_proposal () = (* This is an event emitted by the baker lib. *) Agnostic_baker.wait_for baker "new_valid_proposal.v0" (fun _json -> Some ()) in - let wait_period_status = + let f_wait_period_status () = (* This is an event emitted by the agnostic baker. *) Agnostic_baker.wait_for baker "period_status.v0" (fun _json -> Some ()) in + let wait_baker_proposal = f_wait_baker_proposal () in + let wait_period_status = f_wait_period_status () in let* () = Client.bake_for_and_wait client and* () = wait_baker_proposal and* () = wait_period_status in (* Kill the node now that they are connected, the baker will stay alive. *) let* () = Node.terminate node and* () = wait_for_cannot_connect in (* Redo the procedure, restart the node and wait for the block events. *) - let* () = Node.run node [] and* () = Node.wait_for_ready node in + let wait_for_chain_id = f_wait_for_chain_id () in + let* () = Node.run node [] + and* () = Node.wait_for_ready node + and* () = wait_for_chain_id in + + let wait_baker_proposal = f_wait_baker_proposal () in + let wait_period_status = f_wait_period_status () in let* () = Client.bake_for_and_wait client and* () = wait_baker_proposal and* () = wait_period_status in