package octez-shell-libs

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Helpers for loading contexts, saving contexts, writing to contexts, etc. Also contains the Key_map module, heavily used for preparing benchmarks and computing statistics.

val assert_ok : msg:string -> 'a Tezos_base.TzPervasives.tzresult -> 'a
val commit : Tezos_protocol_environment.Context.t -> Tezos_base.TzPervasives.Context_hash.t Lwt.t
val flush : Tezos_protocol_environment.Context.t -> Tezos_protocol_environment.Context.t Lwt.t
val prepare_empty_context : string -> (Tezos_base.TzPervasives.Context_hash.t, Tezos_base.TzPervasives.tztrace) Stdlib.result Lwt.t
val load_context_from_disk : string -> Tezos_base.TzPervasives.Context_hash.t -> Tezos_protocol_environment.Context.t * Tezos_context.Context.index
val with_context : base_dir:string -> context_hash:Tezos_base.TzPervasives.Context_hash.t -> (Tezos_protocol_environment.Context.t -> 'a Lwt.t) -> 'a
val prepare_base_dir : string -> unit
val initialize_key : Stdlib.Random.State.t -> Tezos_protocol_environment.Context.t -> Tezos_protocol_environment.Context.key -> int -> Tezos_protocol_environment.Context.t Lwt.t

This function updates the context with random bytes at a given depth.

val commit_and_reload : string -> Tezos_context.Context.index -> Tezos_protocol_environment.Context.t -> (Tezos_protocol_environment.Context.t * Tezos_context.Context.index) Lwt.t
module Key_map : sig ... end

Maps from string lists to bytes. No balancing. A key cannot be a prefix or a suffix to another key.

val sample_without_replacement : int -> 'a list -> 'a list * 'a list
val file_copy : string -> string -> unit
val set_infos : string -> Unix.stats -> unit
val iter_dir : (string -> unit) -> string -> unit
val copy_rec : string -> string -> unit
val split_absolute_path : string -> string list option

Split a absolute path name.

For example, split_absolute_pat "/a/b/c" = Some ["a"; "b"; "c"]. It returns None for illigal paths such as "a/b/c", "/a/../b" and "/a/b/.".

val purge_disk_cache : unit -> unit

Purge disk cache.

This function assumes Linux OS and purge_disk_cache.exe is placed at the current directory, owned by root with setuid. The source code for purge_disk_cache.exe is available at devtools/benchmarks-tools/purge_disk_cache/.

Even if the function fails to execute the command, it does NOT fail but prints just a warning.

load_head_block data_dir takes the path of the Tezos node data directory (typically $HOME/.tezos-node) and returns the information of the current head.

module Meminfo : sig ... end

Reading /proc/meminfo. Only for Linux

val with_memory_restriction : float -> ((unit -> unit) -> 'a) -> 'a

with_memory_restriction gib f executes f trying to restrict the MemAvailable of /proc/meminfo to gib GiB. It only works in Linux.

Function f takes a function to re-restrict the MemAvailable during the exection of f.

val fill_disk_cache : rng:Stdlib.Random.State.t -> restrict_memory:(unit -> unit) -> Tezos_protocol_environment.Context.t -> (Tezos_protocol_environment.Context.key * _) array list -> unit Lwt.t

fill_disk_cache ~rng ~restrict_memory context keys loads keys in context randomly, until Linux kernel's disk cache is completely filled.

restrict_memory is the function obtained by with_memory_restriction. It is used to keep the amount of MemAvailable at the same level.

OCaml

Innovation. Community. Security.