public ProofOfWorkCalculator(ILogger <ProofOfWorkCalculator> logger, IConsensusParameters consensusParameters, IBlockHeaderRepository blockHeaderRepository) { _logger = logger; _consensusParameters = consensusParameters; _blockHeaderRepository = blockHeaderRepository; }
public ProofOfWorkCalculatorTests(ITestOutputHelper output) { _logger = new XunitLogger <ProofOfWorkCalculator>(output); // or new NullLogger<ProofOfWorkCalculator> var headerHashCalculator = new BlockHeaderHashCalculator(new BlockHeaderSerializer(new UInt256Serializer())); _consensusParameters = new BitcoinMainDefinition(headerHashCalculator).ConfigureConsensus(); }
public HeadersTree(ILogger <HeadersTree> logger, IConsensusParameters consensusParameters) { _logger = logger; _consensusParameters = consensusParameters ?? throw new ArgumentNullException(nameof(consensusParameters)); Genesis = HeaderNode.GenerateGenesis(_consensusParameters.GenesisHeader); ResetToGenesis(); }
public ChainState(ILogger <ChainState> logger, IHeadersTree headersTree, ICoinsView coinsView, IBlockHeaderRepository blockHeaderRepository, IConsensusParameters consensusParameters) { this.logger = logger; HeadersTree = headersTree; this.coinsView = coinsView; _blockHeaderRepository = blockHeaderRepository; _consensusParameters = consensusParameters; ChainTip = headersTree.Genesis; BestHeader = headersTree.Genesis; _blockHeaderRepository.TryAdd(consensusParameters.GenesisHeader); }
public BlockValidator(ILogger <BlockValidator> logger, IConsensusParameters consensusParameters, IChainState chainState, IValidationRuleSet <IBlockValidationRule> blockValidationRules, IBlockValidationContextFactory blockValidationContextFactory, IPeriodicWork validationLoop, IEventBus eventBus) { _logger = logger; _validationLoop = validationLoop; _chainState = chainState; _blockValidationRules = blockValidationRules; _blockValidationContextFactory = blockValidationContextFactory; _eventBus = eventBus; _blocksToValidate = Channel.CreateUnbounded <BlockToValidate>(new UnboundedChannelOptions { SingleReader = true, SingleWriter = false }); _genesisHash = consensusParameters.GenesisHeader.Hash !; _validationLoop.Configure(false, this); }
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); }
public InitialBlockDownloadTracker(ILogger <InitialBlockDownloadTracker> logger, IEventBus eventBus, IChainState chainState, IConsensusParameters consensusParameters, IOptions <BitcoinSettings> options, IDateTimeProvider dateTimeProvider) { _logger = logger; _eventBus = eventBus; _chainState = chainState; _consensusParameters = consensusParameters; _dateTimeProvider = dateTimeProvider; //TODO register to tip advance //this.subscriptionManager.RegisterSubscriptions(this.eventBus.Subscribe()) _minimumChainWork = options.Value.MinimumChainWork ?? _consensusParameters.MinimumChainWork; if (_minimumChainWork < _consensusParameters.MinimumChainWork) { _logger.LogWarning($"{nameof(_minimumChainWork)} set below default value of {_consensusParameters.MinimumChainWork}"); } _maxTipAge = options.Value.MaxTipAge; }
protected void Initialize() { NetworkDefinition = ConfigureNetwork(); Consensus = ConfigureConsensus(); }
public CheckSize(ILogger <CheckSize> logger, IProtocolTypeSerializer <Protocol.Types.Block> blockSerializer, IConsensusParameters consensusParameters) { _logger = logger; _blockSerializer = blockSerializer; _consensusParameters = consensusParameters; }
public CheckTransactions(ILogger <CheckTransactions> logger, IProtocolTypeSerializer <Transaction> transactionSerializer, IConsensusParameters consensusParameters) { _logger = logger; _transactionSerializer = transactionSerializer; _consensusParameters = consensusParameters; }