Shell: improve pp for block locator
This commit is contained in:
parent
f5e3d99e24
commit
f600fc57d4
@ -16,7 +16,26 @@ and raw = Block_header.t * Block_hash.t list
|
||||
|
||||
let raw x = x
|
||||
|
||||
let pp ppf loc = Block_header.pp ppf (fst loc)
|
||||
let pp ppf (hd, h_lst) =
|
||||
let repeats = 10 in
|
||||
let coef = 2 in
|
||||
(* list of hashes *)
|
||||
let rec pp_hash_list ppf (h_lst , acc , d , r) =
|
||||
match h_lst with
|
||||
| [] ->
|
||||
Format.fprintf ppf ""
|
||||
| hd :: tl ->
|
||||
let new_d = if r > 1 then d else d * coef in
|
||||
let new_r = if r > 1 then r - 1 else repeats in
|
||||
Format.fprintf ppf "%a (%i)\n%a" Block_hash.pp hd acc pp_hash_list (tl , acc - d , new_d , new_r) in
|
||||
Format.fprintf ppf "%a (head)\n%a"
|
||||
Block_hash.pp (Block_header.hash hd)
|
||||
pp_hash_list (h_lst , -1, 1, repeats - 1)
|
||||
|
||||
let pp_short ppf (hd, h_lst) =
|
||||
Format.fprintf ppf "head: %a, %d predecessors"
|
||||
Block_hash.pp (Block_header.hash hd)
|
||||
(List.length h_lst)
|
||||
|
||||
let encoding =
|
||||
let open Data_encoding in
|
||||
|
@ -17,6 +17,8 @@ val raw: t -> raw
|
||||
|
||||
val pp : Format.formatter -> t -> unit
|
||||
|
||||
val pp_short : Format.formatter -> t -> unit
|
||||
|
||||
val encoding: t Data_encoding.t
|
||||
|
||||
val compute: predecessor: (Block_hash.t -> int -> Block_hash.t option Lwt.t) ->
|
||||
|
@ -136,9 +136,9 @@ let () =
|
||||
~description:"Block locator is invalid."
|
||||
~pp: (fun ppf (id, locator) ->
|
||||
Format.fprintf ppf
|
||||
"Invalid block locator %a on peer %a"
|
||||
Block_locator.pp locator
|
||||
P2p_peer.Id.pp id)
|
||||
"Invalid block locator on peer %a:\n%a"
|
||||
P2p_peer.Id.pp id
|
||||
Block_locator.pp locator)
|
||||
Data_encoding.(obj2
|
||||
(req "id" P2p_peer.Id.encoding)
|
||||
(req "locator" Block_locator.encoding))
|
||||
|
Loading…
Reference in New Issue
Block a user