Example #1
0
        public void GetAllTest()
        {
            var peers = PeerService.GetAll().Peers.Where(x => x.Status.Equals("OK"));
            var peer  = peers.FirstOrDefault();

            GetAllResultTest(peer);
        }
Example #2
0
        private async Task SetPeerList()
        {
            var peers = await PeerService.GetAllAsync();

            var peersOrderByHeight = peers.Peers
                                     .Where(x => x.Status.Equals("OK") && x.Version == ArkNetApi.Instance.NetworkSettings.Version)
                                     .OrderByDescending(x => x.Height)
                                     .ToList();

            var heightToCompare = peersOrderByHeight.FirstOrDefault().Height - ArkNetApi.Instance.NetworkSettings.PeerCleaningHeightThreshold;

            var peerURLs = peersOrderByHeight.Where(x => x.Height >= heightToCompare)
                           .Select(x => new { Ip = x.Ip, Port = x.Port })
                           .ToList();

            var tmpPeerList = new List <PeerApi>();

            foreach (var peerURL in peerURLs)
            {
                tmpPeerList.Add(new PeerApi(peerURL.Ip, peerURL.Port));
            }

            if (!tmpPeerList.Any(x => x.Ip == NetworkApi.Instance.ActivePeer.Ip))
            {
                tmpPeerList.Add(NetworkApi.Instance.ActivePeer);
            }

            _peers = tmpPeerList;
        }
Example #3
0
        public async Task StartAsync()
        {
            ServerServiceDefinition serviceDefinition = PeerService.BindService(_serverService);

            if (_authInterceptor != null)
            {
                serviceDefinition = serviceDefinition.Intercept(_authInterceptor);
            }

            _server = new Server
            {
                Services = { serviceDefinition },
                Ports    =
                {
                    new ServerPort(IPAddress.Any.ToString(), _networkOptions.ListeningPort, ServerCredentials.Insecure)
                }
            };

            await Task.Run(() => _server.Start());

            // Add the provided boot nodes
            if (_networkOptions.BootNodes != null && _networkOptions.BootNodes.Any())
            {
                List <Task <bool> > taskList = _networkOptions.BootNodes.Select(_peerPool.AddPeerAsync).ToList();
                await Task.WhenAll(taskList.ToArray <Task>());
            }
            else
            {
                Logger.LogWarning("Boot nodes list is empty.");
            }
        }
Example #4
0
        /// <summary>
        /// Starts gRPC's server by binding the peer services, sets options and adds interceptors.
        /// </summary>
        internal Task StartListeningAsync()
        {
            ServerServiceDefinition serviceDefinition = PeerService.BindService(_serverService);

            if (_authInterceptor != null)
            {
                serviceDefinition = serviceDefinition.Intercept(_authInterceptor);
            }

            var serverOptions = new List <ChannelOption>
            {
                new ChannelOption(ChannelOptions.MaxSendMessageLength, GrpcConstants.DefaultMaxSendMessageLength),
                new ChannelOption(ChannelOptions.MaxReceiveMessageLength, GrpcConstants.DefaultMaxReceiveMessageLength)
            };

            // setup service
            _server = new Server(serverOptions);
            _server.Services.Add(serviceDefinition);

            var serverCredentials = CreateCredentials();

            // setup encrypted endpoint
            _server.Ports.Add(new ServerPort(IPAddress.Any.ToString(), NetworkOptions.ListeningPort, serverCredentials));

            return(Task.Run(() =>
            {
                _server.Start();

                foreach (var port in _server.Ports)
                {
                    Logger.LogDebug($"Server listening on {port.Host}:{port.BoundPort}.");
                }
            }));
        }
Example #5
0
 public PeerSyncHandler(BlockService blockService, PeerService peerService,
                        CommunicationService communicationService)
 {
     _blockService         = blockService;
     _peerService          = peerService;
     _communicationService = communicationService;
 }
Example #6
0
        public void GetAllTest()
        {
            var peers = PeerService.GetAll().Where(x => x.Status.Equals("OK"));
            var peer  = peers.FirstOrDefault();

            Assert.IsNotNull(peer);
            Assert.IsNotNull(peers);
        }
        public async Task SwitchPeerAsyncTest()
        {
            NetworkApi.Instance.ActivePeer = new PeerApi("1.1.1.1", 5000);

            var peer = await PeerService.GetPeerAsync(base._ip, base._port);

            GetPeerResultTest(peer);
        }
        public async Task GetAllAsyncTest()
        {
            var peers = await PeerService.GetAllAsync();

            var peer = peers.Peers.Where(x => x.Status.Equals("OK")).FirstOrDefault();

            GetAllResultTest(peer);
        }
Example #9
0
        public void SwitchPeerTest()
        {
            NetworkApi.Instance.ActivePeer = new PeerApi("1.1.1.1", 5000);

            var peer = PeerService.GetPeer(base._ip, base._port);

            GetPeerResultTest(peer);
        }
Example #10
0
 public Server(string host, int port, ChannelContainer channels)
 {
     Host       = host;
     Port       = port;
     grpcServer = new grpc.Server()
     {
         Services = { PeerService.BindService(new GrpcPeerService(channels)) },
         Ports    = { new grpc.ServerPort(host, port, grpc.ServerCredentials.Insecure) }
     };
 }
Example #11
0
        /// <summary>
        /// Starts gRPC's server by binding the peer services, sets options and adds interceptors.
        /// </summary>
        internal Task StartListeningAsync()
        {
            ServerServiceDefinition serviceDefinition = PeerService.BindService(_serverService);

            if (_authInterceptor != null)
            {
                serviceDefinition = serviceDefinition.Intercept(_authInterceptor);
            }

            _server = new Server(new List <ChannelOption>
            {
                new ChannelOption(ChannelOptions.MaxSendMessageLength, GrpcConstants.DefaultMaxSendMessageLength),
                new ChannelOption(ChannelOptions.MaxReceiveMessageLength, GrpcConstants.DefaultMaxReceiveMessageLength)
            })
            {
                Services = { serviceDefinition },
                Ports    =
                {
                    new ServerPort(IPAddress.Any.ToString(), NetworkOptions.ListeningPort, ServerCredentials.Insecure)
                }
            };

            return(Task.Run(() => _server.Start()));
        }
Example #12
0
        public void GetPeerTest()
        {
            var peer = PeerService.GetPeer(base._ip, base._port);

            GetPeerResultTest(peer);
        }
        public async Task GetPeerStatusAsyncTest()
        {
            var peer = await PeerService.GetPeerStatusAsync();

            GetPeerStatusResultTest(peer);
        }
        public async Task GetPeerAsyncTest()
        {
            var peer = await PeerService.GetPeerAsync(base._ip, base._port);

            GetPeerResultTest(peer);
        }
Example #15
0
        public void GetPeerStatusTest()
        {
            var peer = PeerService.GetPeerStatus();

            GetPeerStatusResultTest(peer);
        }
Example #16
0
 public PeersController(PeerService peerService)
 {
     _peerService = peerService;
 }
Example #17
0
 public PeersController(PeerService peerService)
 {
     this.peerService = peerService;
 }