Search in sources :

Example 1 with NodeId

use of com.radixdlt.network.p2p.NodeId in project radixdlt by radixdlt.

the class OutboundMessageEventTest method sensibleToString.

@Test
public void sensibleToString() {
    NodeId peer = mock(NodeId.class);
    Message message = mock(Message.class);
    long nanoTimeDiff = 123456789L;
    OutboundMessageEvent event = new OutboundMessageEvent(peer, message, nanoTimeDiff);
    String s = event.toString();
    assertThat(s).contains(OutboundMessageEvent.class.getSimpleName()).contains(peer.toString()).contains(message.toString()).contains(String.valueOf(nanoTimeDiff)).contains("priority=0");
}
Also used : PeerPongMessage(org.radix.network.messages.PeerPongMessage) Message(org.radix.network.messaging.Message) PeerPingMessage(org.radix.network.messages.PeerPingMessage) NodeId(com.radixdlt.network.p2p.NodeId) Test(org.junit.Test)

Example 2 with NodeId

use of com.radixdlt.network.p2p.NodeId in project radixdlt by radixdlt.

the class OutboundMessageEventTest method makeMessageEventFor.

private OutboundMessageEvent makeMessageEventFor(Class<? extends Message> cls) {
    NodeId peer = mock(NodeId.class);
    Message message = mock(cls);
    long nanoTimeDiff = 123456789L;
    return new OutboundMessageEvent(peer, message, nanoTimeDiff);
}
Also used : PeerPongMessage(org.radix.network.messages.PeerPongMessage) Message(org.radix.network.messaging.Message) PeerPingMessage(org.radix.network.messages.PeerPingMessage) NodeId(com.radixdlt.network.p2p.NodeId)

Example 3 with NodeId

use of com.radixdlt.network.p2p.NodeId in project radixdlt by radixdlt.

the class OutboundMessageEventTest method peerPongToString.

@Test
public void peerPongToString() {
    NodeId peer = mock(NodeId.class);
    Message message = mock(PeerPongMessage.class);
    long nanoTimeDiff = 123456789L;
    OutboundMessageEvent event = new OutboundMessageEvent(peer, message, nanoTimeDiff);
    String s = event.toString();
    assertThat(s).contains(OutboundMessageEvent.class.getSimpleName()).contains(peer.toString()).contains(message.toString()).contains(String.valueOf(nanoTimeDiff)).contains("priority=" + Integer.MIN_VALUE);
}
Also used : PeerPongMessage(org.radix.network.messages.PeerPongMessage) Message(org.radix.network.messaging.Message) PeerPingMessage(org.radix.network.messages.PeerPingMessage) NodeId(com.radixdlt.network.p2p.NodeId) Test(org.junit.Test)

Example 4 with NodeId

use of com.radixdlt.network.p2p.NodeId in project radixdlt by radixdlt.

the class OutboundMessageEventTest method peerPingToString.

@Test
public void peerPingToString() {
    NodeId peer = mock(NodeId.class);
    Message message = mock(PeerPingMessage.class);
    long nanoTimeDiff = 123456789L;
    OutboundMessageEvent event = new OutboundMessageEvent(peer, message, nanoTimeDiff);
    String s = event.toString();
    assertThat(s).contains(OutboundMessageEvent.class.getSimpleName()).contains(peer.toString()).contains(message.toString()).contains(String.valueOf(nanoTimeDiff)).contains("priority=" + Integer.MIN_VALUE);
}
Also used : PeerPongMessage(org.radix.network.messages.PeerPongMessage) Message(org.radix.network.messaging.Message) PeerPingMessage(org.radix.network.messages.PeerPingMessage) NodeId(com.radixdlt.network.p2p.NodeId) Test(org.junit.Test)

Example 5 with NodeId

use of com.radixdlt.network.p2p.NodeId in project radixdlt by radixdlt.

the class AddressBook method banPeer.

