comments.

This commit is contained in:
Christopher Jeffrey 2016-06-03 12:14:45 -07:00
parent 496b922f18
commit bbec33591d
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD
3 changed files with 12 additions and 1 deletions

View File

@ -2095,7 +2095,7 @@ Chain.prototype.retarget = function retarget(prev, first) {
};
/**
* Find a locator. Analagous to bitcoind's `FindForkInMainChain()`.
* Find a locator. Analagous to bitcoind's `FindForkInGlobalIndex()`.
* @param {Hash[]} locator - Hashes.
* @param {Function} callback - Returns [Error, {@link Hash}] (the
* hash of the latest known block).

View File

@ -1222,11 +1222,14 @@ Peer.prototype._handleGetData = function _handleGetData(items) {
return done();
}
// Hit the broadcast queue first.
for (i = 0; i < items.length; i++) {
item = items[i];
entry = this.pool.inv.map[item.hash];
witness = (item.type & constants.WITNESS_MASK) !== 0;
// If the item isn't present, queue it up
// to be checked in the mempool or chain.
if (!entry) {
check.push(item);
continue;
@ -1246,6 +1249,10 @@ Peer.prototype._handleGetData = function _handleGetData(items) {
witness ? 'witness' : 'normal',
this.hostname);
// Try to send the data.
// If the item was announce-only (i.e. the data
// isn't actually contained in the broadcast
// item), check this on the mempool/chain.
if (!entry.send(this, witness))
check.push(item);
}
@ -1253,6 +1260,8 @@ Peer.prototype._handleGetData = function _handleGetData(items) {
if (this.pool.options.selfish)
return done();
// Item wasn't found in broadcast queue.
// Check the mempool and chain.
utils.forEachSerial(check, function(item, next) {
var type = item.type & ~constants.WITNESS_MASK;
var witness = (item.type & constants.WITNESS_MASK) !== 0;

View File

@ -2254,6 +2254,8 @@ BroadcastItem.prototype.send = function send(peer, witness) {
}
if (this.type === constants.inv.TX) {
// Failsafe - we never want to relay coinbases.
// They are an insta-ban from any bitcoind node.
if (this.msg.isCoinbase()) {
peer.write(peer.framer.notFound([this]));
bcoin.debug('Failsafe: tried to relay a coinbase.');