Exemplo n.º 1
0
        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);
                //}
            });
        }
Exemplo n.º 2
0
        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}");
        }
Exemplo n.º 3
0
        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();
                }
            };
        }
Exemplo n.º 4
0
        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"));
            }
        }
Exemplo n.º 5
0
 public void Start(IResourceOwner resourceOwner, IPAddress ExternalAddress)
 {
     Start(resourceOwner, new IPEndPoint(ExternalAddress, JsonLoader <Network> .Instance.Value.DefaultPort));
 }
Exemplo n.º 6
0
 public ResourcePropertyValue(string resourceKey, IResourceOwner owner)
 {
     ResourceKey = resourceKey;
     _owner      = owner;
 }