void banPeer(NodeId nodeId, Duration banDuration) {
    synchronized (lock) {
        final var banUntil = Instant.now().plus(banDuration);
        final var maybeExistingEntry = findById(nodeId);
        if (maybeExistingEntry.isPresent()) {
            final var existingEntry = maybeExistingEntry.get();
            final var alreadyBanned = existingEntry.bannedUntil().filter(bu -> bu.isAfter(banUntil)).isPresent();
            if (!alreadyBanned) {
                final var updatedEntry = existingEntry.cleanupExpiredBlacklsitedUris().withBanUntil(banUntil);
                this.knownPeers.put(nodeId, updatedEntry);
                this.persistEntry(updatedEntry);
                this.peerEventDispatcher.dispatch(new PeerBanned(nodeId));
            }
        } else {
            final var newEntry = AddressBookEntry.createBanned(nodeId, banUntil);
            this.knownPeers.put(nodeId, newEntry);
            this.persistEntry(newEntry);
            this.peerEventDispatcher.dispatch(new PeerBanned(nodeId));
        }
    }
}
Also used : InetUtils(com.radixdlt.utils.InetUtils) Inject(com.google.inject.Inject) HashMap(java.util.HashMap) InetAddress(java.net.InetAddress) ImmutableList(com.google.common.collect.ImmutableList) Duration(java.time.Duration) Map(java.util.Map) PeerAddressEntry(com.radixdlt.network.p2p.addressbook.AddressBookEntry.PeerAddressEntry) ImmutableSet(com.google.common.collect.ImmutableSet) ImmutableMap(com.google.common.collect.ImmutableMap) EventDispatcher(com.radixdlt.environment.EventDispatcher) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) Set(java.util.Set) RadixNodeUri(com.radixdlt.network.p2p.RadixNodeUri) LatestConnectionStatus(com.radixdlt.network.p2p.addressbook.AddressBookEntry.PeerAddressEntry.LatestConnectionStatus) Instant(java.time.Instant) UnknownHostException(java.net.UnknownHostException) Objects(java.util.Objects) P2PConfig(com.radixdlt.network.p2p.P2PConfig) PeerEvent(com.radixdlt.network.p2p.PeerEvent) PeerBanned(com.radixdlt.network.p2p.PeerEvent.PeerBanned) Stream(java.util.stream.Stream) NodeId(com.radixdlt.network.p2p.NodeId) Self(com.radixdlt.hotstuff.bft.Self) Optional(java.util.Optional) Predicate.not(java.util.function.Predicate.not) Comparator(java.util.Comparator) PeerBanned(com.radixdlt.network.p2p.PeerEvent.PeerBanned)

Aggregations

NodeId (com.radixdlt.network.p2p.NodeId)5 PeerPingMessage (org.radix.network.messages.PeerPingMessage)4 PeerPongMessage (org.radix.network.messages.PeerPongMessage)4 Message (org.radix.network.messaging.Message)4 Test (org.junit.Test)3 ImmutableList (com.google.common.collect.ImmutableList)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 ImmutableSet (com.google.common.collect.ImmutableSet)1 Inject (com.google.inject.Inject)1 EventDispatcher (com.radixdlt.environment.EventDispatcher)1 Self (com.radixdlt.hotstuff.bft.Self)1 P2PConfig (com.radixdlt.network.p2p.P2PConfig)1 PeerEvent (com.radixdlt.network.p2p.PeerEvent)1 PeerBanned (com.radixdlt.network.p2p.PeerEvent.PeerBanned)1 RadixNodeUri (com.radixdlt.network.p2p.RadixNodeUri)1 PeerAddressEntry (com.radixdlt.network.p2p.addressbook.AddressBookEntry.PeerAddressEntry)1 LatestConnectionStatus (com.radixdlt.network.p2p.addressbook.AddressBookEntry.PeerAddressEntry.LatestConnectionStatus)1 InetUtils (com.radixdlt.utils.InetUtils)1 InetAddress (java.net.InetAddress)1 UnknownHostException (java.net.UnknownHostException)1