peer: fix serving broadcasted txs.
This commit is contained in:
parent
9dd863d9f2
commit
7aa2ecb24b
@ -1446,8 +1446,16 @@ Peer.prototype._getItem = function _getItem(item, callback) {
|
|||||||
|
|
||||||
entry.ack(this);
|
entry.ack(this);
|
||||||
|
|
||||||
if (entry.msg)
|
if (entry.msg) {
|
||||||
return callback(null, entry.msg);
|
if (item.isTX()) {
|
||||||
|
if (entry.type === constants.inv.TX)
|
||||||
|
return callback(null, entry.msg);
|
||||||
|
} else {
|
||||||
|
if (entry.type === constants.inv.BLOCK)
|
||||||
|
return callback(null, entry.msg);
|
||||||
|
}
|
||||||
|
return callback();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.options.selfish)
|
if (this.options.selfish)
|
||||||
@ -1456,7 +1464,7 @@ Peer.prototype._getItem = function _getItem(item, callback) {
|
|||||||
if (item.isTX()) {
|
if (item.isTX()) {
|
||||||
if (!this.mempool)
|
if (!this.mempool)
|
||||||
return callback();
|
return callback();
|
||||||
return callback(null, this.mempool.getEntry(item.hash));
|
return callback(null, this.mempool.getTX(item.hash));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.chain.db.options.spv)
|
if (this.chain.db.options.spv)
|
||||||
@ -1508,7 +1516,7 @@ Peer.prototype._handleGetData = function _handleGetData(items) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (item.isTX()) {
|
if (item.isTX()) {
|
||||||
tx = entry.tx;
|
tx = entry;
|
||||||
|
|
||||||
// Coinbases are an insta-ban from any node.
|
// Coinbases are an insta-ban from any node.
|
||||||
// This should technically never happen, but
|
// This should technically never happen, but
|
||||||
@ -1520,12 +1528,6 @@ Peer.prototype._handleGetData = function _handleGetData(items) {
|
|||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fallback in case fee filter fails in `announce`.
|
|
||||||
if (self.feeRate !== -1) {
|
|
||||||
if (entry.getRate() < self.feeRate)
|
|
||||||
return next();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.hasWitness())
|
if (item.hasWitness())
|
||||||
self.write(self.framer.witnessTX(tx));
|
self.write(self.framer.witnessTX(tx));
|
||||||
else
|
else
|
||||||
|
|||||||
@ -333,7 +333,7 @@ Fullnode.prototype.sendTX = function sendTX(tx, wait, callback) {
|
|||||||
if (err) {
|
if (err) {
|
||||||
if (err.type === 'VerifyError') {
|
if (err.type === 'VerifyError') {
|
||||||
self._error(err);
|
self._error(err);
|
||||||
self.logger.warning('Verification failed for tx: %.', tx.rhash);
|
self.logger.warning('Verification failed for tx: %s.', tx.rhash);
|
||||||
self.logger.warning('Attempting to broadcast anyway...');
|
self.logger.warning('Attempting to broadcast anyway...');
|
||||||
if (!wait) {
|
if (!wait) {
|
||||||
self.pool.broadcast(tx);
|
self.pool.broadcast(tx);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user