コード例 #1
0
 /// <summary>
 /// Constructs an instance of a MempoolSignaled object.
 /// Starts the block notification loop to memory pool behaviors for connected nodes.
 /// </summary>
 /// <param name="manager">Memory pool manager injected dependency.</param>
 /// <param name="chainIndexer">Concurrent chain injected dependency.</param>
 /// <param name="connection">Connection manager injected dependency.</param>
 /// <param name="nodeLifetime">Node lifetime injected dependency.</param>
 /// <param name="asyncProvider">Asynchronous loop factory injected dependency.</param>
 /// <param name="mempoolLock">The mempool lock.</param>
 /// <param name="memPool">the mempool.</param>
 /// <param name="validator">The mempool validator.</param>
 /// <param name="mempoolOrphans">The mempool orphan list.</param>
 public MempoolSignaled(
     MempoolManager manager,
     ChainIndexer chainIndexer,
     IConnectionManager connection,
     INodeLifetime nodeLifetime,
     IAsyncProvider asyncProvider,
     MempoolSchedulerLock mempoolLock,
     ITxMempool memPool,
     IMempoolValidator validator,
     MempoolOrphans mempoolOrphans,
     ISignals signals,
     IInitialBlockDownloadState initialBlockDownloadState)
 {
     this.manager                   = manager;
     this.chainIndexer              = chainIndexer;
     this.connection                = connection;
     this.nodeLifetime              = nodeLifetime;
     this.asyncProvider             = asyncProvider;
     this.mempoolLock               = mempoolLock;
     this.memPool                   = memPool;
     this.validator                 = validator;
     this.mempoolOrphans            = mempoolOrphans;
     this.signals                   = signals;
     this.initialBlockDownloadState = initialBlockDownloadState;
 }
コード例 #2
0
        public MempoolBehavior(
            IMempoolValidator validator,
            MempoolManager mempoolManager,
            MempoolOrphans orphans,
            IConnectionManager connectionManager,
            IInitialBlockDownloadState initialBlockDownloadState,
            Signals.Signals signals,
            ILoggerFactory loggerFactory,
            Network network)
        {
            this.validator                 = validator;
            this.mempoolManager            = mempoolManager;
            this.orphans                   = orphans;
            this.connectionManager         = connectionManager;
            this.initialBlockDownloadState = initialBlockDownloadState;
            this.signals                   = signals;
            this.logger        = loggerFactory.CreateLogger(this.GetType().FullName);
            this.loggerFactory = loggerFactory;
            this.network       = network;

            this.lockObject                = new object();
            this.inventoryTxToSend         = new HashSet <uint256>();
            this.filterInventoryKnown      = new HashSet <uint256>();
            this.isPeerWhitelistedForRelay = false;
            this.isBlocksOnlyMode          = false;
        }
コード例 #3
0
 /// <summary>
 /// Constructs and instance of memory pool behavior.
 /// Constructs a logger instance for memory pool behavior object.
 /// </summary>
 /// <param name="validator">Memory pool validator for validating transactions.</param>
 /// <param name="manager">Memory pool manager for managing the memory pool.</param>
 /// <param name="orphans">Memory pool orphans for managing orphan transactions.</param>
 /// <param name="connectionManager">Connection manager for managing node connections.</param>
 /// <param name="chainState">Current block chain state.</param>
 /// <param name="signals">Node notifications available to subscribe to.</param>
 /// <param name="loggerFactory">Logger factory for creating logger.</param>
 public MempoolBehavior(
     IMempoolValidator validator,
     MempoolManager manager,
     MempoolOrphans orphans,
     IConnectionManager connectionManager,
     ChainState chainState,
     Signals.Signals signals,
     ILoggerFactory loggerFactory)
     : this(validator, manager, orphans, connectionManager, chainState, signals, loggerFactory.CreateLogger(typeof(MempoolBehavior).FullName))
 {
 }
