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(this.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); this.Configure(); }
public PowBlockDefinition( IConsensusManager consensusManager, IDateTimeProvider dateTimeProvider, ILoggerFactory loggerFactory, ITxMempool mempool, MempoolSchedulerLock mempoolLock, MinerSettings minerSettings, Network network, IConsensusRuleEngine consensusRules, BlockDefinitionOptions options = null) : base(consensusManager, dateTimeProvider, loggerFactory, mempool, mempoolLock, minerSettings, network) { this.consensusRules = consensusRules; this.logger = loggerFactory.CreateLogger("Impleum.Bitcoin.FullNode"); }
public PowBlockDefinition( IConsensusLoop consensusLoop, IDateTimeProvider dateTimeProvider, ILoggerFactory loggerFactory, ITxMempool mempool, MempoolSchedulerLock mempoolLock, MinerSettings minerSettings, Network network, IConsensusRules consensusRules, BlockDefinitionOptions options = null) : base(consensusLoop, dateTimeProvider, loggerFactory, mempool, mempoolLock, minerSettings, network) { this.consensusRules = consensusRules; this.logger = loggerFactory.CreateLogger(this.GetType().FullName); }
public PosBlockDefinition( IConsensusManager consensusManager, IDateTimeProvider dateTimeProvider, ILoggerFactory loggerFactory, ITxMempool mempool, MempoolSchedulerLock mempoolLock, MinerSettings minerSettings, Network network, IStakeChain stakeChain, IStakeValidator stakeValidator) : base(consensusManager, dateTimeProvider, loggerFactory, mempool, mempoolLock, minerSettings, network) { this.logger = loggerFactory.CreateLogger(this.GetType().FullName); this.stakeChain = stakeChain; this.stakeValidator = stakeValidator; }
public PosPowBlockDefinition( IConsensusManager consensusManager, IDateTimeProvider dateTimeProvider, ILoggerFactory loggerFactory, ITxMempool mempool, MempoolSchedulerLock mempoolLock, Network network, MinerSettings minerSettings, IStakeChain stakeChain, IStakeValidator stakeValidator) : base(consensusManager, dateTimeProvider, loggerFactory, mempool, mempoolLock, minerSettings, network) { this.logger = loggerFactory.CreateLogger("Impleum.Bitcoin.Fullnode"); this.stakeChain = stakeChain; this.stakeValidator = stakeValidator; }
/// <summary> /// Initializes the instance of the object. /// </summary> /// <param name="network">Specification of the network the node runs on - regtest/testnet/mainnet.</param> /// <param name="minerSettings">Settings relevant to mining or staking.</param> /// <param name="nodeSettings">The node's configuration settings.</param> /// <param name="loggerFactory">Factory to be used to create logger for the node.</param> /// <param name="timeSyncBehaviorState">State of time synchronization feature that stores collected data samples.</param> /// <param name="powMining">POW miner.</param> /// <param name="posMinting">POS staker.</param> public MiningFeature( Network network, MinerSettings minerSettings, NodeSettings nodeSettings, ILoggerFactory loggerFactory, ITimeSyncBehaviorState timeSyncBehaviorState, IPowMining powMining, IPosMinting posMinting = null) { this.network = network; this.minerSettings = minerSettings; this.nodeSettings = nodeSettings; this.powMining = powMining; this.timeSyncBehaviorState = timeSyncBehaviorState; this.posMinting = posMinting; this.logger = loggerFactory.CreateLogger(this.GetType().FullName); }
/// <summary> /// Initializes the instance of the object. /// </summary> /// <param name="network">Specification of the network the node runs on - regtest/testnet/mainnet.</param> /// <param name="minerSettings">Settings relevant to mining or staking.</param> /// <param name="nodeSettings">The node's configuration settings.</param> /// <param name="loggerFactory">Factory to be used to create logger for the node.</param> /// <param name="powMining">POW miner.</param> /// <param name="posMinting">POS staker.</param> /// <param name="walletManager">Manager providing operations on wallets.</param> public MiningFeature( Network network, MinerSettings minerSettings, NodeSettings nodeSettings, ILoggerFactory loggerFactory, IPowMining powMining, IPosMinting posMinting = null, IWalletManager walletManager = null) { this.network = network; this.minerSettings = minerSettings; this.minerSettings.Load(nodeSettings); this.powMining = powMining; this.posMinting = posMinting; this.walletManager = walletManager; this.logger = loggerFactory.CreateLogger(this.GetType().FullName); }
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("Impleum.Bitcoin.Fullnode"); }
/// <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); }