/// <summary> /// Constructor /// </summary> /// <param name="config">Network configuration</param> /// <param name="aclLoader">ACL loader to define access</param> /// <param name="peerFactory">Factory to create peers from endpoints</param> /// <param name="peerListener">Listener to accept peer connections</param> /// <param name="peerMessageListener">PeerMessageListener</param> /// <param name="logger">Logger</param> public Server( NetworkConfig config, INetworkAclLoader aclLoader, IPeerFactory peerFactory, IPeerListener peerListener, IPeerMessageListener peerMessageListener, ILogger <Server> logger) { if (config == null) { throw new ArgumentNullException(nameof(config)); } _peerFactory = peerFactory ?? throw new ArgumentNullException(nameof(peerFactory)); _peerListener = peerListener ?? throw new ArgumentNullException(nameof(peerListener)); if (aclLoader == null) { throw new ArgumentNullException(nameof(aclLoader)); } _acl = aclLoader.Load(config.AclConfig) ?? NetworkAcl.Default; _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _peerMessageListener = peerMessageListener ?? throw new ArgumentNullException(nameof(peerMessageListener)); _peerListener.OnPeerConnected += PeerConnected; _connectedPeers = new ConcurrentBag <IPeer>(); _failedPeers = new List <IPEndPoint>(); // TODO: Change after port forwarding implementation _peerEndPoints = config.PeerEndPoints; }
protected override void Setup() { // Set up LOG LogManager.SetLoggerFactory(Log4NetLoggerFactory.Instance); Log = LogManager.GetCurrentClassLogger(); GlobalContext.Properties["LogFileName"] = ApplicationName; XmlConfigurator.ConfigureAndWatch(new FileInfo(Path.Combine(BinaryPath, "log4net.config"))); // Set up CONFIG var config = new ConfigurationBuilder(); config.AddXmlFile(Path.Combine(BinaryPath, ApplicationName + ".config")); Log.Info(Path.Combine(BinaryPath, ApplicationName + ".config")); // Set up AUTOFAC var module = new ConfigurationModule(config.Build()); var builder = new ContainerBuilder(); builder.RegisterInstance(this).SingleInstance(); builder.RegisterInstance(Log).As <ILogger>().SingleInstance(); builder.RegisterModule(module); var container = builder.Build(); ServerApplication = container.Resolve <IServerApplication>(); ServerApplication.Setup(); PeerFactory = container.Resolve <IPeerFactory>(); }
/// <summary> /// Constructor /// </summary> /// <param name="config">Network configuration</param> /// <param name="aclLoader">ACL loader to define access</param> /// <param name="peerFactory">Factory to create peers from endpoints</param> /// <param name="peerListener">Listener to accept peer connections</param> /// <param name="peerMessageListener">PeerMessageListener</param> /// <param name="serverContext">Server context</param> /// <param name="serverProcesses">Server processes</param> /// <param name="logger">Logger</param> public Server( NetworkConfig config, INetworkAclLoader aclLoader, IPeerFactory peerFactory, IPeerListener peerListener, IPeerMessageListener peerMessageListener, IServerContext serverContext, IEnumerable <IServerProcess> serverProcesses, ILogger <Server> logger) { if (config == null) { throw new ArgumentNullException(nameof(config)); } _peerFactory = peerFactory ?? throw new ArgumentNullException(nameof(peerFactory)); _peerListener = peerListener ?? throw new ArgumentNullException(nameof(peerListener)); if (aclLoader == null) { throw new ArgumentNullException(nameof(aclLoader)); } _acl = aclLoader.Load(config.AclConfig) ?? NetworkAcl.Default; _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _peerMessageListener = peerMessageListener ?? throw new ArgumentNullException(nameof(peerMessageListener)); _serverContext = serverContext ?? throw new ArgumentNullException(nameof(serverContext)); _serverProcesses = serverProcesses ?? throw new ArgumentNullException(nameof(serverProcesses)); _peerListener.OnPeerConnected += PeerConnected; // TODO #364: Change after port forwarding implementation _peerEndPoints = config.PeerEndPoints; }
public Node(IWallet miner, IListener listener, IPeerFactory peerFactory, NodeOptions options = null) { this.Engine = new Engine(miner); this.options = options ?? new NodeOptions(); this.listener = listener; this.listener.Start(); this.peerFactory = peerFactory; this.ConnPool = new ConnectionPool(this, this.options.WellKnownNodes, this.peerFactory, this.listener); this.ConnPool.Start(); }
public ConnectionPool(Node node, string[] wellKnowns, IPeerFactory peerFactory, IListener listener) { this.selfNode = node; this.nodes = wellKnowns .Where(_ => _ != listener.Address) .Select(_ => new ConnectionNode(_)) .ToList(); this.peerFactory = peerFactory; this.listener = listener; this.listener.OnPeerConnected += Listener_OnPeerConnected; this.selfNode.Engine.OnNewBlockCreated += Engine_OnNewBlockCreated; this.selfNode.Engine.OnNewTxCreated += Engine_OnNewTxCreated; }
public Server( IBlockchain blockchain, NetworkConfig config, IPeerFactory peerFactory, IPeerListener peerListener, IMessageHandler <Message> messageHandler, ILogger <Server> logger, NetworkACLFactory aclFactory) { if (config == null) { throw new ArgumentNullException(nameof(config)); } this._blockchain = blockchain ?? throw new ArgumentNullException(nameof(blockchain)); this._peerFactory = peerFactory ?? throw new ArgumentNullException(nameof(peerFactory)); this._peerListener = peerListener ?? throw new ArgumentNullException(nameof(peerListener)); this._logger = logger ?? throw new ArgumentNullException(nameof(logger)); if (aclFactory == null) { throw new ArgumentNullException(nameof(aclFactory)); } this._messageHandler = messageHandler; this._acl = aclFactory.CreateNew(); this._acl?.Load(config?.ACL); this._peerListener.OnPeerConnected += PeerConnected; this._connectedPeers = new ConcurrentBag <IPeer>(); this._failedPeers = new List <IPEndPoint>(); // TODO: Change after port forwarding implementation this._port = config.Port; ProtocolVersion = 2; var r = new Random(Environment.TickCount); Nonce = (uint)r.Next(); this._peerEndPoints = config.PeerEndPoints; this._userAgent = $"/NEO:{Assembly.GetExecutingAssembly().GetName().Version.ToString(3)}/"; }
public Registration(Uri listenUri, IPeerFactory factory) { if (factory.Resolver == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new InvalidOperationException(SR.GetString(SR.PeerResolverRequired))); } if (factory.ListenIPAddress != null) { listenIPAddress = factory.ListenIPAddress; } this.listenUri = new UriBuilder(PeerStrings.Scheme, listenUri.Host).Uri; this.port = factory.Port; this.maxReceivedMessageSize = factory.MaxReceivedMessageSize; this.resolver = factory.Resolver; this.securityManager = factory.SecurityManager; this.readerQuotas = new XmlDictionaryReaderQuotas(); factory.ReaderQuotas.CopyTo(this.readerQuotas); this.maxBufferPoolSize = factory.MaxBufferPoolSize; }
public LoginAuthenticationHandler(ILogger log, IAuthorizationService authService, IConnectionCollection <IClientPeer> connectionCollection, IPeerFactory peerFactory) { Log = log; AuthService = authService; ConnectionCollection = connectionCollection; PeerFactory = peerFactory; }
public LoginHandler(ILogger log, IConnectionCollection <IClientPeer> connectionCollection, IPeerFactory peerFactory) { this.log = log; this.connectionCollection = connectionCollection; this.peerFactory = peerFactory; }