public HandshakeProcessor(ILogger <HandshakeProcessor> logger,
                           IEventBus eventBus,
                           IDateTimeProvider dateTimeProvider,
                           IRandomNumberGenerator randomNumberGenerator,
                           NodeImplementation nodeImplementation,
                           IPeerBehaviorManager peerBehaviorManager,
                           IInitialBlockDownloadTracker initialBlockDownloadState,
                           IUserAgentBuilder userAgentBuilder,
                           ILocalServiceProvider localServiceProvider,
                           IHeadersTree headersTree,
                           SelfConnectionTracker selfConnectionTracker) : base(logger,
                                                                               eventBus,
                                                                               peerBehaviorManager,
                                                                               isHandshakeAware: true,
                                                                               // we are performing handshake so we want to receive messages before handshake status
                                                                               receiveMessagesOnlyIfHandshaked: false)
 {
     _dateTimeProvider          = dateTimeProvider;
     _randomNumberGenerator     = randomNumberGenerator;
     _nodeImplementation        = nodeImplementation;
     _initialBlockDownloadState = initialBlockDownloadState;
     _userAgentBuilder          = userAgentBuilder;
     _localServiceProvider      = localServiceProvider;
     _headersTree           = headersTree;
     _selfConnectionTracker = selfConnectionTracker;
     _status = new HandshakeProcessorStatus(this);
 }
Ejemplo n.º 2
0
        public override bool Enabled => false; // Work in progress, actually disabled

        public AnnouncerProcessor(ILogger <DataFeederProcessor> logger,
                                  IEventBus eventBus,
                                  IDateTimeProvider dateTimeProvider,
                                  IPeerBehaviorManager peerBehaviorManager,
                                  IInitialBlockDownloadTracker ibdState,
                                  ILocalServiceProvider localServiceProvider,
                                  IChainState chainState,
                                  IOptions <BitcoinSettings> options)
            : base(logger, eventBus, peerBehaviorManager, isHandshakeAware: true, receiveMessagesOnlyIfHandshaked: true)
        {
            _dateTimeProvider     = dateTimeProvider;
            _ibdState             = ibdState;
            _localServiceProvider = localServiceProvider;
            _chainState           = chainState;
            _settings             = options.Value;
        }
Ejemplo n.º 3
0
        public SynchronizationProcessor(ILogger <SynchronizationProcessor> logger,
                                        IEventBus eventBus,
                                        IDateTimeProvider dateTimeProvider,
                                        IPeerBehaviorManager peerBehaviorManager,
                                        IConsensusParameters consensusParameters,
                                        IInitialBlockDownloadTracker ibdState,
                                        IBlockHeaderHashCalculator blockHeaderHashCalculator,
                                        ITransactionHashCalculator transactionHashCalculator,
                                        IBlockFetcherManager blockFetcherManager,
                                        ILocalServiceProvider localServiceProvider,
                                        IChainState chainState,
                                        IHeaderValidator headerValidator,
                                        IBlockValidator blockValidator,
                                        IPeriodicWork headerSyncLoop,
                                        IOptions <BitcoinSettings> options)
            : base(logger, eventBus, peerBehaviorManager, isHandshakeAware: true, receiveMessagesOnlyIfHandshaked: true)
        {
            _dateTimeProvider          = dateTimeProvider;
            _consensusParameters       = consensusParameters;
            _ibdState                  = ibdState;
            _blockHeaderHashCalculator = blockHeaderHashCalculator;
            _transactionHashCalculator = transactionHashCalculator;
            _blockFetcherManager       = blockFetcherManager;
            _localServiceProvider      = localServiceProvider;
            _chainState                = chainState;
            _headerValidator           = headerValidator;
            _blockValidator            = blockValidator;
            _headerSyncLoop            = headerSyncLoop;
            _options = options.Value;


            _minimumChainWork = _options.MinimumChainWork ?? _consensusParameters.MinimumChainWork;
            if (_minimumChainWork < _consensusParameters.MinimumChainWork)
            {
                this.logger.LogWarning($"{nameof(_minimumChainWork)} set below default value of {_consensusParameters.MinimumChainWork}");
            }

            headerSyncLoop.Configure(stopOnException: false, this);
        }