Mavkit_smart_rollup_node.Configuration
type mode =
| Observer
Only follows the chain and reconstructs inboxes
*)| Accuser
Only publishes commitments for conflicts and play refutation games
*)| Bailout
| Batcher
Accept transactions in its queue and batches them on the L1
*)| Maintenance
Follows the chain and publishes commitments
*)| Operator
Equivalent to maintenance + batcher
*)| Custom of Mavkit_smart_rollup.Operation_kind.t list
In this mode, the system handles only the specific operation kinds defined by the user, allowing for tailored control and flexibility.
*)Mode for the rollup node
type batcher = {
min_batch_elements : int;
The minimum number elements in a batch for it to be produced when the batcher receives new messages.
*)min_batch_size : int;
The minimum size in bytes of a batch for it to be produced when the batcher receives new messages.
*)max_batch_elements : int;
The maximum number of elements that we can put in a batch.
*)max_batch_size : int option;
The maximum size in bytes of a batch.
*)}
Configuration for the batcher.
Invariants:
min_batch_size
<= max_batch_size
<= protocol_max_batch_size
min_batch_elements
<= max_batch_elements
type injector = {
retention_period : int;
The number of blocks during which the injector will keep track of an operation (in addition to the confirmation period).
*)attempts : int;
The number of attempts that will be made to inject an operation.
*)injection_ttl : int;
The number of blocks after which an operation that is injected but never included is retried.
*)}
type fee_parameters =
Mavkit_injector.Injector_common.fee_parameter
Mavkit_smart_rollup.Operation_kind.Map.t
type t = {
sc_rollup_address : Mavryk_crypto.Hashed.Smart_rollup_address.t;
boot_sector_file : string option;
operators : Purpose.operators;
rpc_addr : string;
rpc_port : int;
acl : Mavryk_rpc_http_server.RPC_server.Acl.policy;
metrics_addr : string option;
reconnection_delay : float;
fee_parameters : fee_parameters;
mode : mode;
loser_mode : Loser_mode.t;
apply_unsafe_patches : bool;
unsafe_pvm_patches : Pvm_patches.unsafe_patch list;
dal_node_endpoint : Uri.t option;
dac_observer_endpoint : Uri.t option;
dac_timeout : Z.t option;
pre_images_endpoint : Uri.t option;
batcher : batcher;
injector : injector;
l1_blocks_cache_size : int;
l2_blocks_cache_size : int;
prefetch_blocks : int option;
l1_rpc_timeout : float;
loop_retry_delay : float;
Delay in seconds to retry the main loop and the refutation loop after an error.
*)index_buffer_size : int option;
irmin_cache_size : int option;
log_kernel_debug : bool;
no_degraded : bool;
gc_parameters : gc_parameters;
history_mode : history_mode option;
cors : Resto_cohttp.Cors.t;
}
val history_mode_of_string : string -> history_mode
history_mode_of_string s
parses a history_mode from the given string s
.
val string_of_history_mode : history_mode -> string
string_of_history_mode p
returns a string representation of history_mode p
.
default_storage_dir
returns the default value of the storage dir given a data_dir
.
default_context_dir
returns the default value of the directory for persisting the context given a data_dir
.
val default_acl : Mavryk_rpc_http_server.RPC_server.Acl.policy
default_acl
is the default value for acl
.
default_reconnection_delay
is the default value for reconnection_delay
.
val default_fee_parameter :
Mavkit_smart_rollup.Operation_kind.t ->
Mavkit_injector.Injector_common.fee_parameter
default_fee_parameter operation_kind
is the default fee parameter to inject operation on L1. If operation_kind
is provided, it returns the default fee parameter for this kind of operation.
val default_fee_parameters : fee_parameters
default_fee_parameters
is the default fee parameters configuration build with default_fee_parameter
for all purposes.
val default_batcher : batcher
default_batcher
is the default configuration parameters for the batcher.
val default_injector : injector
default_injector
is the default configuration parameters for the injector.
default_l1_blocks_cache_size
is the default number of L1 blocks that are cached by the rollup node
default_l2_blocks_cache_size
is the default number of L2 blocks that are cached by the rollup node
val default_gc_parameters : gc_parameters
val default_history_mode : history_mode
default_history_mode
is the default history mode for the rollup node (Full
).
val history_mode_encoding :
history_mode Mavryk_base.TzPervasives.Data_encoding.t
max_injector_retention_period
is the maximum allowed value for injector_retention_period
.
val modes : mode list
This is the list of available modes.
val string_of_mode : mode -> string
string_of_mode mode
returns a string representation of the mode specified by the argument mode
.
val mode_of_string : string -> mode Mavryk_base.TzPervasives.tzresult
mode_of_string s
returns the mode represented by string s
if it exists.
val description_of_mode : mode -> string
description_of_mode m
returns a textual description of the mode m
.
config_filename data_dir
returns the configration filename from the data_dir
val purposes_of_mode : mode -> Purpose.ex_purpose list
purposes_of_mode mode
returns purposes associated with the provided mode.
val operation_kinds_of_mode : mode -> Mavkit_smart_rollup.Operation_kind.t list
operation_kinds_of_mode mode
returns operation kinds with the provided mode.
val can_inject : mode -> Mavkit_smart_rollup.Operation_kind.t -> bool
can_inject mode op_kind
determines if a given operation kind can be injected based on the configuration settings.
purpose_matches_mode mode purpose
returns true if and only if the given mode
supports the given purpose
.
Number of levels the refutation player waits until trying to play for a game state it already played before.
The `default_index_buffer_size` defines the maximum amount of memory reserved for caching index entries before they are written to disk. Essentially, this cache aids the efficiency of the index. The total cache capacity is determined by `index_buffer_size * entry`, with each `entry` occupying approximately 56 bytes. An `entry` represents a single log record which can encompass various details such as a timestamp, message content, severity level, etc.
val encoding : t Mavryk_base.TzPervasives.Data_encoding.t
Encoding for configuration.
val encoding_no_default : t Mavryk_base.TzPervasives.Data_encoding.t
Encoding for configuration without any default value.
val save :
force:bool ->
data_dir:string ->
t ->
unit Mavryk_base.TzPervasives.tzresult Lwt.t
save ~force ~data_dir configuration
writes the configuration
file in data_dir
. If force
is true
, existing configurations are overwritten.
val load : data_dir:string -> t Mavryk_base.TzPervasives.tzresult Lwt.t
load ~data_dir
loads a configuration stored in data_dir
.
module Cli : sig ... end