Module Mavryk_shell_context.Proxy_delegate_maker

of_memory_tree t creates a delegate that is backed by the tree t. This is an alternative to delegating to a distant endpoint by doing RPCs (as done in the client, see e.g. proto_alpha/lib_client/proxy.ml). As delegates created by of_memory_tree are backed by an in-memory tree, they are as fast as they can be.

This constructor is easier to use than of_memory_context, because it requires only a tree of data; not a context. This constructor is typically useful for tests.

of_memory_context m creates a delegate that is backed by the tree underlying m. This is an alternative to delegating to a distant endpoint by doing RPCs (as done in the client, see e.g. proto_alpha/lib_client/proxy.ml). As delegates created by of_memory_context are backed by an in-memory tree, they are as fast as they can be.

This constructor is slightly harder to use than of_memory_tree, because it requires a full-fledged context instead of a tree (a context contains a tree, so a context is harder to obtain).

val make_index : context_path:string -> Mavryk_context.Context.index Lwt.t

make_index context_path creates an index that is suitable for being passed to of_index.

of_index index ctxt_hash creates a delegate that checkouts the given index at the given ctxt_hash. It fails in the error monad if the hash is unknown. Otherwise it returns a delegate that queries the tree of data at this hash.

This constructor is the hardest to use of all of this file, because to obtain an index, you need a full-fledged context on disk.