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
module Local = Mavryk_context_memory.Context
type proxy_getter_input = {
rpc_context : Mavryk_rpc.Context.simple;
How to perform RPC calls
*)mode : mode;
Whether mavkit-client
or mavryk-proxy-server
is running
chain : Mavryk_shell_services.Block_services.chain;
The chain involved in the RPC call
*)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.
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
.