Flexmasa.Hard_fork
User-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.t
For 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.list
Get 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.list
Prepare the baker and endorse daemons to secure the hard-fork.