Module Tezt_mavryk.Dac_node

Spawn Data-availability-committee (DAC) nodes and control them.

type t

DAC Node state.

val create_coordinator : ?path:string -> ?name:string -> ?color:Tezt_wrapper.Log.Color.t -> ?data_dir:string -> ?event_pipe:string -> ?rpc_host:string -> ?rpc_port:int -> ?reveal_data_dir:string -> ?allow_v1_api:bool -> committee_members:string list -> node:Node.t -> client:Client.t -> unit -> t

Creates a DAC node to run in coordinator mode registered with the specified committee members.

val create_coordinator_with_endpoint : ?path:string -> ?name:string -> ?color:Tezt_wrapper.Log.Color.t -> ?data_dir:string -> ?event_pipe:string -> ?rpc_host:string -> ?rpc_port:int -> ?reveal_data_dir:string -> ?allow_v1_api:bool -> committee_members:string list -> endpoint:Client.endpoint -> client:Client.t -> unit -> t

Same as create_coordinator, but do not assume the endpoint is a node.

val create_committee_member : ?path:string -> ?name:string -> ?color:Tezt_wrapper.Log.Color.t -> ?data_dir:string -> ?event_pipe:string -> ?rpc_host:string -> ?rpc_port:int -> ?reveal_data_dir:string -> ?coordinator_rpc_host:string -> ?coordinator_rpc_port:int -> ?allow_v1_api:bool -> address:string -> node:Node.t -> client:Client.t -> unit -> t

Creates a DAC node to run in committee_member mode, using the specified address, coordinator rpc host and port.

val create_committee_member_with_endpoint : ?path:string -> ?name:string -> ?color:Tezt_wrapper.Log.Color.t -> ?data_dir:string -> ?event_pipe:string -> ?rpc_host:string -> ?rpc_port:int -> ?reveal_data_dir:string -> ?coordinator_rpc_host:string -> ?coordinator_rpc_port:int -> ?allow_v1_api:bool -> address:string -> endpoint:Client.endpoint -> client:Client.t -> unit -> t

Same as create_committee_member, but do not assume the endpoint is a node.

val create_observer : ?path:string -> ?name:string -> ?color:Tezt_wrapper.Log.Color.t -> ?data_dir:string -> ?event_pipe:string -> ?rpc_host:string -> ?rpc_port:int -> ?reveal_data_dir:string -> ?coordinator_rpc_host:string -> ?coordinator_rpc_port:int -> ?timeout:int -> ?allow_v1_api:bool -> committee_member_rpcs:(string * int) list -> node:Node.t -> client:Client.t -> unit -> t

Creates a DAC node to run in observer mode, using the specified coordinator rpc host and port and set the committee member endpoints to committee_member_rpcs.

val create_observer_with_endpoint : ?path:string -> ?name:string -> ?color:Tezt_wrapper.Log.Color.t -> ?data_dir:string -> ?event_pipe:string -> ?rpc_host:string -> ?rpc_port:int -> ?reveal_data_dir:string -> ?coordinator_rpc_host:string -> ?coordinator_rpc_port:int -> ?timeout:int -> ?allow_v1_api:bool -> committee_member_rpcs:(string * int) list -> endpoint:Client.endpoint -> client:Client.t -> unit -> t

Same as create_obsever, but do not assume the endpoint is a node.

val name : t -> string

Get the name of an dac node.

val mode : t -> string

Get the mode in which a dac node is configured to run. Returned values can be either "Coordinator", "Commitee_member" or "Observer".

val rpc_host : t -> string

Get the RPC host given as --rpc-addr to an dac node.

val rpc_port : t -> int

Get the RPC port given as --rpc-addr to an dac node.

val endpoint : t -> string

Return the endpoint of the dac node, i.e., http://rpc_host:rpc_port.

val data_dir : t -> string

Get the data-dir of an dac node.

val reveal_data_dir : t -> string

Get the reveal-data-dir of an dac node.

val allow_v1_api : t -> bool

allow_v1_api dac_node is true if current node allows running V1 API.

val ls_reveal_data_dir : t -> string list Lwt.t

Calls ls on reveal data dir.

val run : ?wait_ready:bool -> ?env:string Tezt_wrapper.Base.String_map.t -> t -> unit Lwt.t

run ?wait_ready ?env node launches the given dac node where env is a map of environment variable.

If wait_ready is true, the promise waits for the dac node to be ready. true by default.

val terminate : ?timeout:float -> t -> unit Lwt.t

Send SIGTERM and wait for the process to terminate.

Default timeout is 30 seconds, after which SIGKILL is sent.

val kill : t -> unit Lwt.t

Send SIGKILL and wait for the process to terminate.

val log_events : ?max_length:int -> t -> unit

Shows in stdout every events sent by the node

val wait_for : ?where:string -> t -> string -> (Tezt_wrapper.JSON.t -> 'a option) -> 'a Lwt.t

See Daemon.Make.wait_for.

val is_running_not_ready : t -> bool

is_running_not_ready dac_node returns true if the given node is running but its status is not ready

val wait : t -> Unix.process_status Lwt.t

Wait until a node terminates and return its status. If the node is not running, make the test fail.

val init_config : t -> string Lwt.t

Run mavkit-dac-node init-config. Returns the name of the resulting configuration file.

module Config_file : sig ... end

C node configuration files.

val with_sleeping_node : ?rpc_port:int -> ?rpc_address:string -> timeout:float -> ((string * int) -> unit Lwt.t) -> unit Lwt.t

with_sleeping_node creates and runs an embedded node that sleeps for timeout seconds upon receiving any request then returns "ok". It is used to test timeout capabilities of clients.

val as_rpc_endpoint : t -> Endpoint.t

Expose the RPC server address of this node as a foreign endpoint.

module RPC : RPC_core.CALLERS with type uri_provider := t