Full_frontierThis module is the core implementation of the in memory "full frontier". * In this context, "full" refers to the fact that this frontier contains * "fully expanded blockchain states" (i.e. Breadcrumbs). By comparison, * the persistent frontier only contains "light blockchain states" (i.e. * Mina_blocks). This module is only concerned with the core * data structure of the frontier, and is further wrapped with logic to * integrate the core data structure with the various other concerns of * the transition frontier (e.g. extensions, persistence, etc...) in the * externally available Transition_frontier module.
module type CONTEXT = sig ... endinclude Frontier_base.Frontier_intf.Sval find_exn : t -> Mina_base.State_hash.t -> Frontier_base.Breadcrumb.tval max_length : t -> intval consensus_local_state : t -> Consensus.Data.Local_state.tval all_breadcrumbs : t -> Frontier_base.Breadcrumb.t listval root_length : t -> intval root : t -> Frontier_base.Breadcrumb.tval best_tip : t -> Frontier_base.Breadcrumb.tval best_tip_path : ?max_length:int -> t -> Frontier_base.Breadcrumb.t listval path_map :
?max_length:int ->
t ->
Frontier_base.Breadcrumb.t ->
f:( Frontier_base.Breadcrumb.t -> 'a ) ->
'a listval hash_path : t -> Frontier_base.Breadcrumb.t -> Mina_base.State_hash.t listval find : t -> Mina_base.State_hash.t -> Frontier_base.Breadcrumb.t optionval find_protocol_state :
t ->
Mina_base.State_hash.t ->
Mina_state.Protocol_state.value optionval successor_hashes :
t ->
Mina_base.State_hash.t ->
Mina_base.State_hash.t listval successor_hashes_rec :
t ->
Mina_base.State_hash.t ->
Mina_base.State_hash.t listval successors :
t ->
Frontier_base.Breadcrumb.t ->
Frontier_base.Breadcrumb.t listval successors_rec :
t ->
Frontier_base.Breadcrumb.t ->
Frontier_base.Breadcrumb.t listval common_ancestor :
t ->
Frontier_base.Breadcrumb.t ->
Frontier_base.Breadcrumb.t ->
Mina_base.State_hash.tval iter : t -> f:( Frontier_base.Breadcrumb.t -> unit ) -> unitval best_tip_path_length_exn : t -> intval visualize_to_string : t -> stringval visualize : filename:string -> t -> unitval precomputed_values : t -> Precomputed_values.tval genesis_constants : t -> Genesis_constants.tmodule Protocol_states_for_root_scan_state : sig ... endval create :
context:(module CONTEXT) ->
root_data:Frontier_base.Root_data.t ->
root_ledger:Mina_ledger.Ledger.Any_ledger.witness ->
consensus_local_state:Consensus.Data.Local_state.t ->
max_length:int ->
persistent_root_instance:Persistent_root.Instance.t ->
time_controller:Block_time.Controller.t ->
tval persistent_root_instance : t -> Persistent_root.Instance.tval close : loc:string -> t -> unitval root_data : t -> Frontier_base.Root_data.tval calculate_diffs :
t ->
Frontier_base.Breadcrumb.t ->
Frontier_base.Diff.Full.E.t listval protocol_states_for_root_scan_state :
t ->
Protocol_states_for_root_scan_state.tval apply_diffs :
t ->
Frontier_base.Diff.Full.E.t list ->
enable_epoch_ledger_sync:[ `Enabled of Mina_ledger.Ledger.Db.t | `Disabled ] ->
has_long_catchup_job:bool ->
[ `New_root_and_diffs_with_mutants of
Frontier_base.Root_identifier.t option
* Frontier_base.Diff.Full.With_mutant.t list ]module For_tests : sig ... end