mining: remove mod size from priority. better free calculation.
This commit is contained in:
parent
e577228944
commit
e31ddaa61a
@ -823,7 +823,7 @@ Mempool.prototype.verify = co(function* verify(entry, view) {
|
||||
}
|
||||
|
||||
// Make sure this guy gave a decent fee.
|
||||
minFee = tx.getMinFee(entry.size, this.options.minRelay);
|
||||
minFee = policy.getMinFee(entry.size, this.options.minRelay);
|
||||
|
||||
if (this.options.relayPriority && entry.fee < minFee) {
|
||||
if (!entry.isFree(height)) {
|
||||
|
||||
@ -139,8 +139,7 @@ MempoolEntry.fromTX = function fromTX(tx, view, height) {
|
||||
|
||||
MempoolEntry.prototype.getPriority = function getPriority(height) {
|
||||
var heightDelta = height - this.height;
|
||||
var modSize = this.tx.getModifiedSize(this.size);
|
||||
var deltaPriority = (heightDelta * this.value) / modSize;
|
||||
var deltaPriority = (heightDelta * this.value) / this.size;
|
||||
var result = this.priority + Math.floor(deltaPriority);
|
||||
if (result < 0)
|
||||
result = 0;
|
||||
|
||||
@ -630,6 +630,8 @@ MinerOptions.fromOptions = function fromOptions(options) {
|
||||
*/
|
||||
|
||||
function cmpPriority(a, b) {
|
||||
if (a.priority === b.priority)
|
||||
return cmpRate(a, b);
|
||||
return b.priority - a.priority;
|
||||
}
|
||||
|
||||
@ -643,6 +645,11 @@ function cmpRate(a, b) {
|
||||
if (b.descRate > b.rate)
|
||||
y = b.descRate;
|
||||
|
||||
if (x === y) {
|
||||
x = a.priority;
|
||||
y = b.priority;
|
||||
}
|
||||
|
||||
return y - x;
|
||||
}
|
||||
|
||||
|
||||
@ -21,6 +21,7 @@ var Output = require('../primitives/output');
|
||||
var mine = require('./mine');
|
||||
var workerPool = require('../workers/workerpool').pool;
|
||||
var consensus = require('../protocol/consensus');
|
||||
var policy = require('../protocol/policy');
|
||||
var encoding = require('../utils/encoding');
|
||||
|
||||
/**
|
||||
@ -584,8 +585,8 @@ function BlockEntry(tx) {
|
||||
this.priority = 0;
|
||||
this.free = false;
|
||||
this.sigops = 0;
|
||||
this.depCount = 0;
|
||||
this.descRate = 0;
|
||||
this.depCount = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -619,7 +620,7 @@ BlockEntry.fromEntry = function fromEntry(entry, attempt) {
|
||||
item.fee = entry.getFee();
|
||||
item.rate = entry.getRate();
|
||||
item.priority = entry.getPriority(attempt.height);
|
||||
item.free = entry.isFree(attempt.height);
|
||||
item.free = item.fee < policy.getMinFee(entry.size);
|
||||
item.sigops = entry.sigops;
|
||||
item.descRate = entry.getDescRate();
|
||||
return item;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user