Module Mavryk_proxy.Light

Code related to the light mode that is protocol-independent. See src/proto_*/lib_client/light.ml files for protocol-dependent code.

type sources_config = private {
  1. min_agreement : float;
    (*

    A float between 0 (exclusive) and 1 (inclusive), representing the minimum ratio of endpoints that must agree on data for said data to be accepted. 1 means "require all enpoints to agree" (the default).

    *)
  2. uris : Uri.t list;
    (*

    The list of endpoint URIs used for Light mode consensus. This list must contain at least 2 endpoints (one for data retrieval, one for check).

    *)
}

See mk_sources_config smart constructor to build values.

type sources = private {
  1. min_agreement : float;
    (*

    A float between 0 (exclusive) and 1 (inclusive), representing the minimum ratio of endpoints that must agree on data for said data to be accepted. 1 means "require all enpoints to agree" (the default).

    *)
  2. endpoints : (Uri.t * Mavryk_rpc.Context.simple) list;
    (*

    The list of endpoint URIs used for Light mode consensus. This list must contain at least 2 endpoints (one for data retrieval, one for check).

    *)
}

See sources_config_to_sources to build values.

val example_sources : string

An example content of the --sources file

val destruct_sources_config : Mavryk_base.TzPervasives.Data_encoding.json -> (sources_config, string) Stdlib.result

Ad-hoc type safe JSON parsing function until json-data-encoding library provides a result-returning alternative.

val sources_config_to_uris : sources_config -> Uri.t list

sources_config_to_uris sources returns the Uris contained * in sources.

val sources_config_to_sources : (Uri.t -> Mavryk_rpc.Context.simple) -> sources_config -> sources

sources_config_to_sources f config transforms the value config (which was obtained by parsing the CLI) into a value used by core algorithms of the light mode.

None if the given block is symbolic, otherwise its concrete hash.