コード例 #4
0
 /// <summary>
 /// Constructs and instance of memory pool behavior.
 /// Constructs a logger instance for memory pool behavior object.
 /// </summary>
 /// <param name="validator">Memory pool validator for validating transactions.</param>
 /// <param name="manager">Memory pool manager for managing the memory pool.</param>
 /// <param name="orphans">Memory pool orphans for managing orphan transactions.</param>
 /// <param name="connectionManager">Connection manager for managing peer connections.</param>
 /// <param name="initialBlockDownloadState">Provider of IBD state.</param>
 /// <param name="signals">Peer notifications available to subscribe to.</param>
 /// <param name="loggerFactory">Logger factory for creating logger.</param>
 public MempoolBehavior(
     IMempoolValidator validator,
     MempoolManager manager,
     MempoolOrphans orphans,
     IConnectionManager connectionManager,
     IInitialBlockDownloadState initialBlockDownloadState,
     Signals.Signals signals,
     ILoggerFactory loggerFactory)
     : this(validator, manager, orphans, connectionManager, initialBlockDownloadState, signals, loggerFactory.CreateLogger(typeof(MempoolBehavior).FullName))
 {
 }
コード例 #5
0
 /// <summary>
 /// Constructs an instance of a memory pool manager object.
 /// </summary>
 /// <param name="mempoolLock">A lock for managing asynchronous access to memory pool.</param>
 /// <param name="memPool">Transaction memory pool for managing transactions in the memory pool.</param>
 /// <param name="validator">Memory pool validator for validating transactions.</param>
 /// <param name="orphans">Memory pool orphans for managing orphan transactions.</param>
 /// <param name="dateTimeProvider">Date and time information provider.</param>
 /// <param name="nodeArgs">Settings from the node.</param>
 /// <param name="mempoolPersistence">Memory pool persistence methods for loading and saving from storage.</param>
 /// <param name="loggerFactory">Logger factory for creating instance logger.</param>
 public MempoolManager(
     MempoolAsyncLock mempoolLock,
     TxMempool memPool,
     IMempoolValidator validator,
     MempoolOrphans orphans,
     IDateTimeProvider dateTimeProvider,
     NodeSettings nodeArgs,
     IMempoolPersistence mempoolPersistence,
     ILoggerFactory loggerFactory)
 {
     this.MempoolLock        = mempoolLock;
     this.memPool            = memPool;
     this.DateTimeProvider   = dateTimeProvider;
     this.NodeArgs           = nodeArgs;
     this.Orphans            = orphans;
     this.Validator          = validator;
     this.mempoolPersistence = mempoolPersistence;
     this.mempoolLogger      = loggerFactory.CreateLogger(this.GetType().FullName);
 }
コード例 #6
0
        /// <summary>
        /// Constructs an instance of memory pool behavior.
        /// </summary>
        /// <param name="validator">Memory pool validator for validating transactions.</param>
        /// <param name="manager">Memory pool manager for managing the memory pool.</param>
        /// <param name="orphans">Memory pool orphans for managing orphan transactions.</param>
        /// <param name="connectionManager">Connection manager for managing node connections.</param>
        /// <param name="chainState">Current block chain state.</param>
        /// <param name="signals">Node notifications available to subscribe to.</param>
        /// <param name="logger">Instance logger for memory pool behavior.</param>
        public MempoolBehavior(
            IMempoolValidator validator,
            MempoolManager manager,
            MempoolOrphans orphans,
            IConnectionManager connectionManager,
            ChainState chainState,
            Signals.Signals signals,
            ILogger logger)
        {
            this.validator         = validator;
            this.manager           = manager;
            this.orphans           = orphans;
            this.connectionManager = connectionManager;
            this.chainState        = chainState;
            this.signals           = signals;
            this.logger            = logger;

            this.inventoryTxToSend    = new Dictionary <uint256, uint256>();
            this.filterInventoryKnown = new Dictionary <uint256, uint256>();
        }
