diff --git a/src/lib_dal_node/gossipsub/gs_transport_connection.ml b/src/lib_dal_node/gossipsub/gs_transport_connection.ml index 2f4c192bd3fdacab92455b2e11d378845be2f76e..bfb604af4c4e02089c7ae5dd91eef4eda5188c1c 100644 --- a/src/lib_dal_node/gossipsub/gs_transport_connection.ml +++ b/src/lib_dal_node/gossipsub/gs_transport_connection.ml @@ -175,7 +175,7 @@ let disconnections_handler gs_worker peer_id = | None -> (* Something is off, we should log something probably. *) () | Some (peer, _) -> Worker.(Disconnection {peer} |> p2p_input gs_worker) -let try_connect ?expected_peer_id p2p_layer point = +let try_connect ?expected_peer_id p2p_layer ~trusted point = let open Lwt_syntax in (* We don't wait for the promise to resolve here, because if the advertised peer is not reachable or is not responding, we might block @@ -186,7 +186,7 @@ let try_connect ?expected_peer_id p2p_layer point = Lwt.dont_wait (fun () -> let* (_ : _ P2p.connection tzresult) = - P2p.connect ?expected_peer_id p2p_layer point + P2p.connect ?expected_peer_id ~trusted p2p_layer point in return_unit) (fun exn -> @@ -241,10 +241,15 @@ let gs_worker_p2p_output_handler gs_worker p2p_layer = P2p.find_connection_by_peer_id p2p_layer peer.peer_id |> Option.iter_s (P2p.disconnect ~reason:"disconnected by Gossipsub" p2p_layer) - | Connect {peer; origin = _} -> + | Connect {peer; origin} -> + let trusted = origin = Trusted in let Types.Peer.{maybe_reachable_point; peer_id} = peer in - try_connect ~expected_peer_id:peer_id p2p_layer maybe_reachable_point - | Connect_point {point} -> try_connect p2p_layer point + try_connect + ~trusted + ~expected_peer_id:peer_id + p2p_layer + maybe_reachable_point + | Connect_point {point} -> try_connect p2p_layer point ~trusted:false | Forget _ -> return_unit | Kick {peer} -> P2p.pool p2p_layer diff --git a/tezt/tests/dal.ml b/tezt/tests/dal.ml index fd28c30388d4b531ad72ddeb1f15ad6049ff1b36..70299092cd8f14176f88a091e982fa91541841b8 100644 --- a/tezt/tests/dal.ml +++ b/tezt/tests/dal.ml @@ -4161,11 +4161,14 @@ let observe_nodes_connection_via_bootstrap ?(extra_nodes_to_restart = []) client dal_node2 dal_node3 = let nodes = dal_node2 :: dal_node3 :: extra_nodes_to_restart in let* () = List.map Dal_node.terminate nodes |> Lwt.join in + let* dal_node2_identity = Dal_node.read_identity dal_node2 in + let* dal_node3_identity = Dal_node.read_identity dal_node3 in let check_conn_event_from_2_to_3 = Dal_common.Helpers.check_new_connection_event ~main_node:dal_node2 ~other_node:dal_node3 ~is_trusted:false + ~other_peer_id:dal_node3_identity () in let check_conn_event_from_3_to_2 = @@ -4173,6 +4176,7 @@ let observe_nodes_connection_via_bootstrap ?(extra_nodes_to_restart = []) client ~main_node:dal_node3 ~other_node:dal_node2 ~is_trusted:false + ~other_peer_id:dal_node2_identity () in let* () = List.map (Dal_node.run ~wait_ready:true) nodes |> Lwt.join in