core: respect MaxFreeTransactionsPerBlock setting

Fix #1019.
This commit is contained in:
Roman Khimov 2020-06-08 12:35:39 +03:00
parent 8e785feeb6
commit 6437f4b32e

View file

@ -1528,12 +1528,13 @@ func (bc *Blockchain) ApplyPolicyToTxSet(txes []mempool.TxWithFee) []mempool.TxW
txes = txes[:bc.config.MaxTransactionsPerBlock] txes = txes[:bc.config.MaxTransactionsPerBlock]
} }
maxFree := bc.config.MaxFreeTransactionsPerBlock maxFree := bc.config.MaxFreeTransactionsPerBlock
if maxFree != 0 { if maxFree != 0 && len(txes) > maxFree {
lowStart := sort.Search(len(txes), func(i int) bool { // Transactions are sorted by fee, so we just find the first free one.
return bc.IsLowPriority(txes[i].Fee) freeStart := sort.Search(len(txes), func(i int) bool {
return txes[i].Fee == 0
}) })
if lowStart+maxFree < len(txes) { if freeStart+maxFree < len(txes) {
txes = txes[:lowStart+maxFree] txes = txes[:freeStart+maxFree]
} }
} }
return txes return txes