Beispiel #1
0
        private void AddPersistedPeers()
        {
            if (!_configurationProvider.IsPeersPersistenceOn)
            {
                return;
            }

            var peers = _peerStorage.GetPersistedPeers();

            if (_logger.IsInfoEnabled)
            {
                _logger.Info($"Initializing persisted peers: {peers.Length}.");
            }

            foreach (var persistedPeer in peers)
            {
                if (_newPeers.ContainsKey(persistedPeer.Node.Id) || _activePeers.ContainsKey(persistedPeer.Node.Id))
                {
                    //Peer already added by discovery
                    continue;
                }

                var nodeStats = _nodeStatsProvider.GetNodeStats(persistedPeer.Node.Id);
                nodeStats.CurrentPersistedNodeReputation = persistedPeer.PersistedReputation;

                var peer = new Peer(persistedPeer.Node, nodeStats);
                if (!_newPeers.TryAdd(persistedPeer.Node.Id, peer))
                {
                    continue;
                }

                if (_logger.IsInfoEnabled)
                {
                    _logger.Info($"Adding persisted peer to New collection {persistedPeer.Node.Id.ToString(false)}@{persistedPeer.Node.Host}:{persistedPeer.Node.Port}");
                }
            }
        }
        public INodeLifecycleManager CreateNodeLifecycleManager(Node node)
        {
            if (DiscoveryManager == null)
            {
                throw new Exception($"{nameof(DiscoveryManager)} has to be set");
            }

            return(new NodeLifecycleManager(node, DiscoveryManager, _nodeTable, _logger, _discoveryConfigurationProvider, _discoveryMessageFactory, _evictionManager, _nodeStatsProvider.GetNodeStats(node.Id)));
        }