Module Mavryk_proxy.Light_consensus

type input = {
  1. printer : Mavryk_client_base.Client_context.printer;
  2. min_agreement : float;
    (*

    The same value as Light.sources.min_agreement

    *)
  3. chain : Mavryk_shell_services.Block_services.chain;
    (*

    The chain considered

    *)
  4. block : Mavryk_shell_services.Block_services.block;
    (*

    The block considered

    *)
  5. key : string list;
    (*

    The key of the context for which data is being requested

    *)
  6. mproof : Proof.tree Proof.t;
    (*

    The Merkle proof received from the endpoint providing data. It is much smaller than the whole context.

    *)
}

A container of input data needed to process a consensus.

val min_agreeing_endpoints : float -> int -> int

min_agreeing_endpoints min_agreement nb_endpoints returns the minimum number of endpoints that must agree for Make.consensus to return true. The first parameter should be Light.sources.min_agreement while the second parameter should be the length of Light.sources.endpoints.

module Make (Light_proto : Light_proto.PROTO_RPCS) : sig ... end

Given RPCs specific to the light mode, obtain the consensus algorithm