forked from Qortal/qortal
Restrict relays to v3.4.0 peers and above, in attempt to avoid bugs causing older peers to break relay chains.
This commit is contained in:
parent
492a9ed3cf
commit
722468a859
@ -67,6 +67,9 @@ public class ArbitraryDataFileListManager {
|
|||||||
/** Maximum number of hops that a file list relay request is allowed to make */
|
/** Maximum number of hops that a file list relay request is allowed to make */
|
||||||
public static int RELAY_REQUEST_MAX_HOPS = 4;
|
public static int RELAY_REQUEST_MAX_HOPS = 4;
|
||||||
|
|
||||||
|
/** Minimum peer version to use relay */
|
||||||
|
public static String RELAY_MIN_PEER_VERSION = "3.4.0";
|
||||||
|
|
||||||
|
|
||||||
private ArbitraryDataFileListManager() {
|
private ArbitraryDataFileListManager() {
|
||||||
}
|
}
|
||||||
@ -695,9 +698,10 @@ public class ArbitraryDataFileListManager {
|
|||||||
|
|
||||||
LOGGER.debug("Rebroadcasting hash list request from peer {} for signature {} to our other peers... totalRequestTime: {}, requestHops: {}", peer, Base58.encode(signature), totalRequestTime, requestHops);
|
LOGGER.debug("Rebroadcasting hash list request from peer {} for signature {} to our other peers... totalRequestTime: {}, requestHops: {}", peer, Base58.encode(signature), totalRequestTime, requestHops);
|
||||||
Network.getInstance().broadcast(
|
Network.getInstance().broadcast(
|
||||||
broadcastPeer -> broadcastPeer == peer ||
|
broadcastPeer ->
|
||||||
Objects.equals(broadcastPeer.getPeerData().getAddress().getHost(), peer.getPeerData().getAddress().getHost())
|
!broadcastPeer.isAtLeastVersion(RELAY_MIN_PEER_VERSION) ? null :
|
||||||
? null : relayGetArbitraryDataFileListMessage);
|
broadcastPeer == peer || Objects.equals(broadcastPeer.getPeerData().getAddress().getHost(), peer.getPeerData().getAddress().getHost()) ? null : relayGetArbitraryDataFileListMessage
|
||||||
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -22,8 +22,7 @@ import org.qortal.utils.Triple;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import static org.qortal.controller.arbitrary.ArbitraryDataFileListManager.RELAY_REQUEST_MAX_DURATION;
|
import static org.qortal.controller.arbitrary.ArbitraryDataFileListManager.*;
|
||||||
import static org.qortal.controller.arbitrary.ArbitraryDataFileListManager.RELAY_REQUEST_MAX_HOPS;
|
|
||||||
|
|
||||||
public class ArbitraryMetadataManager {
|
public class ArbitraryMetadataManager {
|
||||||
|
|
||||||
@ -439,9 +438,9 @@ public class ArbitraryMetadataManager {
|
|||||||
|
|
||||||
LOGGER.debug("Rebroadcasting metadata request from peer {} for signature {} to our other peers... totalRequestTime: {}, requestHops: {}", peer, Base58.encode(signature), totalRequestTime, requestHops);
|
LOGGER.debug("Rebroadcasting metadata request from peer {} for signature {} to our other peers... totalRequestTime: {}, requestHops: {}", peer, Base58.encode(signature), totalRequestTime, requestHops);
|
||||||
Network.getInstance().broadcast(
|
Network.getInstance().broadcast(
|
||||||
broadcastPeer -> broadcastPeer == peer ||
|
broadcastPeer ->
|
||||||
Objects.equals(broadcastPeer.getPeerData().getAddress().getHost(), peer.getPeerData().getAddress().getHost())
|
!broadcastPeer.isAtLeastVersion(RELAY_MIN_PEER_VERSION) ? null :
|
||||||
? null : relayGetArbitraryMetadataMessage);
|
broadcastPeer == peer || Objects.equals(broadcastPeer.getPeerData().getAddress().getHost(), peer.getPeerData().getAddress().getHost()) ? null : relayGetArbitraryMetadataMessage);
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user