public NodesGroup( Network network, NodeConnectionParameters connectionParameters = null, NodeRequirement requirements = null) { AllowSameGroup = false; MaximumNodeConnection = 8; _network = network; _cs = new object(); ConnectedNodes = new NodesCollection(); NodeConnectionParameters = connectionParameters ?? new NodeConnectionParameters(); NodeConnectionParameters = NodeConnectionParameters.Clone(); Requirements = requirements ?? new NodeRequirement(); _disconnect = new CancellationTokenSource(); }
public NodeServer(Network network, uint?version = null, int internalPort = -1) { AllowLocalPeers = true; InboundNodeConnectionParameters = new NodeConnectionParameters(); internalPort = internalPort == -1 ? network.DefaultPort : internalPort; _localEndpoint = new IPEndPoint(IPAddress.Parse("0.0.0.0").MapToIPv6Ex(), internalPort); MaxConnections = 125; Network = network; _externalEndpoint = new IPEndPoint(_localEndpoint.Address, Network.DefaultPort); Version = version ?? network.MaxP2PVersion; var listener = new EventLoopMessageListener <IncomingMessage>(ProcessMessage); _messageProducer.AddMessageListener(listener); OwnResource(listener); ConnectedNodes = new NodesCollection(); ConnectedNodes.Added += _Nodes_NodeAdded; ConnectedNodes.Removed += _Nodes_NodeRemoved; ConnectedNodes.MessageProducer.AddMessageListener(listener); _trace = new TraceCorrelation(NodeServerTrace.Trace, "Node server listening on " + LocalEndpoint); }