Added warning about re-querying for sync blocks.

This commit is contained in:
Chris Kleeschulte 2017-10-10 14:10:21 -04:00
parent 316ce66c87
commit 7da189acf9
No known key found for this signature in database
GPG Key ID: 33195D27EF6BDB7F
4 changed files with 49 additions and 124 deletions

View File

@ -934,12 +934,21 @@ BlockService.prototype._sync = function() {
self._currentQuery = self._tip.hash; self._currentQuery = self._tip.hash;
log.debug('Block Service: querying header service for next block using tip: ' + self._tip.hash);
self._header.getNextHash(self._tip, function(err, targetHash, nextHash) { self._header.getNextHash(self._tip, function(err, targetHash, nextHash) {
if(err) { if(err) {
return self._handleError(err); return self._handleError(err);
} }
// this might be because the peer reorg from our tip or the peer went away.
if (self._targetHash === targetHash) {
log.warning('Block Service: we asked for the same hash from the header service more than once.');
}
self._targetHash = targetHash;
// to ensure that we can receive blocks that were previously delivered // to ensure that we can receive blocks that were previously delivered
// this will lead to duplicate transactions being sent // this will lead to duplicate transactions being sent
self._p2p.clearInventoryCache(); self._p2p.clearInventoryCache();

View File

@ -642,18 +642,7 @@ HeaderService.prototype._handleReorg = function(block, callback) {
// then, we'll get the last header from the database which will nuke out all the // then, we'll get the last header from the database which will nuke out all the
// headers that are greater than new tip height. // headers that are greater than new tip height.
self._adjustHeadersForCheckPointTip(function(err) { self._adjustHeadersForCheckPointTip(callback);
if(err) {
return callback(err);
}
// we will set the reorg block here so that when startSync completes,
// it can check to ensure the final set of header contains the reorg block.
// in other words, our peer has completed its own reorg process and is delievering
// us a valid set of headers.
callback();
});
}; };

149
package-lock.json generated
View File

@ -1225,9 +1225,9 @@
} }
}, },
"diff": { "diff": {
"version": "3.2.0", "version": "3.3.1",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
"integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=" "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww=="
}, },
"dom-serializer": { "dom-serializer": {
"version": "0.1.0", "version": "0.1.0",
@ -1920,15 +1920,10 @@
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
}, },
"graceful-readlink": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
},
"growl": { "growl": {
"version": "1.9.2", "version": "1.10.3",
"resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
"integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=" "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q=="
}, },
"handlebars": { "handlebars": {
"version": "4.0.10", "version": "4.0.10",
@ -2016,7 +2011,8 @@
"has-flag": { "has-flag": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
"integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
"dev": true
}, },
"has-unicode": { "has-unicode": {
"version": "2.0.1", "version": "2.0.1",
@ -2712,55 +2708,6 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
}, },
"lodash._baseassign": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
"integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=",
"requires": {
"lodash._basecopy": "3.0.1",
"lodash.keys": "3.1.2"
}
},
"lodash._basecopy": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
"integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY="
},
"lodash._basecreate": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz",
"integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE="
},
"lodash._getnative": {
"version": "3.9.1",
"resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
"integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U="
},
"lodash._isiterateecall": {
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
"integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw="
},
"lodash.create": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz",
"integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=",
"requires": {
"lodash._baseassign": "3.2.0",
"lodash._basecreate": "3.0.3",
"lodash._isiterateecall": "3.0.9"
}
},
"lodash.isarguments": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
"integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo="
},
"lodash.isarray": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
"integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U="
},
"lodash.isplainobject": { "lodash.isplainobject": {
"version": "4.0.6", "version": "4.0.6",
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
@ -2771,16 +2718,6 @@
"resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
"integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
}, },
"lodash.keys": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
"integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
"requires": {
"lodash._getnative": "3.9.1",
"lodash.isarguments": "3.1.0",
"lodash.isarray": "3.0.4"
}
},
"lodash.mapvalues": { "lodash.mapvalues": {
"version": "4.6.0", "version": "4.6.0",
"resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz",
@ -2943,44 +2880,34 @@
} }
}, },
"mocha": { "mocha": {
"version": "3.5.3", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz", "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.0.1.tgz",
"integrity": "sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==", "integrity": "sha512-evDmhkoA+cBNiQQQdSKZa2b9+W2mpLoj50367lhy+Klnx9OV8XlCIhigUnn1gaTFLQCa0kdNhEGDr0hCXOQFDw==",
"requires": { "requires": {
"browser-stdout": "1.3.0", "browser-stdout": "1.3.0",
"commander": "2.9.0", "commander": "2.11.0",
"debug": "2.6.8", "debug": "3.1.0",
"diff": "3.2.0", "diff": "3.3.1",
"escape-string-regexp": "1.0.5", "escape-string-regexp": "1.0.5",
"glob": "7.1.1", "glob": "7.1.2",
"growl": "1.9.2", "growl": "1.10.3",
"he": "1.1.1", "he": "1.1.1",
"json3": "3.3.2",
"lodash.create": "3.1.1",
"mkdirp": "0.5.1", "mkdirp": "0.5.1",
"supports-color": "3.1.2" "supports-color": "4.4.0"
}, },
"dependencies": { "dependencies": {
"commander": { "debug": {
"version": "2.9.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": { "requires": {
"graceful-readlink": "1.0.1" "ms": "2.0.0"
} }
}, },
"glob": { "has-flag": {
"version": "7.1.1", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
"integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
"requires": {
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
}, },
"minimist": { "minimist": {
"version": "0.0.8", "version": "0.0.8",
@ -2996,11 +2923,11 @@
} }
}, },
"supports-color": { "supports-color": {
"version": "3.1.2", "version": "4.4.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
"integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
"requires": { "requires": {
"has-flag": "1.0.0" "has-flag": "2.0.0"
} }
} }
} }
@ -4266,14 +4193,6 @@
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
"integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
}, },
"string_decoder": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
"requires": {
"safe-buffer": "5.1.1"
}
},
"string-length": { "string-length": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
@ -4293,6 +4212,14 @@
"strip-ansi": "3.0.1" "strip-ansi": "3.0.1"
} }
}, },
"string_decoder": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
"requires": {
"safe-buffer": "5.1.1"
}
},
"stringstream": { "stringstream": {
"version": "0.0.5", "version": "0.0.5",
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",

View File

@ -16,7 +16,7 @@
"bitcore-node": "./bin/bitcore-node" "bitcore-node": "./bin/bitcore-node"
}, },
"scripts": { "scripts": {
"test": "mocha -R spec --recursive" "test": "NODE_ENV=test mocha -R spec --recursive test"
}, },
"tags": [ "tags": [
"bitcoin", "bitcoin",