Full_frontier
This 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. Breadcrumb
s). By comparison, * the persistent frontier only contains "light blockchain states" (i.e. * Mina_block
s). 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 ... end
include Frontier_base.Frontier_intf.S
val find_exn : t -> Mina_base.State_hash.t -> Frontier_base.Breadcrumb.t
val max_length : t -> int
val consensus_local_state : t -> Consensus.Data.Local_state.t
val all_breadcrumbs : t -> Frontier_base.Breadcrumb.t list
val root_length : t -> int
val root : t -> Frontier_base.Breadcrumb.t
val best_tip : t -> Frontier_base.Breadcrumb.t
val best_tip_path : ?max_length:int -> t -> Frontier_base.Breadcrumb.t list
val path_map :
?max_length:int ->
t ->
Frontier_base.Breadcrumb.t ->
f:( Frontier_base.Breadcrumb.t -> 'a ) ->
'a list
val hash_path : t -> Frontier_base.Breadcrumb.t -> Mina_base.State_hash.t list
val find : t -> Mina_base.State_hash.t -> Frontier_base.Breadcrumb.t option
val find_protocol_state :
t ->
Mina_base.State_hash.t ->
Mina_state.Protocol_state.value option
val successor_hashes :
t ->
Mina_base.State_hash.t ->
Mina_base.State_hash.t list
val successor_hashes_rec :
t ->
Mina_base.State_hash.t ->
Mina_base.State_hash.t list
val successors :
t ->
Frontier_base.Breadcrumb.t ->
Frontier_base.Breadcrumb.t list
val successors_rec :
t ->
Frontier_base.Breadcrumb.t ->
Frontier_base.Breadcrumb.t list
val common_ancestor :
t ->
Frontier_base.Breadcrumb.t ->
Frontier_base.Breadcrumb.t ->
Mina_base.State_hash.t
val iter : t -> f:( Frontier_base.Breadcrumb.t -> unit ) -> unit
val best_tip_path_length_exn : t -> int
val visualize_to_string : t -> string
val visualize : filename:string -> t -> unit
val precomputed_values : t -> Precomputed_values.t
val genesis_constants : t -> Genesis_constants.t
module Protocol_states_for_root_scan_state : sig ... end
val 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 ->
t
val persistent_root_instance : t -> Persistent_root.Instance.t
val close : loc:string -> t -> unit
val root_data : t -> Frontier_base.Root_data.t
val calculate_diffs :
t ->
Frontier_base.Breadcrumb.t ->
Frontier_base.Diff.Full.E.t list
val protocol_states_for_root_scan_state :
t ->
Protocol_states_for_root_scan_state.t
val 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