From c90c3a183e67f1e7e777900e543d0c43f40d1ffd Mon Sep 17 00:00:00 2001 From: CalDescent Date: Fri, 18 Feb 2022 14:50:29 +0000 Subject: [PATCH] Block peers below 3.1.0 --- src/main/java/org/qortal/network/Handshake.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/org/qortal/network/Handshake.java b/src/main/java/org/qortal/network/Handshake.java index d88654cf..cdcff1d7 100644 --- a/src/main/java/org/qortal/network/Handshake.java +++ b/src/main/java/org/qortal/network/Handshake.java @@ -74,6 +74,12 @@ public enum Handshake { peer.setPeersConnectionTimestamp(peersConnectionTimestamp); peer.setPeersVersion(versionString, version); + // Ensure the peer is running at least the version specified in MIN_PEER_VERSION + if (peer.isAtLeastVersion(MIN_PEER_VERSION) == false) { + LOGGER.debug(String.format("Ignoring peer %s because it is on an old version (%s)", peer, versionString)); + return null; + } + if (Settings.getInstance().getAllowConnectionsWithOlderPeerVersions() == false) { // Ensure the peer is running at least the minimum version allowed for connections final String minPeerVersion = Settings.getInstance().getMinPeerVersion(); @@ -258,6 +264,9 @@ public enum Handshake { private static final long PEER_VERSION_131 = 0x0100030001L; + /** Minimum peer version that we are allowed to communicate with */ + private static final String MIN_PEER_VERSION = "3.1.0"; + private static final int POW_BUFFER_SIZE_PRE_131 = 8 * 1024 * 1024; // bytes private static final int POW_DIFFICULTY_PRE_131 = 8; // leading zero bits // Can always be made harder in the future...