public SerializationBuilder WithDiscovery(PrivateKey privateKey) { Ecdsa ecdsa = new Ecdsa(); SameKeyGenerator privateKeyProvider = new SameKeyGenerator(privateKey); PingMessageSerializer pingSerializer = new PingMessageSerializer(ecdsa, privateKeyProvider, new DiscoveryMessageFactory(_timestamper), new NodeIdResolver(ecdsa)); PongMessageSerializer pongSerializer = new PongMessageSerializer(ecdsa, privateKeyProvider, new DiscoveryMessageFactory(_timestamper), new NodeIdResolver(ecdsa)); FindNodeMessageSerializer findNodeSerializer = new FindNodeMessageSerializer(ecdsa, privateKeyProvider, new DiscoveryMessageFactory(_timestamper), new NodeIdResolver(ecdsa)); NeighborsMessageSerializer neighborsSerializer = new NeighborsMessageSerializer(ecdsa, privateKeyProvider, new DiscoveryMessageFactory(_timestamper), new NodeIdResolver(ecdsa)); return(With(pingSerializer) .With(pongSerializer) .With(findNodeSerializer) .With(neighborsSerializer)); }
public SerializationBuilder WithDiscovery(PrivateKey privateKey) { var config = new JsonConfigProvider(); Signer signer = new Signer(); var privateKeyProvider = new SameKeyGenerator(privateKey); PingMessageSerializer pingSerializer = new PingMessageSerializer(signer, privateKeyProvider, new DiscoveryMessageFactory(config, _timestamp), new NodeIdResolver(signer), new NodeFactory(LimboLogs.Instance)); PongMessageSerializer pongSerializer = new PongMessageSerializer(signer, privateKeyProvider, new DiscoveryMessageFactory(config, _timestamp), new NodeIdResolver(signer), new NodeFactory(LimboLogs.Instance)); FindNodeMessageSerializer findNodeSerializer = new FindNodeMessageSerializer(signer, privateKeyProvider, new DiscoveryMessageFactory(config, _timestamp), new NodeIdResolver(signer), new NodeFactory(LimboLogs.Instance)); NeighborsMessageSerializer neighborsSerializer = new NeighborsMessageSerializer(signer, privateKeyProvider, new DiscoveryMessageFactory(config, _timestamp), new NodeIdResolver(signer), new NodeFactory(LimboLogs.Instance)); return(With(pingSerializer) .With(pongSerializer) .With(findNodeSerializer) .With(neighborsSerializer)); }
private void InitDiscovery() { if (!_initConfig.DiscoveryEnabled) { _discoveryApp = new NullDiscoveryApp(); return; } INetworkConfig networkConfig = _configProvider.GetConfig <INetworkConfig>(); networkConfig.MasterPort = _initConfig.DiscoveryPort; var privateKeyProvider = new SameKeyGenerator(_nodeKey); var discoveryMessageFactory = new DiscoveryMessageFactory(networkConfig, _timestamp); var nodeIdResolver = new NodeIdResolver(_ecdsa); IDiscoveryMsgSerializersProvider msgSerializersProvider = new DiscoveryMsgSerializersProvider( _messageSerializationService, _ecdsa, privateKeyProvider, discoveryMessageFactory, nodeIdResolver); msgSerializersProvider.RegisterDiscoverySerializers(); var nodeDistanceCalculator = new NodeDistanceCalculator(networkConfig); var nodeTable = new NodeTable( _keyStore, nodeDistanceCalculator, networkConfig, _logManager); var evictionManager = new EvictionManager( nodeTable, _logManager); var nodeLifeCycleFactory = new NodeLifecycleManagerFactory( nodeTable, discoveryMessageFactory, evictionManager, _nodeStatsManager, networkConfig, _logManager); var discoveryStorage = new NetworkStorage( DiscoveryNodesDbPath, networkConfig, _logManager, _perfService); var discoveryManager = new DiscoveryManager( nodeLifeCycleFactory, nodeTable, discoveryStorage, networkConfig, _logManager); var nodesLocator = new NodesLocator( nodeTable, discoveryManager, _configProvider, _logManager); _discoveryApp = new DiscoveryApp( nodesLocator, discoveryManager, nodeTable, _messageSerializationService, _cryptoRandom, discoveryStorage, networkConfig, _logManager, _perfService); _discoveryApp.Initialize(_nodeKey.PublicKey); }
private void InitDiscovery() { if (_ctx.NodeStatsManager == null) { throw new StepDependencyException(nameof(_ctx.NodeStatsManager)); } if (_ctx.Timestamper == null) { throw new StepDependencyException(nameof(_ctx.Timestamper)); } if (_ctx.NodeKey == null) { throw new StepDependencyException(nameof(_ctx.NodeKey)); } if (_ctx.CryptoRandom == null) { throw new StepDependencyException(nameof(_ctx.CryptoRandom)); } if (!_ctx.Config <IInitConfig>().DiscoveryEnabled) { _ctx.DiscoveryApp = new NullDiscoveryApp(); return; } IDiscoveryConfig discoveryConfig = _ctx.Config <IDiscoveryConfig>(); SameKeyGenerator privateKeyProvider = new SameKeyGenerator(_ctx.NodeKey.Unprotect()); DiscoveryMessageFactory discoveryMessageFactory = new DiscoveryMessageFactory(_ctx.Timestamper); NodeIdResolver nodeIdResolver = new NodeIdResolver(_ctx.EthereumEcdsa); IPResolver ipResolver = new IPResolver(_networkConfig, _ctx.LogManager); IDiscoveryMsgSerializersProvider msgSerializersProvider = new DiscoveryMsgSerializersProvider( _ctx._messageSerializationService, _ctx.EthereumEcdsa, privateKeyProvider, discoveryMessageFactory, nodeIdResolver); msgSerializersProvider.RegisterDiscoverySerializers(); NodeDistanceCalculator nodeDistanceCalculator = new NodeDistanceCalculator(discoveryConfig); NodeTable nodeTable = new NodeTable(nodeDistanceCalculator, discoveryConfig, _networkConfig, _ctx.LogManager); EvictionManager evictionManager = new EvictionManager(nodeTable, _ctx.LogManager); NodeLifecycleManagerFactory nodeLifeCycleFactory = new NodeLifecycleManagerFactory( nodeTable, discoveryMessageFactory, evictionManager, _ctx.NodeStatsManager, discoveryConfig, _ctx.LogManager); SimpleFilePublicKeyDb discoveryDb = new SimpleFilePublicKeyDb("DiscoveryDB", DiscoveryNodesDbPath.GetApplicationResourcePath(_ctx.Config <IInitConfig>().BaseDbPath), _ctx.LogManager); NetworkStorage discoveryStorage = new NetworkStorage( discoveryDb, _ctx.LogManager); DiscoveryManager discoveryManager = new DiscoveryManager( nodeLifeCycleFactory, nodeTable, discoveryStorage, discoveryConfig, _ctx.LogManager, ipResolver ); NodesLocator nodesLocator = new NodesLocator( nodeTable, discoveryManager, discoveryConfig, _ctx.LogManager); _ctx.DiscoveryApp = new DiscoveryApp( nodesLocator, discoveryManager, nodeTable, _ctx._messageSerializationService, _ctx.CryptoRandom, discoveryStorage, _networkConfig, discoveryConfig, _ctx.Timestamper, _ctx.LogManager); _ctx.DiscoveryApp.Initialize(_ctx.NodeKey.PublicKey); }
private void InitDiscovery() { if (!_initConfig.DiscoveryEnabled) { _discoveryApp = new NullDiscoveryApp(); return; } IDiscoveryConfig discoveryConfig = _configProvider.GetConfig <IDiscoveryConfig>(); var privateKeyProvider = new SameKeyGenerator(_nodeKey); var discoveryMessageFactory = new DiscoveryMessageFactory(_timestamper); var nodeIdResolver = new NodeIdResolver(_ethereumEcdsa); IDiscoveryMsgSerializersProvider msgSerializersProvider = new DiscoveryMsgSerializersProvider( _messageSerializationService, _ethereumEcdsa, privateKeyProvider, discoveryMessageFactory, nodeIdResolver); msgSerializersProvider.RegisterDiscoverySerializers(); var nodeDistanceCalculator = new NodeDistanceCalculator(discoveryConfig); var nodeTable = new NodeTable(nodeDistanceCalculator, discoveryConfig, _networkConfig, _logManager); var evictionManager = new EvictionManager(nodeTable, _logManager); var nodeLifeCycleFactory = new NodeLifecycleManagerFactory( nodeTable, discoveryMessageFactory, evictionManager, _nodeStatsManager, discoveryConfig, _logManager); var discoveryDb = new SimpleFilePublicKeyDb("DiscoveryDB", Path.Combine(_initConfig.BaseDbPath, DiscoveryNodesDbPath), _logManager); var discoveryStorage = new NetworkStorage( discoveryDb, _logManager); var discoveryManager = new DiscoveryManager( nodeLifeCycleFactory, nodeTable, discoveryStorage, discoveryConfig, _logManager); var nodesLocator = new NodesLocator( nodeTable, discoveryManager, discoveryConfig, _logManager); _discoveryApp = new DiscoveryApp( nodesLocator, discoveryManager, nodeTable, _messageSerializationService, _cryptoRandom, discoveryStorage, _networkConfig, discoveryConfig, _timestamper, _logManager, _perfService); _discoveryApp.Initialize(_nodeKey.PublicKey); }