public BlockchainServer(IBlockchainNode blockchainNode, IMessageBus messageBus) { _blockchainNode = blockchainNode; _messageBus = messageBus; messageBus.Subscribe(_blockchainNode.Node, Handle); }
public CommunicatorCore(IChatForm form) { if (form == null) { throw new ArgumentNullException("form"); } fConnectionState = ConnectionState.Disconnected; fForm = form; fLogger = LogManager.GetLogger(ProtocolHelper.LOG_FILE, ProtocolHelper.LOG_LEVEL, "CommCore"); fPeers = new List <Peer>(); fProfile = new UserProfile(); fDatabase = new GKNetDatabase(); fDatabase.Connect(); fDatabase.LoadProfile(fProfile); fBlockchainNode = new BlockchainNode(this, fDatabase); fDataPlugins = new List <IDataPlugin>(); LoadPlugins(Utilities.GetAppPath()); Port = DHTClient.PublicDHTPort; fLogger.WriteInfo("Port: {0}", Port); try { fSTUNInfo = STUNUtility.Detect(Port); fPublicEndPoint = (fSTUNInfo.NetType != STUN_NetType.UdpBlocked) ? fSTUNInfo.PublicEndPoint : null; } catch (Exception ex) { fLogger.WriteError("DetectSTUN() error", ex); fPublicEndPoint = null; } if (UPnPEnabled) { CreatePortMapping(); } fDHTClient = new DHTClient(new IPEndPoint(DHTClient.IPAnyAddress, Port), this, ProtocolHelper.CLIENT_VER); fDHTClient.PublicEndPoint = fPublicEndPoint; fDHTClient.PeersFound += OnPeersFound; fDHTClient.PeerPinged += OnPeerPinged; fDHTClient.QueryReceived += OnQueryReceive; fDHTClient.ResponseReceived += OnResponseReceive; InitializePeers(); fTCPClient = new TCPDuplexClient(); fTCPClient.DataReceive += OnDataReceive; fTCPListenerPort = ProtocolHelper.PublicTCPPort; }
public override void Solve(IBlockchainNode node, Transaction transaction) { string typeOperator = transaction.GetTypeOperator(); var locName = transaction.DeserializeContent <LocationName>(); switch (typeOperator) { case TransactionType.Oper_Create: fCore.Database.AddRecord(new DBLocationNameRec(locName)); break; case TransactionType.Oper_Update: fCore.Database.UpdateRecord(new DBLocationNameRec(locName)); break; case TransactionType.Oper_Delete: fCore.Database.DeleteRecord <DBLocationNameRec>(locName); break; } }
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(); }
public void Solve(IBlockchainNode node, Transaction transaction) { var profile = transaction.DeserializeContent <PeerProfile>(); node.CommunicatorCore.AddProfile(profile); }
public abstract void Solve(IBlockchainNode node, Transaction transaction);