コード例 #7
0
 /// <summary>
 /// Constructs an instance of a MempoolSignaled object.
 /// Starts the block notification loop to memory pool behaviors for connected nodes.
 /// </summary>
 /// <param name="manager">Memory pool manager injected dependency.</param>
 /// <param name="chain">Concurrent chain injected dependency.</param>
 /// <param name="connection">Connection manager injected dependency.</param>
 /// <param name="nodeLifetime">Node lifetime injected dependency.</param>
 /// <param name="asyncLoopFactory">Asynchronous loop factory injected dependency.</param>
 /// <param name="mempoolLock">The mempool lock.</param>
 /// <param name="memPool">the mempool.</param>
 /// <param name="validator">The mempool validator.</param>
 /// <param name="mempoolOrphans">The mempool orphan list.</param>
 public MempoolSignaled(
     MempoolManager manager,
     ConcurrentChain chain,
     IConnectionManager connection,
     INodeLifetime nodeLifetime,
     IAsyncLoopFactory asyncLoopFactory,
     MempoolSchedulerLock mempoolLock,
     ITxMempool memPool,
     IMempoolValidator validator,
     MempoolOrphans mempoolOrphans)
 {
     this.manager          = manager;
     this.chain            = chain;
     this.connection       = connection;
     this.nodeLifetime     = nodeLifetime;
     this.asyncLoopFactory = asyncLoopFactory;
     this.mempoolLock      = mempoolLock;
     this.memPool          = memPool;
     this.validator        = validator;
     this.mempoolOrphans   = mempoolOrphans;
 }
コード例 #8
0
 /// <summary>
 /// Constructs an instance of a memory pool manager object.
 /// </summary>
 /// <param name="mempoolLock">A lock for managing asynchronous access to memory pool.</param>
 /// <param name="memPool">Transaction memory pool for managing transactions in the memory pool.</param>
 /// <param name="validator">Memory pool validator for validating transactions.</param>
 /// <param name="orphans">Memory pool orphans for managing orphan transactions.</param>
 /// <param name="dateTimeProvider">Date and time information provider.</param>
 /// <param name="nodeArgs">Settings from the node.</param>
 /// <param name="mempoolSettings">Settings for memory pool.</param>
 /// <param name="mempoolPersistence">Memory pool persistence methods for loading and saving from storage.</param>
 /// <param name="loggerFactory">Logger factory for creating instance logger.</param>
 public MempoolManager(
     MempoolSchedulerLock mempoolLock,
     TxMempool memPool,
     IMempoolValidator validator,
     MempoolOrphans orphans,
     IDateTimeProvider dateTimeProvider,
     MempoolSettings mempoolSettings,
     IMempoolPersistence mempoolPersistence,
     CoinView coinView,
     ILoggerFactory loggerFactory)
 {
     this.MempoolLock        = mempoolLock;
     this.memPool            = memPool;
     this.DateTimeProvider   = dateTimeProvider;
     this.mempoolSettings    = mempoolSettings;
     this.Orphans            = orphans;
     this.Validator          = validator;
     this.mempoolPersistence = mempoolPersistence;
     this.coinView           = coinView;
     this.mempoolLogger      = loggerFactory.CreateLogger(this.GetType().FullName);
 }
コード例 #9
0
        /// <summary>
        /// Constructs an instance of memory pool behavior.
        /// </summary>
        /// <param name="validator">Memory pool validator for validating transactions.</param>
        /// <param name="manager">Memory pool manager for managing the memory pool.</param>
        /// <param name="orphans">Memory pool orphans for managing orphan transactions.</param>
        /// <param name="connectionManager">Connection manager for managing peer connections.</param>
        /// <param name="initialBlockDownloadState">Provider of IBD state.</param>
        /// <param name="signals">Peer notifications available to subscribe to.</param>
        /// <param name="logger">Instance logger for memory pool behavior.</param>
        /// <param name="network">The blockchain network.</param>
        public MempoolBehavior(
            IMempoolValidator validator,
            MempoolManager manager,
            MempoolOrphans orphans,
            IConnectionManager connectionManager,
            IInitialBlockDownloadState initialBlockDownloadState,
            Signals.Signals signals,
            ILogger logger,
            Network network)
        {
            this.validator                 = validator;
            this.manager                   = manager;
            this.orphans                   = orphans;
            this.connectionManager         = connectionManager;
            this.initialBlockDownloadState = initialBlockDownloadState;
            this.signals                   = signals;
            this.logger  = logger;
            this.network = network;

            this.inventoryTxToSend    = new Dictionary <uint256, uint256>();
            this.filterInventoryKnown = new Dictionary <uint256, uint256>();
        }