Module Network_pool_base.Make

Parameters

module Transition_frontier : sig ... end

Signature

type t
module Local_sink : Mina_net2.Sink.S_with_void with type msg := Resource_pool.Diff.t * ( ([ `Broadcasted | `Not_broadcasted ] * Resource_pool.Diff.t * Resource_pool.Diff.rejected) Core_kernel.Or_error.t -> unit )
val create : config:Resource_pool.Config.t -> constraint_constants:Genesis_constants.Constraint_constants.t -> consensus_constants:Consensus.Constants.t -> time_controller:Block_time.Controller.t -> frontier_broadcast_pipe: Transition_frontier.t Core_kernel.Option.t Pipe_lib.Broadcast_pipe.Reader.t -> logger:Logger.t -> log_gossip_heard:bool -> on_remote_push:( unit -> unit Async_kernel.Deferred.t ) -> t * Remote_sink.t * Local_sink.t
val of_resource_pool_and_diffs : Resource_pool.t -> logger:Logger.t -> constraint_constants:Genesis_constants.Constraint_constants.t -> tf_diffs:Resource_pool.transition_frontier_diff Pipe_lib.Strict_pipe.Reader.t -> log_gossip_heard:bool -> on_remote_push:( unit -> unit Async_kernel.Deferred.t ) -> t * Remote_sink.t * Local_sink.t
val resource_pool : t -> Resource_pool.t
val create_rate_limiter : unit -> Rate_limiter.t
val apply_and_broadcast : t -> Resource_pool.Diff.verified Network_peer.Envelope.Incoming.t -> Broadcast_callback.t -> unit Async_kernel.Deferred.t