Make.BlockchainFunctor to create and implementation for a BlockchainProtocol (protocol that simulates BlockchainNodes).
module Event : Simulator.Events.Eventmodule Queue : Simulator.Events.EventQueue with type ev = Event.tmodule Block : Simulator.Block.BlockSigmodule Timer : Abstractions.Timer.Timermodule GoodNode : BlockchainNode with type ev = Event.t and type value = Block.blockmodule BadNode : BlockchainNode with type ev = Event.t and type value = GoodNode.value and type node_data = GoodNode.node_datamodule Initializer : Initializer with type node = GoodNode.t and type ev = Event.tmodule Logger : Simulator.Logging.Logger with type ev = Event.tmodule Statistics : Simulator.Statistics.Statsmodule Network : Abstractions.Network.Network