package octez-shell-libs
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
    
    
  sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65
    
    
  doc/octez-shell-libs.shell/Tezos_shell/Distributed_db/Block_header/index.html
Module Distributed_db.Block_headerSource
Index of block headers.
include Tezos_requester.Requester.REQUESTER
  with type t := chain_db
   and type key := Tezos_base.TzPervasives.Block_hash.t
   and type value := Tezos_base.Block_header.t
   and type param := unit
know t k returns true iff the key is present in the memory table or the disk.
val read : 
  chain_db ->
  Tezos_base.TzPervasives.Block_hash.t ->
  Tezos_base.Block_header.t Tezos_base.TzPervasives.tzresult Lwt.tReturn value if it is found in-memory, or else on disk. Otherwise fail with error Missing_data.
val read_opt : 
  chain_db ->
  Tezos_base.TzPervasives.Block_hash.t ->
  Tezos_base.Block_header.t option Lwt.tSame as read but returns None if not found.
val inject : 
  chain_db ->
  Tezos_base.TzPervasives.Block_hash.t ->
  Tezos_base.Block_header.t ->
  bool Lwt.tinject t k v returns false if k is already present in the memory table or in the disk, or has already been requested. Otherwise it updates the memory table and return true
val fetch : 
  chain_db ->
  ?peer:Tezos_base.TzPervasives.P2p_peer.Id.t ->
  ?timeout:Tezos_base.TzPervasives.Time.System.Span.t ->
  Tezos_base.TzPervasives.Block_hash.t ->
  unit ->
  Tezos_base.Block_header.t Tezos_base.TzPervasives.tzresult Lwt.tfetch t ?peer ?timeout k param returns the value when it is known. It can fail with Timeout k if timeout is provided and the value isn't know before the timeout expires. It can fail with Cancel if the request is canceled.
The key is first looked up in memory, then on disk. If not present and not already requested, it schedules a request, and blocks until the requester is notified with notify. param is used to validate the notified value once it is received. (see also PROBE and notify).
Requests are re-sent via a 1.5 exponential back-off, with initial delay set to Request.initial_delay. If the function is called multiple time with the same key but with distinct peers, the internal scheduler randomly chooses the requested peer (at each retry).