Bitseed

Shopping Cart: $0.00 0 items

From the blog

Transaction Flooding

Over the past several months, there have been periodic “tests”  (some would say attacks) on the bitcoin network where someone has been intentionally sending huge numbers of very small, low fee transactions.  This flood of transactions exceeds the current 1 MB per block limit for miners.  Over the last week or so, these floods have become more severe.

With more transactions being sent than can be mined within the 1MB block limit, low fee transactions get backed up and form a big traffic jam in RAM memory of all the bitcoin nodes.   This huge increase in the node ‘mempool’, fills up the RAM memory and if it gets too full the node slows down and gets behind on blocks.  Nodes are designed to keep relaying unconfirmed transactions, so the spam can stay circulating among nodes for days.  It can take hours to days for the flooded transactions to clear out.   If the clog up is really bad, the node may just freeze-up until it is reset.

As a temporary measure, restarting bitcoin will clear the mempool and speed performance, but nodes constantly send each other unconfirmed transactions and the memory may eventually fill again.  There is a Restart Bitcoin button the the Web UI of V2.  Clock that and bitcoin will restart in a few minutes.

There are some settings that can help manage the flood.  It is hard to predict the exact value that are needed, but we have been using these settings recently and it seem to help

minrelaytxfee=0.00010000

limitfreerelay=5

These two lines can be placed in the ~.bitcoin/bitcoin.conf file and make the node reject more of the free/low-fee transactions that clog the network.  The values are adjustable, so the question is what are the best numbers.  0.00010000  means that transactions with a fee less than 0.0001 BTC  ($0.025) will not be relayed by the node initially.  However, the bitcoin protocol also gives priority to old uncleared transactions, so low fee tx may eventually be accepted by the node.  The second line limitfreerelay should help restrict that rate to 5KB per minute (current default is 15)

From SSH or Terminal window:

nano .bitcoin/bitcoin.conf

enter the lines at the bottom of the file:

minrelaytxfee=0.00010000

limitfreerelay=5

save and close

ctrl X

Y

enter

bitcoind must be restarted for the new settings to take effect.   You can use the “Restart Bitcoin” button in the web UI, or run ./restartbtc.sh at the command line.

The core dev team is recommending minrelaytxfee=0.00005000, but I think that may not be enough during an attack.  At present, a 10000 satoshi/KB fee is still is likely to take 3 blocks to get a first confirmation (1/2 delay).
Some good websites to visualize the network transaction status:

Leave a Reply

Your email address will not be published. Required fields are marked *