From 9d53ef5106e5d3f8bc1685e90fbc7287aec3dec9 Mon Sep 17 00:00:00 2001 From: olalonde Date: Tue, 8 Apr 2014 14:38:00 +0800 Subject: [PATCH 1/4] Connection: default value for sendGetBlocks --- Connection.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Connection.js b/Connection.js index f273ec3..311cce6 100644 --- a/Connection.js +++ b/Connection.js @@ -186,10 +186,15 @@ Connection.prototype.sendVersion = function () { }; Connection.prototype.sendGetBlocks = function (starts, stop, wantHeaders) { - var put = new Put(); - put.word32le(this.sendVer); + // Default value for stop is 0 to get as many blocks as possible (500) + stop = stop || '00000000000000000000000000000000'; + var put = new Put(); + + // https://en.bitcoin.it/wiki/Protocol_specification#getblocks + put.word32le(this.sendVer); put.varint(starts.length); + for (var i = 0; i < starts.length; i++) { if (starts[i].length != 32) { throw new Error('Invalid hash length'); @@ -443,8 +448,8 @@ Connection.prototype.parseMessage = function (command, payload) { data.headers = []; for (i = 0; i < data.count; i++) { var header = new Block(); -header.parse(parser); -data.headers.push(header); + header.parse(parser); + data.headers.push(header); } break; From ef79d7422665081108f9a1bb03a7e74cd0ce0a43 Mon Sep 17 00:00:00 2001 From: olalonde Date: Tue, 8 Apr 2014 14:56:34 +0800 Subject: [PATCH 2/4] Peerman: pass event information to listener. Save version on peer. --- PeerManager.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PeerManager.js b/PeerManager.js index c6e2029..1e88bdf 100644 --- a/PeerManager.js +++ b/PeerManager.js @@ -111,6 +111,7 @@ PeerManager.prototype.addConnection = function(socketConn, peer) { }; PeerManager.prototype.handleVersion = function(e) { + e.peer.version = e.message.version; if (!e.conn.inbound) { // TODO: Advertise our address (if listening) } @@ -132,7 +133,7 @@ PeerManager.prototype.handleReady = function (e) { }); if(this.isConnected == false) { - this.emit('netConnected'); + this.emit('netConnected', e); this.isConnected = true; } }; From dd6d1a31793aadfe9f63cb0184ea7ef81b3a6ed1 Mon Sep 17 00:00:00 2001 From: olalonde Date: Tue, 8 Apr 2014 21:15:48 +0800 Subject: [PATCH 3/4] PeerManager: Save start_height on peer. --- PeerManager.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/PeerManager.js b/PeerManager.js index 1e88bdf..d822986 100644 --- a/PeerManager.js +++ b/PeerManager.js @@ -112,6 +112,8 @@ PeerManager.prototype.addConnection = function(socketConn, peer) { PeerManager.prototype.handleVersion = function(e) { e.peer.version = e.message.version; + e.peer.start_height = e.message.start_height; + if (!e.conn.inbound) { // TODO: Advertise our address (if listening) } From ab18a4680360c80e8840f84ae09ca5d34b6a1ff1 Mon Sep 17 00:00:00 2001 From: olalonde Date: Tue, 8 Apr 2014 23:37:35 +0800 Subject: [PATCH 4/4] Connection: Replaced 0000... with util.NULL_HASH --- Connection.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Connection.js b/Connection.js index 311cce6..319a723 100644 --- a/Connection.js +++ b/Connection.js @@ -187,7 +187,7 @@ Connection.prototype.sendVersion = function () { Connection.prototype.sendGetBlocks = function (starts, stop, wantHeaders) { // Default value for stop is 0 to get as many blocks as possible (500) - stop = stop || '00000000000000000000000000000000'; + stop = stop || util.NULL_HASH; var put = new Put();