Example #1
0
        static void Main(string[] args)
        {
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddCore();
            serviceCollection.AddInMemory();
            var serviceProvider     = serviceCollection.BuildServiceProvider();
            var nodeLauncherFactory = serviceProvider.GetService <INodeLauncherFactory>();

            Console.Title = "FULL NODE / MINER";
            Console.WriteLine("==== Welcome to SimpleBlockChain (FULL NODE) ====");
            _ipBytes = IPAddress.Parse("192.168.76.131").MapToIPv6().GetAddressBytes();
            var network = MenuHelper.ChooseNetwork();

            _nodeLauncher = nodeLauncherFactory.Build(network, ServiceFlags.NODE_NETWORK);
            var p2pNode = _nodeLauncher.GetP2PNode();

            p2pNode.StartNodeEvent           += StartP2PNodeEvent;
            p2pNode.StopNodeEvent            += StopP2PNodeEvent;
            p2pNode.NewMessageEvent          += NewMessageP2PEvent;
            _nodeLauncher.ConnectP2PEvent    += ConnectP2PEvent;
            _nodeLauncher.DisconnectP2PEvent += DisconnectP2PEvent;
            _nodeLauncher.LaunchP2PNode(_ipBytes);
            _nodeLauncher.LaunchRPCNode();
            ExecuteFullNodeMenu();
        }
Example #2
0
        static void Main(string[] args)
        {
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddCore();
            serviceCollection.AddInMemory();
            var serviceProvider     = serviceCollection.BuildServiceProvider();
            var nodeLauncherFactory = serviceProvider.GetService <INodeLauncherFactory>();

            // https://bitcoin.org/en/developer-guide#full-service-wallets
            Console.Title = "WALLET NODE";
            Console.WriteLine("==== Welcome to SimpleBlockChain (WALLET) ====");
            var network = MenuHelper.ChooseNetwork();

            _rpcClient = new RpcClient(network);
            var ipBytes = IPAddress.Parse("192.168.76.132").MapToIPv6().GetAddressBytes(); // VIRTUAL NETWORK.

            _nodeLauncher = nodeLauncherFactory.Build(network, ServiceFlags.NODE_NONE);
            var p2pNode = _nodeLauncher.GetP2PNode();

            p2pNode.StartNodeEvent           += StartP2PNodeEvent;
            p2pNode.NewMessageEvent          += NewP2PMessageEvent;
            _nodeLauncher.ConnectP2PEvent    += ConnectP2PEvent;
            _nodeLauncher.DisconnectP2PEvent += DisconnectP2PEvent;
            _nodeLauncher.LaunchP2PNode(ipBytes);
            ExecuteMenu();
        }
Example #3
0
        static void Main(string[] args)
        {
            // https://bitcoin.org/en/developer-guide#full-service-wallets
            Console.Title = "PROTOCOL TESTER NODE";
            Console.WriteLine("==== Welcome to SimpleBlockChain (PROTOCOL TESTER) ====");
            var network = MenuHelper.ChooseNetwork();

            _rpcClient = new RpcClient(network);
            var ipBytes = IPAddress.Parse("192.168.76.133").MapToIPv6().GetAddressBytes(); // VIRTUAL NETWORK.

            _nodeLauncher = new NodeLauncher(network, ServiceFlags.NODE_NONE);
            var p2pNode = _nodeLauncher.GetP2PNode();

            p2pNode.StartNodeEvent           += StartP2PNodeEvent;
            p2pNode.NewMessageEvent          += NewP2PMessageEvent;
            _nodeLauncher.ConnectP2PEvent    += ConnectP2PEvent;
            _nodeLauncher.DisconnectP2PEvent += DisconnectP2PEvent;
            _nodeLauncher.LaunchP2PNode(ipBytes);
            ExecuteMenu();
        }
Example #4
0
        private static void ExecuteP2PNetworkRunningMenu(int number)
        {
            if (number < 0 || number > 4)
            {
                MenuHelper.DisplayError("Enter a number between [1-4]");
                ExecuteFullNodeMenu();
                return;
            }

            switch (number)
            {
            case 1:
                Console.WriteLine($"Number of active nodes {_nodeLauncher.GetActivePeers().Count}");
                break;

            case 2:
                var peers = _nodeLauncher.GetActivePeers();
                var ips   = peers.Select(p => (new IPAddress(p.GetCurrentIpAddress().Ipv6)).MapToIPv4().ToString());
                foreach (var ip in ips)
                {
                    Console.WriteLine(ip);
                }
                break;

            case 3:
                _nodeLauncher.RefreshMemPool();
                _nodeLauncher.RefreshBlockChain();
                break;

            case 4:

                break;

            case 5:
                _nodeLauncher.GetP2PNode().Stop();
                _nodeLauncher.GetP2PNetwork().Stop();
                break;
            }

            ExecuteFullNodeMenu();
        }
Example #5
0
        static void Main(string[] args)
        {
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddCore();
            serviceCollection.AddInMemory();
            var serviceProvider     = serviceCollection.BuildServiceProvider();
            var nodeLauncherFactory = serviceProvider.GetService <INodeLauncherFactory>();

            Console.WriteLine("==== Welcome to SimpleBlockChain (SEED NODE) ====");
            var network = MenuHelper.ChooseNetwork();
            var ipBytes = IPAddress.Parse(Constants.DNS_IP_ADDRESS).MapToIPv6().GetAddressBytes();

            _nodeLauncher = nodeLauncherFactory.Build(network, ServiceFlags.NODE_NETWORK);
            var p2pNode = _nodeLauncher.GetP2PNode();

            p2pNode.StartNodeEvent           += StartP2PNodeEvent;
            p2pNode.NewMessageEvent          += NewP2PMessageEvent;
            _nodeLauncher.ConnectP2PEvent    += ConnectP2PEvent;
            _nodeLauncher.DisconnectP2PEvent += DisconnectP2PEvent;
            _nodeLauncher.LaunchP2PNode(ipBytes);
            Console.ReadLine();
        }