Exemplo n.º 1
0
 /// <summary>
 /// Release  any peer class resources.
 /// </summary>
 public void Close()
 {
     try
     {
         _closeGuardMutex.WaitOne();
         if (Connected)
         {
             Log.Logger.Info($"Closing down Peer {Encoding.ASCII.GetString(RemotePeerID)}...");
             Tc.UnMergePieceBitfield(this);
             if (Tc.peerSwarm.ContainsKey(Ip))
             {
                 if (Tc.peerSwarm.TryRemove(Ip, out Peer _))
                 {
                     Log.Logger.Info($"Dead Peer {Ip} removed from swarm.");
                 }
             }
             Connected = false;
             Log.Logger.Info($"Closed down {Encoding.ASCII.GetString(RemotePeerID)}.");
         }
     }
     catch (Exception ex)
     {
         Log.Logger.Error(ex);
     }
     _network?.Close();
     _network = null;
     _closeGuardMutex.ReleaseMutex();
 }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            var serviceProvider = ConfigureForMongoDB("DigitalCurrency", 10500);

            //var serviceProvider = ConfigureForLiteDb("node.db", 10500);

            _host           = serviceProvider.GetService <IBlockchainNode>();
            _miner          = serviceProvider.GetService <IBlockMiner>();
            _network        = serviceProvider.GetService <IPeerNetwork>();
            _sigService     = serviceProvider.GetService <ISignatureService>();
            _addressEncoder = serviceProvider.GetService <IAddressEncoder>();
            _txnRepo        = serviceProvider.GetService <ICustomInstructionRepository>();
            _blockRepo      = serviceProvider.GetService <IBlockRepository>();
            _txnBuilder     = serviceProvider.GetService <ITransactionBuilder>();

            Console.Write("Enter passphrase:");
            var phrase  = Console.ReadLine();
            var keys    = _sigService.GetKeyPairFromPhrase(phrase);
            var address = _addressEncoder.EncodeAddress(keys.PublicKey, 0);

            Console.WriteLine($"Your address is {address}");

            _network.Open();

            PrintHelp();
            while (true)
            {
                Console.Write(">");
                var command = Console.ReadLine();

                if (command == "exit")
                {
                    break;
                }

                RunCommand(command, keys);
            }
            _network.Close();
        }