public async Task FindNodeSentReceivedTest() { var msg = new FindNodeMessage { FarAddress = _address2, SearchedNodeId = new byte[] { 1, 2, 3 }, ExpirationTime = Timestamper.Default.UnixTime.SecondsLong + 1200, FarPublicKey = _privateKey2.PublicKey }; _discoveryHandlers[0].SendMessage(msg); await SleepWhileWaiting(); _discoveryManagersMocks[1].Received(1).OnIncomingMessage(Arg.Is <DiscoveryMessage>(x => x.MessageType == MessageType.FindNode)); var msg2 = new FindNodeMessage { FarAddress = _address, SearchedNodeId = new byte[] { 1, 2, 3 }, ExpirationTime = Timestamper.Default.UnixTime.SecondsLong + 1200, FarPublicKey = _privateKey.PublicKey }; _discoveryHandlers[1].SendMessage(msg2); await SleepWhileWaiting(); _discoveryManagersMocks[0].Received(1).OnIncomingMessage(Arg.Is <DiscoveryMessage>(x => x.MessageType == MessageType.FindNode)); }
public void FindNodeSentReceivedTest() { var msg = new FindNodeMessage { FarAddress = _address2, SearchedNodeId = new byte[] { 1, 2, 3 }, ExpirationTime = (long)(new Timestamper().EpochSeconds + 1200), FarPublicKey = _privateKey2.PublicKey }; _discoveryHandlers[0].SendMessage(msg); Thread.Sleep(200); _discoveryManagers[1].Received(1).OnIncomingMessage(Arg.Is <DiscoveryMessage>(x => x.MessageType == MessageType.FindNode)); var msg2 = new FindNodeMessage { FarAddress = _address, SearchedNodeId = new byte[] { 1, 2, 3 }, ExpirationTime = (long)(new Timestamper().EpochSeconds + 1200), FarPublicKey = _privateKey.PublicKey }; _discoveryHandlers[1].SendMessage(msg2); Thread.Sleep(200); _discoveryManagers[0].Received(1).OnIncomingMessage(Arg.Is <DiscoveryMessage>(x => x.MessageType == MessageType.FindNode)); }
public void ProcessFindNodeMessage(FindNodeMessage discoveryMessage) { NodeStats.AddNodeStatsEvent(NodeStatsEventType.DiscoveryFindNodeIn); RefreshNodeContactTime(); Node[] nodes = _nodeTable.GetClosestNodes(discoveryMessage.SearchedNodeId); SendNeighbors(nodes); }
public void SendFindNode(byte[] target) { this.wait_neighbors = true; FindNodeMessage message = new FindNodeMessage(this.node_manager.PublicHomeNode, target); this.findnode_sequence = message.Timestamp; SendMessage(message); }
public void SendFindNode(byte[] searchedNodeId) { FindNodeMessage msg = _discoveryMessageFactory.CreateOutgoingMessage <FindNodeMessage>(ManagedNode); msg.SearchedNodeId = searchedNodeId; _isNeighborsExpected = true; _discoveryManager.SendMessage(msg); NodeStats.AddNodeStatsEvent(NodeStatsEventType.DiscoveryFindNodeOut); }
public void FindNodeMessageTest() { var message = new FindNodeMessage { FarAddress = _farAddress, SearchedNodeId = new byte[] { 1, 2, 3 }, FarPublicKey = _privateKey.PublicKey, ExpirationTime = 60 + (long)_timestamper.EpochMilliseconds }; var data = _messageSerializationService.Serialize(message); var deserializedMessage = _messageSerializationService.Deserialize <FindNodeMessage>(data); Assert.AreEqual(message.MessageType, deserializedMessage.MessageType); Assert.AreEqual(message.FarPublicKey, deserializedMessage.FarPublicKey); Assert.AreEqual(message.ExpirationTime, deserializedMessage.ExpirationTime); Assert.AreEqual(message.SearchedNodeId, deserializedMessage.SearchedNodeId); }
public void FindNodeMessageTest() { var message = new FindNodeMessage { FarAddress = _farAddress, SearchedNodeId = new byte[] { 1, 2, 3 }, FarPublicKey = _privateKey.PublicKey, ExpirationTime = _config.DiscoveryMsgExpiryTime + Timestamp.UnixUtcUntilNowMilisecs }; var data = _messageSerializationService.Serialize(message); var deserializedMessage = _messageSerializationService.Deserialize <FindNodeMessage>(data); Assert.AreEqual(message.MessageType, deserializedMessage.MessageType); Assert.AreEqual(message.FarPublicKey, deserializedMessage.FarPublicKey); Assert.AreEqual(message.ExpirationTime, deserializedMessage.ExpirationTime); Assert.AreEqual(message.SearchedNodeId, deserializedMessage.SearchedNodeId); }
public void SendFindNode(byte[] searchedNodeId) { if (!IsBonded) { if (_logger.IsDebug) { _logger.Debug($"Sending FIND NODE on {ManagedNode} before bonding"); } } if (DateTime.UtcNow - _lastTimeSendFindNode < TimeSpan.FromSeconds(60)) { return; } FindNodeMessage msg = _discoveryMessageFactory.CreateOutgoingMessage <FindNodeMessage>(ManagedNode); msg.SearchedNodeId = searchedNodeId; _isNeighborsExpected = true; _discoveryManager.SendMessage(msg); NodeStats.AddNodeStatsEvent(NodeStatsEventType.DiscoveryFindNodeOut); }
public void HandleFindNode(FindNodeMessage message) { List <Node> closest = this.node_manager.Table.GetClosestNodes(message.TargetId); SendNeighbours(closest, message.Timestamp); }