From 8e59aa28859a2f93510daf435a29e155c6fae300 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Fri, 11 Mar 2022 13:00:47 +0000 Subject: [PATCH] Peer getter methods renamed to include "immutable", for consistency with underlying lists and also to make it clearer to the callers. --- .../java/org/qortal/api/model/NodeStatus.java | 2 +- .../qortal/api/resource/AdminResource.java | 3 +- .../qortal/api/resource/PeersResource.java | 6 ++-- .../org/qortal/controller/BlockMinter.java | 4 +-- .../org/qortal/controller/Controller.java | 6 ++-- .../org/qortal/controller/Synchronizer.java | 6 ++-- .../ArbitraryDataFileListManager.java | 2 +- .../arbitrary/ArbitraryDataManager.java | 2 +- .../arbitrary/ArbitraryMetadataManager.java | 2 +- src/main/java/org/qortal/network/Network.java | 36 +++++++++---------- 10 files changed, 34 insertions(+), 35 deletions(-) diff --git a/src/main/java/org/qortal/api/model/NodeStatus.java b/src/main/java/org/qortal/api/model/NodeStatus.java index ccc1eb01..8dd6b8c2 100644 --- a/src/main/java/org/qortal/api/model/NodeStatus.java +++ b/src/main/java/org/qortal/api/model/NodeStatus.java @@ -26,7 +26,7 @@ public class NodeStatus { this.syncPercent = Synchronizer.getInstance().getSyncPercent(); this.isSynchronizing = this.syncPercent != null; - this.numberOfConnections = Network.getInstance().getHandshakedPeers().size(); + this.numberOfConnections = Network.getInstance().getImmutableHandshakedPeers().size(); this.height = Controller.getInstance().getChainHeight(); } diff --git a/src/main/java/org/qortal/api/resource/AdminResource.java b/src/main/java/org/qortal/api/resource/AdminResource.java index 7f4a3806..3fdc6dc4 100644 --- a/src/main/java/org/qortal/api/resource/AdminResource.java +++ b/src/main/java/org/qortal/api/resource/AdminResource.java @@ -35,7 +35,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.appender.RollingFileAppender; -import org.checkerframework.checker.units.qual.A; import org.qortal.account.Account; import org.qortal.account.PrivateKeyAccount; import org.qortal.api.*; @@ -514,7 +513,7 @@ public class AdminResource { PeerAddress peerAddress = PeerAddress.fromString(targetPeerAddress); InetSocketAddress resolvedAddress = peerAddress.toSocketAddress(); - List peers = Network.getInstance().getHandshakedPeers(); + List peers = Network.getInstance().getImmutableHandshakedPeers(); Peer targetPeer = peers.stream().filter(peer -> peer.getResolvedAddress().equals(resolvedAddress)).findFirst().orElse(null); if (targetPeer == null) diff --git a/src/main/java/org/qortal/api/resource/PeersResource.java b/src/main/java/org/qortal/api/resource/PeersResource.java index 38461141..1c7947c6 100644 --- a/src/main/java/org/qortal/api/resource/PeersResource.java +++ b/src/main/java/org/qortal/api/resource/PeersResource.java @@ -61,7 +61,7 @@ public class PeersResource { } ) public List getPeers() { - return Network.getInstance().getConnectedPeers().stream().map(ConnectedPeer::new).collect(Collectors.toList()); + return Network.getInstance().getImmutableConnectedPeers().stream().map(ConnectedPeer::new).collect(Collectors.toList()); } @GET @@ -304,7 +304,7 @@ public class PeersResource { PeerAddress peerAddress = PeerAddress.fromString(targetPeerAddress); InetSocketAddress resolvedAddress = peerAddress.toSocketAddress(); - List peers = Network.getInstance().getHandshakedPeers(); + List peers = Network.getInstance().getImmutableHandshakedPeers(); Peer targetPeer = peers.stream().filter(peer -> peer.getResolvedAddress().equals(resolvedAddress)).findFirst().orElse(null); if (targetPeer == null) @@ -352,7 +352,7 @@ public class PeersResource { public PeersSummary peersSummary() { PeersSummary peersSummary = new PeersSummary(); - List connectedPeers = Network.getInstance().getConnectedPeers().stream().collect(Collectors.toList()); + List connectedPeers = Network.getInstance().getImmutableConnectedPeers().stream().collect(Collectors.toList()); for (Peer peer : connectedPeers) { if (!peer.isOutbound()) { peersSummary.inboundConnections++; diff --git a/src/main/java/org/qortal/controller/BlockMinter.java b/src/main/java/org/qortal/controller/BlockMinter.java index 583facd0..de73adbe 100644 --- a/src/main/java/org/qortal/controller/BlockMinter.java +++ b/src/main/java/org/qortal/controller/BlockMinter.java @@ -149,7 +149,7 @@ public class BlockMinter extends Thread { } // Needs a mutable copy of the unmodifiableList - List peers = new ArrayList<>(Network.getInstance().getHandshakedPeers()); + List peers = new ArrayList<>(Network.getInstance().getImmutableHandshakedPeers()); BlockData lastBlockData = blockRepository.getLastBlock(); // Disregard peers that have "misbehaved" recently @@ -545,7 +545,7 @@ public class BlockMinter extends Thread { } NumberFormat formatter = new DecimalFormat("0.###E0"); - List peers = Network.getInstance().getHandshakedPeers(); + List peers = Network.getInstance().getImmutableHandshakedPeers(); // Loop through handshaked peers and check for any new block candidates for (Peer peer : peers) { if (peer.getCommonBlockData() != null && peer.getCommonBlockData().getCommonBlockSummary() != null) { diff --git a/src/main/java/org/qortal/controller/Controller.java b/src/main/java/org/qortal/controller/Controller.java index 1d3ce8be..1275a546 100644 --- a/src/main/java/org/qortal/controller/Controller.java +++ b/src/main/java/org/qortal/controller/Controller.java @@ -717,7 +717,7 @@ public class Controller extends Thread { return; } - final int numberOfPeers = Network.getInstance().getHandshakedPeers().size(); + final int numberOfPeers = Network.getInstance().getImmutableHandshakedPeers().size(); final int height = getChainHeight(); @@ -1447,7 +1447,7 @@ public class Controller extends Thread { return null; // Needs a mutable copy of the unmodifiableList - List peers = new ArrayList<>(Network.getInstance().getHandshakedPeers()); + List peers = new ArrayList<>(Network.getInstance().getImmutableHandshakedPeers()); // Filter out unsuitable peers Iterator iterator = peers.iterator(); @@ -1497,7 +1497,7 @@ public class Controller extends Thread { return false; // Needs a mutable copy of the unmodifiableList - List peers = new ArrayList<>(Network.getInstance().getHandshakedPeers()); + List peers = new ArrayList<>(Network.getInstance().getImmutableHandshakedPeers()); if (peers == null) return false; diff --git a/src/main/java/org/qortal/controller/Synchronizer.java b/src/main/java/org/qortal/controller/Synchronizer.java index 85e42237..8f543379 100644 --- a/src/main/java/org/qortal/controller/Synchronizer.java +++ b/src/main/java/org/qortal/controller/Synchronizer.java @@ -196,7 +196,7 @@ public class Synchronizer extends Thread { return true; // Needs a mutable copy of the unmodifiableList - List peers = new ArrayList<>(Network.getInstance().getHandshakedPeers()); + List peers = new ArrayList<>(Network.getInstance().getImmutableHandshakedPeers()); // Disregard peers that have "misbehaved" recently peers.removeIf(Controller.hasMisbehaved); @@ -213,7 +213,7 @@ public class Synchronizer extends Thread { checkRecoveryModeForPeers(peers); if (recoveryMode) { // Needs a mutable copy of the unmodifiableList - peers = new ArrayList<>(Network.getInstance().getHandshakedPeers()); + peers = new ArrayList<>(Network.getInstance().getImmutableHandshakedPeers()); peers.removeIf(Controller.hasOnlyGenesisBlock); peers.removeIf(Controller.hasMisbehaved); peers.removeIf(Controller.hasOldVersion); @@ -372,7 +372,7 @@ public class Synchronizer extends Thread { } private boolean checkRecoveryModeForPeers(List qualifiedPeers) { - List handshakedPeers = Network.getInstance().getHandshakedPeers(); + List handshakedPeers = Network.getInstance().getImmutableHandshakedPeers(); if (handshakedPeers.size() > 0) { // There is at least one handshaked peer diff --git a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileListManager.java b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileListManager.java index a3ba4438..415e410c 100644 --- a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileListManager.java +++ b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileListManager.java @@ -268,7 +268,7 @@ public class ArbitraryDataFileListManager { } this.addToSignatureRequests(signature58, true, false); - List handshakedPeers = Network.getInstance().getHandshakedPeers(); + List handshakedPeers = Network.getInstance().getImmutableHandshakedPeers(); List missingHashes = null; // Find hashes that we are missing diff --git a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java index a27080cd..4b6d3a28 100644 --- a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java +++ b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java @@ -111,7 +111,7 @@ public class ArbitraryDataManager extends Thread { } // Needs a mutable copy of the unmodifiableList - List peers = new ArrayList<>(Network.getInstance().getHandshakedPeers()); + List peers = new ArrayList<>(Network.getInstance().getImmutableHandshakedPeers()); // Disregard peers that have "misbehaved" recently peers.removeIf(Controller.hasMisbehaved); diff --git a/src/main/java/org/qortal/controller/arbitrary/ArbitraryMetadataManager.java b/src/main/java/org/qortal/controller/arbitrary/ArbitraryMetadataManager.java index aadeec79..fb75ea05 100644 --- a/src/main/java/org/qortal/controller/arbitrary/ArbitraryMetadataManager.java +++ b/src/main/java/org/qortal/controller/arbitrary/ArbitraryMetadataManager.java @@ -139,7 +139,7 @@ public class ArbitraryMetadataManager { } this.addToSignatureRequests(signature58, true, false); - List handshakedPeers = Network.getInstance().getHandshakedPeers(); + List handshakedPeers = Network.getInstance().getImmutableHandshakedPeers(); LOGGER.debug(String.format("Sending metadata request for signature %s to %d peers...", signature58, handshakedPeers.size())); // Build request diff --git a/src/main/java/org/qortal/network/Network.java b/src/main/java/org/qortal/network/Network.java index c3f03804..01fa57e5 100644 --- a/src/main/java/org/qortal/network/Network.java +++ b/src/main/java/org/qortal/network/Network.java @@ -253,7 +253,7 @@ public class Network { } } - public List getConnectedPeers() { + public List getImmutableConnectedPeers() { return this.immutableConnectedPeers; } @@ -302,14 +302,14 @@ public class Network { } // Check if we're already connected to and handshaked with this peer - Peer connectedPeer = this.getConnectedPeers().stream() + Peer connectedPeer = this.getImmutableConnectedPeers().stream() .filter(p -> p.getPeerData().getAddress().equals(peerAddress)) .findFirst() .orElse(null); boolean isConnected = (connectedPeer != null); - boolean isHandshaked = this.getHandshakedPeers().stream() + boolean isHandshaked = this.getImmutableHandshakedPeers().stream() .anyMatch(p -> p.getPeerData().getAddress().equals(peerAddress)); if (isConnected && isHandshaked) { @@ -353,7 +353,7 @@ public class Network { /** * Returns list of connected peers that have completed handshaking. */ - public List getHandshakedPeers() { + public List getImmutableHandshakedPeers() { return this.immutableHandshakedPeers; } @@ -380,7 +380,7 @@ public class Network { /** * Returns list of peers we connected to that have completed handshaking. */ - public List getOutboundHandshakedPeers() { + public List getImmutableOutboundHandshakedPeers() { return this.immutableOutboundHandshakedPeers; } @@ -404,7 +404,7 @@ public class Network { * Returns first peer that has completed handshaking and has matching public key. */ public Peer getHandshakedPeerWithPublicKey(byte[] publicKey) { - return this.getConnectedPeers().stream() + return this.getImmutableConnectedPeers().stream() .filter(peer -> peer.getHandshakeStatus() == Handshake.COMPLETED && Arrays.equals(peer.getPeersPublicKey(), publicKey)) .findFirst().orElse(null); @@ -422,13 +422,13 @@ public class Network { private final Predicate isConnectedPeer = peerData -> { PeerAddress peerAddress = peerData.getAddress(); - return this.getConnectedPeers().stream().anyMatch(peer -> peer.getPeerData().getAddress().equals(peerAddress)); + return this.getImmutableConnectedPeers().stream().anyMatch(peer -> peer.getPeerData().getAddress().equals(peerAddress)); }; private final Predicate isResolvedAsConnectedPeer = peerData -> { try { InetSocketAddress resolvedSocketAddress = peerData.getAddress().toSocketAddress(); - return this.getConnectedPeers().stream() + return this.getImmutableConnectedPeers().stream() .anyMatch(peer -> peer.getResolvedAddress().equals(resolvedSocketAddress)); } catch (UnknownHostException e) { // Can't resolve - no point even trying to connect @@ -494,7 +494,7 @@ public class Network { } private Task maybeProducePeerMessageTask() { - for (Peer peer : getConnectedPeers()) { + for (Peer peer : getImmutableConnectedPeers()) { Task peerTask = peer.getMessageTask(); if (peerTask != null) { return peerTask; @@ -506,7 +506,7 @@ public class Network { private Task maybeProducePeerPingTask(Long now) { // Ask connected peers whether they need a ping - for (Peer peer : getHandshakedPeers()) { + for (Peer peer : getImmutableHandshakedPeers()) { Task peerTask = peer.getPingTask(now); if (peerTask != null) { return peerTask; @@ -534,7 +534,7 @@ public class Network { return null; } - if (getOutboundHandshakedPeers().size() >= minOutboundPeers) { + if (getImmutableOutboundHandshakedPeers().size() >= minOutboundPeers) { return null; } @@ -798,7 +798,7 @@ public class Network { } private Peer getPeerFromChannel(SocketChannel socketChannel) { - for (Peer peer : this.getConnectedPeers()) { + for (Peer peer : this.getImmutableConnectedPeers()) { if (peer.getSocketChannel() == socketChannel) { return peer; } @@ -813,7 +813,7 @@ public class Network { } // Find peers that have reached their maximum connection age, and disconnect them - List peersToDisconnect = this.getConnectedPeers().stream() + List peersToDisconnect = this.getImmutableConnectedPeers().stream() .filter(peer -> !peer.isSyncInProgress()) .filter(peer -> peer.hasReachedMaxConnectionAge()) .collect(Collectors.toList()); @@ -1290,7 +1290,7 @@ public class Network { } } - for (Peer peer : this.getConnectedPeers()) { + for (Peer peer : this.getImmutableConnectedPeers()) { peer.disconnect("to be forgotten"); } @@ -1302,7 +1302,7 @@ public class Network { try { InetSocketAddress knownAddress = peerAddress.toSocketAddress(); - List peers = this.getConnectedPeers(); + List peers = this.getImmutableConnectedPeers(); peers.removeIf(peer -> !Peer.addressEquals(knownAddress, peer.getResolvedAddress())); for (Peer peer : peers) { @@ -1323,7 +1323,7 @@ public class Network { // Disconnect peers that are stuck during handshake // Needs a mutable copy of the unmodifiableList - List handshakePeers = new ArrayList<>(this.getConnectedPeers()); + List handshakePeers = new ArrayList<>(this.getImmutableConnectedPeers()); // Disregard peers that have completed handshake or only connected recently handshakePeers.removeIf(peer -> peer.getHandshakeStatus() == Handshake.COMPLETED @@ -1500,7 +1500,7 @@ public class Network { } try { - broadcastExecutor.execute(new Broadcaster(this.getHandshakedPeers(), peerMessageBuilder)); + broadcastExecutor.execute(new Broadcaster(this.getImmutableHandshakedPeers(), peerMessageBuilder)); } catch (RejectedExecutionException e) { // Can't execute - probably because we're shutting down, so ignore } @@ -1538,7 +1538,7 @@ public class Network { } // Close all peer connections - for (Peer peer : this.getConnectedPeers()) { + for (Peer peer : this.getImmutableConnectedPeers()) { peer.shutdown(); } }