Transition_handler.Validator
module type CONTEXT = sig ... end
val validate_transition :
context:(module CONTEXT) ->
frontier:Transition_frontier.t ->
unprocessed_transition_cache:Unprocessed_transition_cache.t ->
( [ `Time_received ] * unit Truth.true_t,
[ `Genesis_state ] * unit Truth.true_t,
[ `Proof ] * unit Truth.true_t,
[ `Delta_block_chain ]
* Mina_base.State_hash.t Mina_stdlib.Nonempty_list.t Truth.true_t,
[ `Frontier_dependencies ] * unit Truth.false_t,
[ `Staged_ledger_diff ] * unit Truth.false_t,
[ `Protocol_versions ] * unit Truth.true_t )
Mina_block.Validation.with_block
Network_peer.Envelope.Incoming.t ->
( ( Unprocessed_transition_cache.source,
Unprocessed_transition_cache.target )
Cache_lib.Cached.t,
[> `Disconnected
| `In_frontier of Data_hash_lib.State_hash.Stable.V1.t
| `In_process of
Unprocessed_transition_cache.target Cache_lib.Intf.final_state ] )
Core_kernel__Result.t
val run :
context:(module CONTEXT) ->
trust_system:Trust_system.t ->
time_controller:Block_time.Controller.t ->
frontier:Transition_frontier.t ->
transition_reader:
([< `Block of
( [ `Time_received ] * unit Truth.true_t,
[ `Genesis_state ] * unit Truth.true_t,
[ `Proof ] * unit Truth.true_t,
[ `Delta_block_chain ]
* Mina_base.State_hash.t Mina_stdlib.Nonempty_list.t Truth.true_t,
[ `Frontier_dependencies ] * unit Truth.false_t,
[ `Staged_ledger_diff ] * unit Truth.false_t,
[ `Protocol_versions ] * unit Truth.true_t )
Mina_block.Validation.with_block
Network_peer.Envelope.Incoming.t ]
* [< `Valid_cb of Mina_net2.Validation_callback.t option ])
Pipe_lib.Strict_pipe.Reader.t ->
valid_transition_writer:
( [ `Block of
( Mina_block.initial_valid_block Network_peer.Envelope.Incoming.t,
Mina_base.State_hash.t )
Cache_lib.Cached.t ]
* [ `Valid_cb of Mina_net2.Validation_callback.t option ],
Pipe_lib.Strict_pipe.drop_head Pipe_lib.Strict_pipe.buffered,
unit )
Pipe_lib.Strict_pipe.Writer.t ->
unprocessed_transition_cache:Unprocessed_transition_cache.t ->
unit