Mavbox.Hard_forkUser-activated Upgrades, a.k.a. Hard Forks
This module provides helpers to make “hard-fork” protocol changes happen in sandboxes.
See "src/lib/interactive_mini_network.ml" for an example of usage.
type t = private {level : Internal_pervasives.int;protocol_kind : Mavryk_protocol.Protocol_kind.t;protocol_hash : Internal_pervasives.string;name : Internal_pervasives.string;baker : Mavryk_executable.t;endorser : Mavryk_executable.t;accuser : Mavryk_executable.t;}val cmdliner_term :
< manpager : Internal_pervasives.Manpage_builder.State.t.. > ->
docs:Internal_pervasives.string ->
?prefix:Internal_pervasives.string ->
Internal_pervasives.unit ->
t Internal_pervasives.option Cmdliner.Term.tFor a given prefix (default "hard-fork"), provide a family of "--<prefix>*" command-line options allowing to configure a user-activated-upgrade.
val executables : t -> Mavryk_executable.t Internal_pervasives.listGet all the protocol-specific executable definitions (the “daemons”) involved in this hard-fork.
val node_network_config : t -> Internal_pervasives.string * [> Ezjsonm.t ]Generate the JSON field for the "{ network : { ... } }" part of a node's configuration file.
val keyed_daemons :
t ->
client:Mavryk_client.t ->
key:Internal_pervasives.string ->
node:Mavryk_node.t ->
adaptive_issuance:Mavryk_daemon.ai_vote ->
Mavryk_daemon.t Internal_pervasives.listPrepare the baker and endorse daemons to secure the hard-fork.