public async Task Start(IResourceOwner resourceOwner, NBitcoin.Network network) { _NATManager = new NATManager(network.DefaultPort); await _NATManager.Init().ContinueWith(t => { var Settings = JsonLoader <Settings> .Instance.Value; if (_NATManager.DeviceFound && _NATManager.Mapped.Value && _NATManager.ExternalIPVerified.Value) { var ipEndpoint = new System.Net.IPEndPoint(_NATManager.ExternalIPAddress, Settings.ServerPort); _Server = new Server(resourceOwner, ipEndpoint, network); if (_Server.Start()) { Trace.Information($"Server started at {ipEndpoint}"); } else { Trace.Information($"Could not start server at {ipEndpoint}"); } } //if (Settings.IPSeeds.Count == 0) { // Trace.Information ("No seeds defined"); //} else { // DiscoveryManager.Instance.Start (resourceOwner, NATManager.Instance.ExternalIPAddress); //} }); }
public Server(IResourceOwner resourceOwner, IPEndPoint externalEndpoint, NBitcoin.Network network) { _Server = new NodeServer(network, internalPort: externalEndpoint.Port); resourceOwner.OwnResource(_Server); NodeConnectionParameters nodeConnectionParameters = new NodeConnectionParameters(); NBitcoin.Protocol.AddressManager addressManager = AddressManager.Instance.GetBitcoinAddressManager(); // new NBitcoin.Protocol.AddressManager (); var addressManagerBehavior = new AddressManagerBehavior(addressManager); // addressManagerBehavior.Mode = hasExternal ? AddressManagerBehaviorMode.AdvertizeDiscover : AddressManagerBehaviorMode.Discover; nodeConnectionParameters.TemplateBehaviors.Add(addressManagerBehavior); _Server.InboundNodeConnectionParameters = nodeConnectionParameters; _Server.AllowLocalPeers = true; //TODO _Server.ExternalEndpoint = externalEndpoint; Trace.Information($"Server setup at {externalEndpoint}"); }
public ConsoleWindow(IResourceOwner resourceOwner) : base(Gtk.WindowType.Toplevel) { this.Build(); textviewConsole.SizeAllocated += new SizeAllocatedHandler(ScrollToEnd); resourceOwner.OwnResource(MessageProducer <ConsoleMessage> .Instance.AddMessageListener(new EventLoopMessageListener <ConsoleMessage> (ConsoleMessage => { Gtk.Application.Invoke(delegate { textviewConsole.Buffer.Insert(textviewConsole.Buffer.EndIter, ConsoleMessage.Text); }); }))); buttonConsoleSettings.Clicked += (sender, e) => { if (OnSettingsClicked != null) { OnSettingsClicked(); } }; }
public void Start(IResourceOwner resourceOwner, IPEndPoint externalEndpoint) { if (IsListening) { Stop(); } // NBitcoin.Network network = TestNetwork.Instance; // _Server = new Server(externalEndpoint, JsonLoader<Network>.Instance.Value); // resourceOwner.OwnResource (_Server); // WalletManager.Instance.Setup(_Server.Behaviors); InitHandlers(); if (_Server.Start()) { PushMessage(new ConnectedMessage()); Trace.Information("Server " + (_Server.IsListening ? "listening" : "not listening")); } }
public void Start(IResourceOwner resourceOwner, IPAddress ExternalAddress) { Start(resourceOwner, new IPEndPoint(ExternalAddress, JsonLoader <Network> .Instance.Value.DefaultPort)); }
public ResourcePropertyValue(string resourceKey, IResourceOwner owner) { ResourceKey = resourceKey; _owner = owner; }