/// <summary> /// Initializes a new instance of the <see cref="ColdStakingFeature"/> class. /// </summary> /// <param name="walletSyncManager">The synchronization manager for the wallet, tasked with keeping the wallet synced with the network.</param> /// <param name="walletManager">The wallet manager.</param> /// <param name="addressBookManager">The address book manager.</param> /// <param name="signals">The signals responsible for receiving blocks and transactions from the network.</param> /// <param name="chain">The chain of blocks.</param> /// <param name="connectionManager">The connection manager.</param> /// <param name="broadcasterBehavior">The broadcaster behavior.</param> /// <param name="nodeSettings">The settings for the node.</param> /// <param name="walletSettings">The settings for the wallet.</param> /// <param name="loggerFactory">The factory used to create instance loggers.</param> /// <param name="nodeStats">The node stats object used to register node stats.</param> public ColdStakingFeature( IWalletSyncManager walletSyncManager, IWalletManager walletManager, IAddressBookManager addressBookManager, IConnectionManager connectionManager, BroadcasterBehavior broadcasterBehavior, NodeSettings nodeSettings, WalletSettings walletSettings, ILoggerFactory loggerFactory, INodeStats nodeStats) { Guard.NotNull(walletManager, nameof(walletManager)); Guard.NotNull(loggerFactory, nameof(loggerFactory)); this.coldStakingManager = walletManager as ColdStakingManager; Guard.NotNull(this.coldStakingManager, nameof(this.coldStakingManager)); this.logger = loggerFactory.CreateLogger(this.GetType().FullName); this.loggerFactory = loggerFactory; this.walletSyncManager = walletSyncManager; this.addressBookManager = addressBookManager; this.connectionManager = connectionManager; this.broadcasterBehavior = broadcasterBehavior; this.nodeSettings = nodeSettings; this.walletSettings = walletSettings; // The wallet feature displays these. //nodeStats.RemoveStats(StatsType.Component, typeof(WalletFeature).Name); //nodeStats.RemoveStats(StatsType.Inline, typeof(WalletFeature).Name); //nodeStats.RegisterStats(this.AddComponentStats, StatsType.Component, this.GetType().Name); //nodeStats.RegisterStats(this.AddInlineStats, StatsType.Inline, this.GetType().Name, 800); }
/// <summary> /// Initializes a new instance of the <see cref="ColdStakingFeature"/> class. /// </summary> /// <param name="walletSyncManager">The synchronization manager for the wallet, tasked with keeping the wallet synced with the network.</param> /// <param name="walletManager">The wallet manager.</param> /// <param name="addressBookManager">The address book manager.</param> /// <param name="signals">The signals responsible for receiving blocks and transactions from the network.</param> /// <param name="chain">The chain of blocks.</param> /// <param name="connectionManager">The connection manager.</param> /// <param name="broadcasterBehavior">The broadcaster behavior.</param> /// <param name="nodeSettings">The settings for the node.</param> /// <param name="walletSettings">The settings for the wallet.</param> /// <param name="loggerFactory">The factory used to create instance loggers.</param> /// <param name="nodeStats">The node stats object used to register node stats.</param> public ColdStakingFeature( IWalletSyncManager walletSyncManager, IWalletManager walletManager, IAddressBookManager addressBookManager, Signals.Signals signals, ConcurrentChain chain, IConnectionManager connectionManager, BroadcasterBehavior broadcasterBehavior, NodeSettings nodeSettings, WalletSettings walletSettings, ILoggerFactory loggerFactory, INodeStats nodeStats) { Guard.NotNull(walletManager, nameof(walletManager)); Guard.NotNull(loggerFactory, nameof(loggerFactory)); this.coldStakingManager = walletManager as ColdStakingManager; Guard.NotNull(this.coldStakingManager, nameof(this.coldStakingManager)); this.logger = loggerFactory.CreateLogger(this.GetType().FullName); this.loggerFactory = loggerFactory; this.walletSyncManager = walletSyncManager; this.addressBookManager = addressBookManager; this.signals = signals; this.chain = chain; this.connectionManager = connectionManager; this.broadcasterBehavior = broadcasterBehavior; this.nodeSettings = nodeSettings; this.walletSettings = walletSettings; nodeStats.RegisterStats(this.AddComponentStats, StatsType.Component); nodeStats.RegisterStats(this.AddInlineStats, StatsType.Inline, 800); }
/// <summary> /// Initializes a new instance of the <see cref="ColdStakingFeature"/> class. /// </summary> /// <param name="walletSyncManager">The synchronization manager for the wallet, tasked with keeping the wallet synced with the network.</param> /// <param name="walletManager">The wallet manager.</param> /// <param name="addressBookManager">The address book manager.</param> /// <param name="signals">The signals responsible for receiving blocks and transactions from the network.</param> /// <param name="chain">The chain of blocks.</param> /// <param name="connectionManager">The connection manager.</param> /// <param name="broadcasterBehavior">The broadcaster behavior.</param> /// <param name="nodeSettings">The settings for the node.</param> /// <param name="walletSettings">The settings for the wallet.</param> /// <param name="loggerFactory">The factory used to create instance loggers.</param> /// <param name="nodeStats">The node stats object used to register node stats.</param> public ColdStakingFeature( IWalletSyncManager walletSyncManager, IWalletManager walletManager, IAddressBookManager addressBookManager, IConnectionManager connectionManager, BroadcasterBehavior broadcasterBehavior, NodeSettings nodeSettings, WalletSettings walletSettings, ILoggerFactory loggerFactory, INodeStats nodeStats) { Guard.NotNull(walletManager, nameof(walletManager)); Guard.NotNull(loggerFactory, nameof(loggerFactory)); this.coldStakingManager = walletManager as ColdStakingManager; Guard.NotNull(this.coldStakingManager, nameof(this.coldStakingManager)); this.logger = loggerFactory.CreateLogger("Impleum.Bitcoin.FullNode"); this.loggerFactory = loggerFactory; this.walletSyncManager = walletSyncManager; this.addressBookManager = addressBookManager; this.connectionManager = connectionManager; this.broadcasterBehavior = broadcasterBehavior; this.nodeSettings = nodeSettings; this.walletSettings = walletSettings; nodeStats.RegisterStats(this.AddComponentStats, StatsType.Component); nodeStats.RegisterStats(this.AddInlineStats, StatsType.Inline, 800); }
private void AddInlineStats(StringBuilder benchLogs) { ColdStakingManager walletManager = this.coldStakingManager; if (walletManager != null) { HashHeightPair hashHeightPair = walletManager.LastReceivedBlockInfo(); benchLogs.AppendLine("Wallet.Height: ".PadRight(LoggingConfiguration.ColumnLength + 1) + (walletManager.ContainsWallets ? hashHeightPair.Height.ToString().PadRight(8) : "No Wallet".PadRight(8)) + (walletManager.ContainsWallets ? (" Wallet.Hash: ".PadRight(LoggingConfiguration.ColumnLength - 1) + hashHeightPair.Hash) : string.Empty)); } }