public StarNetNode(SharedDatabase database, LocalSettings settings, CryptoProvider crypto, IPEndPoint endpoint) { Settings = settings; Database = database; Listener = new TcpListener(endpoint); Clients = new List <StarboundClient>(); CryptoProvider = crypto; Network = new InterNodeNetwork(this, crypto); RegisterHandlers(); NextClientId = 0; HeartbeatTimer = new Timer(DoHeartbeats); }
public static void Main(string[] args) { if (!File.Exists("node.key") || !File.Exists("node.key.pub")) { Console.WriteLine("Error: Please generate an RSA keypair with an empty password and save it to node.key and node.key.pub\n" + "$ openssl genrsa -out node.key && openssl rsa -pubout -in node.key -out node.key.pub\n" + "Distribute node.key.pub to a network authority node and add it to the trusted nodes with:\n" + "$ mono StarNet.exe add-node <ip address> <port> <path/to/key.pub>"); return; } LoadKeys(); LocalSettings settings = new LocalSettings(); if (File.Exists("node.config")) { JsonConvert.PopulateObject(File.ReadAllText("node.config"), settings); File.WriteAllText("node.config", JsonConvert.SerializeObject(settings, Formatting.Indented)); } else { settings = FirstRun(settings); } var sharedDatabase = new SharedDatabase(settings.ConnectionString); if (args.Length != 0) { HandleArguments(args, settings); } else { var localNode = new StarNetNode(sharedDatabase, settings, new CryptoProvider(ServerKey), new IPEndPoint(IPAddress.Any, settings.StarboundPort)); Console.WriteLine("Starting node {0}", localNode.Settings.UUID); localNode.Start(); while (true) { Thread.Sleep(10000); } } }
/// <summary> /// Performs tasks that happen before each test. /// </summary> public virtual void TestInitialize() { // Create connections. PrimaryConnection = new SqlConnection(AssemblyInitialize.dbConnectionString); PrimaryConnection.Open(); SecondaryConnection = new SqlConnection(AssemblyInitialize.dbConnectionString); SecondaryConnection.Open(); // create the data access object. var sharedDB = new SharedDatabase(PrimaryConnection); MockSchema = new Mock <IDbSchemaConfiguration>(); MockSchema.Setup(s => s.Schema).Returns(DefaultSchema); dataAccess = new DapperDataAccess(sharedDB, MockSchema.Object); // start all tests with an Empty DB. // each test will setup rows it needs. BeginSecondaryTransaction(); TruncateAll(); CommitSecondaryTransaction(); }