public P2pNode(Network network, EndPoint endPoint, MempoolService mempoolService, string userAgent) { Network = Guard.NotNull(nameof(network), network); EndPoint = Guard.NotNull(nameof(endPoint), endPoint); MempoolService = Guard.NotNull(nameof(mempoolService), mempoolService); UserAgent = Guard.NotNullOrEmptyOrWhitespace(nameof(userAgent), userAgent, trim: true); Stop = new CancellationTokenSource(); NodeEventsSubscribed = false; SubscriptionLock = new object(); P2pReconnector = new P2pReconnector(TimeSpan.FromSeconds(7), this); }
private async void Node_DisconnectedAsync(Node node) { try { using (await ReconnectorLock.LockAsync(Stop.Token).ConfigureAwait(false)) { if (node.IsConnected) { return; } var reconnector = new P2pReconnector(TimeSpan.FromSeconds(7), this); await reconnector.StartAndAwaitReconnectionAsync(Stop.Token).ConfigureAwait(false); } } catch (Exception ex) { Logger.LogDebug(ex); } }