Ejemplo n.º 1
0
        private async Task AddSelfToNetwork(List <string> xServerUrls, CancellationToken cancellationToken)
        {
            var selfNode = networkFeatures.GetSelfServerNode();

            if (selfNode.Active)
            {
                ServerRegisterRequest registerRequest = new ServerRegisterRequest()
                {
                    ProfileName     = selfNode.ProfileName,
                    NetworkProtocol = selfNode.NetworkProtocol,
                    NetworkAddress  = selfNode.NetworkAddress,
                    NetworkPort     = selfNode.NetworkPort,
                    Signature       = selfNode.Signature,
                    Tier            = selfNode.Tier
                };
                foreach (string xServerURL in xServerUrls)
                {
                    var client = new RestClient(xServerURL);
                    var registerRestRequest = new RestRequest("/register", Method.POST);
                    var request             = JsonConvert.SerializeObject(registerRequest);
                    registerRestRequest.AddParameter("application/json; charset=utf-8", request, ParameterType.RequestBody);
                    registerRestRequest.RequestFormat = DataFormat.Json;

                    await client.ExecuteAsync(registerRestRequest, cancellationToken);
                }
            }
        }
Ejemplo n.º 2
0
        public async Task RelayXServerAsync(ServerNodeData newServer, List <ServerNodeData> activeXServers, CancellationToken cancellationToken)
        {
            ServerRegisterRequest registerRequest = new ServerRegisterRequest()
            {
                ProfileName     = newServer.ProfileName,
                NetworkAddress  = newServer.NetworkAddress,
                NetworkPort     = newServer.NetworkPort,
                NetworkProtocol = newServer.NetworkProtocol,
                Signature       = newServer.Signature,
                Tier            = newServer.Tier,
                FeeAddress      = newServer.FeeAddress,
                KeyAddress      = newServer.KeyAddress,
                SignAddress     = newServer.SignAddress
            };

            foreach (var activeServer in activeXServers)
            {
                string xServerURL          = networkFeatures.GetServerUrl(activeServer.NetworkProtocol, activeServer.NetworkAddress, activeServer.NetworkPort);
                var    client              = new RestClient(xServerURL);
                var    registerRestRequest = new RestRequest("/registerserver", Method.POST);
                var    request             = JsonConvert.SerializeObject(registerRequest);
                registerRestRequest.AddParameter("application/json; charset=utf-8", request, ParameterType.RequestBody);
                registerRestRequest.RequestFormat = DataFormat.Json;

                var result = await client.ExecuteAsync(registerRestRequest, cancellationToken);
            }
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> RegisterServerAsync([FromBody] ServerRegisterRequest registerRequest)
        {
            xServer.Stats.IncrementPublicRequest();
            ServerNodeData serverNode = new ServerNodeData()
            {
                ProfileName     = registerRequest.ProfileName,
                NetworkAddress  = registerRequest.NetworkAddress,
                NetworkPort     = registerRequest.NetworkPort,
                KeyAddress      = registerRequest.KeyAddress,
                SignAddress     = registerRequest.SignAddress,
                FeeAddress      = registerRequest.FeeAddress,
                Signature       = registerRequest.Signature,
                Tier            = registerRequest.Tier,
                NetworkProtocol = registerRequest.NetworkProtocol
            };

            RegisterResult registerResult = await xServer.Register(serverNode);

            return(Json(registerResult));
        }