Module Mavryk_rpc_http_server.RPC_middleware

This module provides middlewares that is used by the RPC servers to forward unsupported RPCs to a full node.

type forwarder_events = {
  1. on_forwarding : Cohttp.Request.t -> unit Lwt.t;
    (*

    Called right before an unsupported RPC gets forwarded to the node.

    *)
  2. on_locally_handled : Cohttp.Request.t -> unit Lwt.t;
    (*

    Called after an RPC has been handled by the server itself (without any forwarding).

    *)
}

Callbacks to add side-effects to proxy_server_query_forwarder, typically used to emit events.

val proxy_server_query_forwarder : ?acl:RPC_server.Acl.t -> ?ctx:Cohttp_lwt_unix.Net.ctx -> ?forwarder_events:forwarder_events -> Uri.t -> RPC_server.callback -> RPC_server.callback

A Resto middleware that transforms any callback to an other that rewrites queries that the proxy server cannot handle and forwards them to the full node at the given Uri.t. If acl parameter is provided, the forwarding happens only if the ACL rules are satisfied.

val rpc_metrics_transform_callback : update_metrics: (string -> string -> (unit -> Cohttp_lwt_unix.Server.response_action Lwt.t) -> Cohttp_lwt_unix.Server.response_action Lwt.t) -> unit Mavryk_rpc.Directory.t -> RPC_server.callback -> RPC_server.callback

A Resto middleware that transforms any server callback to an other that handles RPC metrics