Raw File
peer_validator_events.ml
(*****************************************************************************)
(*                                                                           *)
(* Open Source License                                                       *)
(* Copyright (c) 2022 Nomadic Labs, <contact@nomadic-labs.com>               *)
(*                                                                           *)
(* Permission is hereby granted, free of charge, to any person obtaining a   *)
(* copy of this software and associated documentation files (the "Software"),*)
(* to deal in the Software without restriction, including without limitation *)
(* the rights to use, copy, modify, merge, publish, distribute, sublicense,  *)
(* and/or sell copies of the Software, and to permit persons to whom the     *)
(* Software is furnished to do so, subject to the following conditions:      *)
(*                                                                           *)
(* The above copyright notice and this permission notice shall be included   *)
(* in all copies or substantial portions of the Software.                    *)
(*                                                                           *)
(* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR*)
(* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  *)
(* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL   *)
(* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER*)
(* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING   *)
(* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER       *)
(* DEALINGS IN THE SOFTWARE.                                                 *)
(*                                                                           *)
(*****************************************************************************)

module Request = Peer_validator_worker_state.Request
include Internal_event.Simple

let section = ["validator"; "peer"]

let validating_new_branch =
  declare_2
    ~section
    ~name:"validating_new_branch"
    ~msg:"validating new branch from peer {peer} (approx. {length} blocks)"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Format.pp_print_int
    ("peer", P2p_peer.Id.encoding)
    ("length", Data_encoding.int31)

let new_branch_validated =
  declare_2
    ~section
    ~name:"new_branch_validated"
    ~msg:"branch from {peer} validated with head {hash}"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Block_hash.pp
    ("peer", P2p_peer.Id.encoding)
    ("hash", Block_hash.encoding)

let fetching_operations_for_head =
  declare_2
    ~section
    ~name:"fetching_operations_for_head"
    ~msg:"fetching operaitons from {peer} for head {hash}"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Block_hash.pp
    ("peer", P2p_peer.Id.encoding)
    ("hash", Block_hash.encoding)

let requesting_new_head_validation =
  declare_2
    ~section
    ~name:"requesting_new_head_validation"
    ~msg:"requesting new head validation from {peer} for head {hash}"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Block_hash.pp
    ("peer", P2p_peer.Id.encoding)
    ("hash", Block_hash.encoding)

let new_head_validation_end =
  declare_2
    ~section
    ~name:"new_head_validation_end"
    ~msg:"new head validation from {peer} for head {hash} ended"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Block_hash.pp
    ("peer", P2p_peer.Id.encoding)
    ("hash", Block_hash.encoding)

let ignoring_head =
  declare_2
    ~section
    ~name:"ignoring_head"
    ~msg:"ignoring head {hash} from peer {peer} with non-increasing fitness"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Block_hash.pp
    ("peer", P2p_peer.Id.encoding)
    ("hash", Block_hash.encoding)

let ignoring_previously_validated_block =
  declare_2
    ~section
    ~name:"ignoring_previously_validated_block"
    ~msg:"ignoring previously validated head {hash} from {peer}"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Block_hash.pp
    ("peer", P2p_peer.Id.encoding)
    ("hash", Block_hash.encoding)

let ignoring_invalid_block =
  declare_2
    ~section
    ~name:"ignoring_invalid_block"
    ~msg:"ignoring invalid block {hash} from {peer}"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Block_hash.pp
    ("peer", P2p_peer.Id.encoding)
    ("hash", Block_hash.encoding)

let ignoring_valid_block =
  declare_2
    ~section
    ~name:"ignoring_prechecked_block"
    ~msg:"ignoring prechecked head {hash} from {peer}"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Block_hash.pp
    ("peer", P2p_peer.Id.encoding)
    ("hash", Block_hash.encoding)

let ignoring_prechecked_invalid_block =
  declare_2
    ~section
    ~name:"ignoring_prechecked_invalid_block"
    ~msg:"ignoring invalid block {hash} from {peer}"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Block_hash.pp
    ("peer", P2p_peer.Id.encoding)
    ("hash", Block_hash.encoding)

let missing_new_head_predecessor =
  declare_2
    ~section
    ~name:"missing_new_head_predecessor"
    ~msg:"missing new head's predecessor {hash} from {peer}"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Block_hash.pp
    ("peer", P2p_peer.Id.encoding)
    ("hash", Block_hash.encoding)

let ignoring_branch_with_invalid_locator =
  declare_2
    ~section
    ~name:"ignoring_branch_with_invalid_locator"
    ~msg:"ignoring branch with head {hash} from {peer} (invalid locator)"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Block_hash.pp
    ("peer", P2p_peer.Id.encoding)
    ("hash", Block_hash.encoding)

let ignoring_branch_without_common_ancestor =
  declare_2
    ~section
    ~name:"ignoring_branch_without_common_ancestor"
    ~msg:"ignoring branch with head {hash} from {peer} (no common ancestor)"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Block_hash.pp
    ("peer", P2p_peer.Id.encoding)
    ("hash", Block_hash.encoding)

let no_new_head_from_peer =
  declare_2
    ~section
    ~name:"no_new_head_from_peer"
    ~msg:"no new head from peer {peer} for {delay}"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Time.System.Span.pp_hum
    ("peer", P2p_peer.Id.encoding)
    ("delay", Time.System.Span.encoding)

let processing_new_head =
  declare_2
    ~section
    ~name:"processing_new_head"
    ~msg:"processing new head fron peer {peer}: {hash}"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Block_hash.pp
    ("peer", P2p_peer.Id.encoding)
    ("hash", Block_hash.encoding)

let processing_new_branch =
  declare_2
    ~section
    ~name:"processing_new_branch"
    ~msg:"processing new branch fron peer {peer}: {hash}"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Block_hash.pp
    ("peer", P2p_peer.Id.encoding)
    ("hash", Block_hash.encoding)

let terminating_worker =
  declare_2
    ~section
    ~name:"terminating_worker"
    ~msg:"terminating the validation worker for peer {peer} ({reason})"
    ~level:Debug
    ~pp1:P2p_peer.Id.pp
    ~pp2:Format.pp_print_string
    ("peer", P2p_peer.Id.encoding)
    ("reason", Data_encoding.string)

let request_completed =
  declare_2
    ~section
    ~name:"request_completed"
    ~msg:"request {view} completed ({status})"
    ~level:Debug
    ~pp1:Request.pp
    ~pp2:Worker_types.pp_status
    ("view", Request.encoding)
    ("status", Worker_types.request_status_encoding)

let request_error =
  declare_3
    ~section
    ~name:"request_error"
    ~msg:"request {view} failed ({status}): {error}"
    ~level:Notice
    ~pp1:Request.pp
    ~pp2:Worker_types.pp_status
    ~pp3:Error_monad.pp_print_trace
    ("view", Request.encoding)
    ("status", Worker_types.request_status_encoding)
    ("error", Error_monad.trace_encoding)
back to top