Mavkit_rpc_process.Rpc_process_worker
Worker that handles the RPC server spawned as an external process by the node.
This module defines an RPC process worker type t
that is responsible of dealing with the process' lifetime.
val create :
comm_socket_path:string ->
Mavkit_node_config.Config_file.t ->
Mavryk_version.Mavkit_node_version.t ->
Mavryk_base.Internal_event_config.t ->
t
create ~comm_socket_path config node_version internal_event_config
creates the worker initial state. comm_socket_path
is a socket path that will be used to communicate with the node (note that the socket is created automatically, but the cleaning of it is not handled). config
contains all the RPC server configuration (such as ACLs, cors_headers, …). node_version
contains informations regarding version of the node to show when answering related rpcs.
val start : t -> unit Mavryk_base.TzPervasives.tzresult Lwt.t
Starts the external RPC process using fork+exec calls. It implements a watch dog that is responsible of restarting the process if it dies at some point. Additionally, if the process fails to be restarted, it retries with an exponential back-off until the restart is successful. The promise is blocking until the RPC server is not fully available to answer to PCs.
val stop : t -> unit Lwt.t
Stops gracefully the RPC process worker