public PowMining( IAsyncProvider asyncProvider, IBlockProvider blockProvider, IConsensusManager consensusManager, ChainIndexer chainIndexer, IDateTimeProvider dateTimeProvider, ITxMempool mempool, MempoolSchedulerLock mempoolLock, Network network, INodeLifetime nodeLifetime, ILoggerFactory loggerFactory, IInitialBlockDownloadState initialBlockDownloadState, MinerSettings minerSettings) { this.asyncProvider = asyncProvider; this.blockProvider = blockProvider; this.chainIndexer = chainIndexer; this.consensusManager = consensusManager; this.dateTimeProvider = dateTimeProvider; this.loggerFactory = loggerFactory; this.initialBlockDownloadState = initialBlockDownloadState; this.minerSettings = minerSettings; this.logger = loggerFactory.CreateLogger(GetType().FullName); this.mempool = mempool; this.mempoolLock = mempoolLock; this.network = network; this.nodeLifetime = nodeLifetime; this.miningCancellationTokenSource = CancellationTokenSource.CreateLinkedTokenSource(this.nodeLifetime.ApplicationStopping); if (minerSettings.UseOpenCL) { this.openCLMiner = new OpenCLMiner(minerSettings, loggerFactory); } }
protected BlockDefinition( IConsensusManager consensusManager, IDateTimeProvider dateTimeProvider, ILoggerFactory loggerFactory, ITxMempool mempool, MempoolSchedulerLock mempoolLock, MinerSettings minerSettings, Network network, NodeDeployments nodeDeployments) { this.ConsensusManager = consensusManager; this.DateTimeProvider = dateTimeProvider; this.logger = loggerFactory.CreateLogger(GetType().FullName); this.Mempool = mempool; this.MempoolLock = mempoolLock; this.Network = network; this.nodeDeployments = nodeDeployments; this.Options = minerSettings.BlockDefinitionOptions; this.BlockMinFeeRate = this.Options.BlockMinFeeRate; // Whether we need to account for byte usage (in addition to weight usage). this.NeedSizeAccounting = this.Options.BlockMaxSize < network.Consensus.Options.MaxBlockSerializedSize; Configure(); }
public PowBlockDefinition( IConsensusManager consensusManager, IDateTimeProvider dateTimeProvider, ILoggerFactory loggerFactory, ITxMempool mempool, MempoolSchedulerLock mempoolLock, MinerSettings minerSettings, Network network, IConsensusRuleEngine consensusRules, NodeDeployments nodeDeployments, BlockDefinitionOptions options = null) : base(consensusManager, dateTimeProvider, loggerFactory, mempool, mempoolLock, minerSettings, network, nodeDeployments) { this.consensusRules = consensusRules; this.logger = loggerFactory.CreateLogger(GetType().FullName); }
public PosPowBlockDefinition( IConsensusManager consensusManager, IDateTimeProvider dateTimeProvider, ILoggerFactory loggerFactory, ITxMempool mempool, MempoolSchedulerLock mempoolLock, Network network, MinerSettings minerSettings, IStakeChain stakeChain, IStakeValidator stakeValidator, NodeDeployments nodeDeployments) : base(consensusManager, dateTimeProvider, loggerFactory, mempool, mempoolLock, minerSettings, network, nodeDeployments) { this.logger = loggerFactory.CreateLogger(GetType().FullName); this.stakeChain = stakeChain; this.stakeValidator = stakeValidator; }
public MiningFeature( ConnectionManagerSettings connectionManagerSettings, Network network, MinerSettings minerSettings, NodeSettings nodeSettings, ILoggerFactory loggerFactory, ITimeSyncBehaviorState timeSyncBehaviorState, IPowMining powMining, IPosMinting posMinting = null) { this.connectionManagerSettings = connectionManagerSettings; this.network = network; this.minerSettings = minerSettings; this.nodeSettings = nodeSettings; this.powMining = powMining; this.timeSyncBehaviorState = timeSyncBehaviorState; this.posMinting = posMinting; this.logger = loggerFactory.CreateLogger(GetType().FullName); }
public OpenCLMiner(MinerSettings minerSettings, ILoggerFactory loggerFactory) { this.logger = loggerFactory.CreateLogger(this.GetType().FullName); var devices = ComputePlatform.Platforms.SelectMany(p => p.Devices).Where(d => d.Available && d.CompilerAvailable).ToList(); if (!devices.Any()) { this.logger.LogWarning($"No OpenCL Devices Found!"); } else { foreach (var device in devices) { this.logger.LogInformation($"Found OpenCL Device: Name={device.Name}, MaxClockFrequency{device.MaxClockFrequency}"); } this.computeDevice = devices.FirstOrDefault(d => d.Name.Equals(minerSettings.OpenCLDevice, StringComparison.OrdinalIgnoreCase)) ?? devices.FirstOrDefault(); if (this.computeDevice != null) { this.logger.LogInformation($"Using OpenCL Device: Name={this.computeDevice.Name}"); } } }
/// <summary> /// Get the default configuration. /// </summary> /// <param name="builder">The string builder to add the settings to.</param> /// <param name="network">The network to base the defaults off.</param> public static void BuildDefaultConfigurationFile(StringBuilder builder, Network network) { MinerSettings.BuildDefaultConfigurationFile(builder, network); }
/// <summary> /// Prints command-line help. /// </summary> /// <param name="network">The network to extract values from.</param> public static void PrintHelp(Network network) { MinerSettings.PrintHelp(network); }