Network_pool_base.Make
module Transition_frontier : sig ... end
module Resource_pool :
Intf.Resource_pool_intf
with type transition_frontier := Transition_frontier.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 )
module Broadcast_callback :
Intf.Broadcast_callback
with type resource_pool_diff := Resource_pool.Diff.t
and type rejected_diff := Resource_pool.Diff.rejected
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 broadcasts : t -> Resource_pool.Diff.t Pipe_lib.Linear_pipe.Reader.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