Fix Controller's processing of HEIGHT_V2 to update all peers with same ID

This commit is contained in:
catbref 2019-07-01 11:07:55 +01:00
parent bdfbea3a53
commit ad827ae01d
3 changed files with 8 additions and 6 deletions

View File

@ -77,6 +77,7 @@ public class Controller extends Thread {
System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");
}
/** Controller start-up time (ms) taken using <tt>System.currentTimeMillis()</tt>, NOT <tt>NTP.getTime()</tt>. */
public static final long startTime = System.currentTimeMillis();
public static final String VERSION_PREFIX = "qora-core-";
@ -545,10 +546,10 @@ public class Controller extends Thread {
ReentrantLock peerLock = connectedPeer.getPeerLock();
peerLock.lock();
try {
peer.setLastHeight(heightV2Message.getHeight());
peer.setLastBlockSignature(heightV2Message.getSignature());
peer.setLastBlockTimestamp(heightV2Message.getTimestamp());
peer.setLastBlockGenerator(heightV2Message.getGenerator());
connectedPeer.setLastHeight(heightV2Message.getHeight());
connectedPeer.setLastBlockSignature(heightV2Message.getSignature());
connectedPeer.setLastBlockTimestamp(heightV2Message.getTimestamp());
connectedPeer.setLastBlockGenerator(heightV2Message.getGenerator());
} finally {
peerLock.unlock();
}

View File

@ -94,6 +94,7 @@ public class Network extends Thread {
private ExecutorService peerExecutor;
private ExecutorService mergePeersExecutor;
private ExecutorService broadcastExecutor;
/** Timestamp (ms) for next general info broadcast to all connected peers. Based on <tt>System.currentTimeMillis()</tt> NOT <tt>NTP.getTime()</tt>. */
private long nextBroadcast;
private Lock mergePeersLock;

View File

@ -461,9 +461,9 @@ public class Peer extends Thread {
PingMessage pingMessage = new PingMessage();
try {
long before = System.currentTimeMillis();
final long before = System.currentTimeMillis();
Message message = peer.getResponse(pingMessage);
long after = System.currentTimeMillis();
final long after = System.currentTimeMillis();
if (message == null || message.getType() != MessageType.PING)
peer.disconnect("no ping received");