3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-02-07 14:54:15 +00:00

Follow the protocol change that occurs on Feb 20th

This commit is contained in:
Mike Hearn 2012-01-21 17:56:19 +01:00
parent c7fd805e47
commit 8be3a7a027

View File

@ -50,6 +50,7 @@ public class TCPNetworkConnection implements NetworkConnection {
// Given to the BitcoinSerializer to de-duplicate messages.
private static final LinkedHashMap<Sha256Hash, Integer> dedupeList = BitcoinSerializer.createDedupeList();
private BitcoinSerializer serializer = null;
private static final Date checksummingProtocolChangeDate = new Date(1329696000000L);
/**
* Connect to the given IP address using the port specified as part of the network parameters. Once construction
@ -79,8 +80,10 @@ public class TCPNetworkConnection implements NetworkConnection {
out = socket.getOutputStream();
in = socket.getInputStream();
// The version message never uses checksumming. Update checkumming property after version is read.
// The version message does not use checksumming, until Feb 2012 when it magically does.
// So pre-Feb 2012, update checkumming property after version is read.
this.serializer = new BitcoinSerializer(params, false, dedupe ? dedupeList : null);
this.serializer.setUseChecksumming(Utils.now().after(checksummingProtocolChangeDate));
// Announce ourselves. This has to come first to connect to clients beyond v0.30.20.2 which wait to hear
// from us until they send their version message back.
@ -118,7 +121,7 @@ public class TCPNetworkConnection implements NetworkConnection {
}
throw new ProtocolException("Peer does not have a copy of the block chain.");
}
// newer clients use checksumming
// Newer clients use checksumming.
serializer.setUseChecksumming(peerVersion >= 209);
// Handshake is done!
}