Module Mavryk_proxy.Proxy

Code that is used both by protocol-dependent code and by other code. Note that we don't want this code in proxy_proto.ml because it's independent from the protocol and we neither want this code in proxy_getter.ml, because it would create a cyclic dependency between proxy_proto.ml and proxy_getter.ml

type mode =
  1. | Client
    (*

    Mode when mavkit-client executes

    *)
  2. | Server
    (*

    Mode when mavryk-proxy-server executes

    *)

Whether mavkit-client or mavryk-proxy-server is running.

type proxy_getter_input = {
  1. rpc_context : Mavryk_rpc.Context.simple;
    (*

    How to perform RPC calls

    *)
  2. mode : mode;
    (*

    Whether mavkit-client or mavryk-proxy-server is running

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

    The chain involved in the RPC call

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

    The block involved in the RPC call

    *)
}

A dumb container, used to perform RPC calls concerning a specific chain and block. In other words this container is used to perform RPC calls of the form /chains/<chain>/blocks/<block> where the <...> received the value of the corresponding field of this record.

type 'a update =
  1. | Mutation
  2. | Value of 'a

The result of setting a leaf. A mutation if done in place, otherwise a fresh value. We need this type because the proxy implementation returns a value whereas the light mode's implementation performs a mutation (because of Irmin under the hood).

module type TREE = sig ... end

An ad-hoc module type used by implementations of the proxy mode when it uses the ../raw/bytes RPC to query its distant endpoint. It is ad-hoc because its get function has the concrete Proxy_context.M.tree as a return type and because add_leaf has the concrete Mavryk_context_sigs.Context.Proof_types.raw_context as a parameter (this type is inherited from the return type of the ../raw/bytes RPC).

module type CORE = sig ... end

Module used by implementations of Proxy_getter.M.