Module Mavryk_shell_services.Shell_limits

The configurable constants used by shell components as maximum, with their encodings and default values.

type operation_metadata_size_limit =
  1. | Unlimited
  2. | Limited of int

States whether or not the operation metadata size must be caped and potentially discard if the given size limit is exceeded.

val operation_metadata_size_limit_encoding : operation_metadata_size_limit Mavryk_base.TzPervasives.Data_encoding.t
type block_validator_limits = {
  1. protocol_timeout : Mavryk_base.Time.System.Span.t;
  2. operation_metadata_size_limit : operation_metadata_size_limit;
}
val default_block_validator_limits : block_validator_limits
val block_validator_limits_encoding : block_validator_limits Mavryk_base.TzPervasives.Data_encoding.t
type prevalidator_limits = {
  1. max_refused_operations : int;
    (*

    The maximum number of operations tracked by the mempool for each of the refused, branch delayed, branch refused and outdated operation classifications. Default is 1000

    *)
  2. operation_timeout : Mavryk_base.Time.System.Span.t;
    (*

    The maximum time allowed to fetch the contents of an operation advertised by a remote peer. Default is 10 seconds

    *)
  3. operations_batch_size : int;
    (*

    Maximum number of pending operations processed (or classified) at the end of each request to the prevalidator worker. Default is 50

    *)
}

This record contains the different limits and settings that can be updated from a node configuration for a prevalidator

val default_prevalidator_limits : prevalidator_limits

Sane default values for limits

val prevalidator_limits_encoding : prevalidator_limits Mavryk_base.TzPervasives.Data_encoding.t
type peer_validator_limits = {
  1. new_head_request_timeout : Mavryk_base.Time.System.Span.t;
  2. block_header_timeout : Mavryk_base.Time.System.Span.t;
  3. block_operations_timeout : Mavryk_base.Time.System.Span.t;
  4. protocol_timeout : Mavryk_base.Time.System.Span.t;
}
val default_peer_validator_limits : peer_validator_limits
val peer_validator_limits_encoding : peer_validator_limits Mavryk_base.TzPervasives.Data_encoding.t
type synchronisation_limits = {
  1. latency : int;
    (*

    latency is the time interval (seconds) used to determine if a node is synchronized with a chain. For instance, a node that knows head with timestamp T is synchronized if T >= now - max_latency. This parameter depends on the baking rate and the latency of the network.

    *)
  2. threshold : int;
    (*

    threshold determines the number of peers the synchronization heuristic looks at to determine if the node is synchronized or not.

    *)
}

Constants parameterizing the bootstrap heuristics.

type chain_validator_limits = {
  1. synchronisation : synchronisation_limits;
}
val default_chain_validator_limits : chain_validator_limits
val chain_validator_limits_encoding : chain_validator_limits Mavryk_base.TzPervasives.Data_encoding.t
type limits = {
  1. block_validator_limits : block_validator_limits;
  2. prevalidator_limits : prevalidator_limits;
  3. peer_validator_limits : peer_validator_limits;
  4. chain_validator_limits : chain_validator_limits;
  5. history_mode : History_mode.t option;
}
val default_limits : limits
val limits_encoding : limits Mavryk_base.TzPervasives.Data_encoding.t