Comments on May 12, 2020 user stress test of BSV network

Published On

18 May 2020

Background

Some users performed a public stress test of the BSV network, beginning on May 12, 2020 and apparently continuing for a week. During the first day of this public stress test, approximately 2 million low fee transactions were broadcast on the BSV network. The vast majority of these transactions had a fee rate just over 0.25 sats/byte which is above the default relay fee, meaning the transactions were fully propagated around the network, but below the default transaction acceptance (or mining) fee of 0.5 sats/byte, meaning that most miners would not attempt to mine them. This resulted in a large mempool building up consuming as much as 1.7GB of memory. Note that the default mempool limit in BitcoinSV Node software is 1GB; however, most mining pools/groups have set their mempool limit significantly higher.

This “mempool buildup” event occurred just one day after the BTC block reward halving (on May 11), which caused a large influx of BTC miners to BSV, diluting the effective hash rate of the pre-existing dedicated BSV miners. This was apparent because the BSV network saw many 1MB blocks being mined in the days after May 11, suggesting that these new miners on BSV had imported configurations directly from their BTC setups. As such, the one mining pool we previously knew was mining with a transaction acceptance fee rate of 0.25 sats/byte (Mempool) was reduced to finding less than 1% of blocks on or around May 12, and was unable to process the backlog on their own. The mempool buildup was eventually cleared by TAAL, when it mined a world record 309MB block later on May 12.

Network impact

The BSV Node team runs quite a few bitcoind instances on mainnet to monitor the state of the network. What we saw on our bitcoin daemons, as well as what we learned from various miners, was very encouraging. The BSV Node software performed well within operating limits throughout this mempool buildup event. Some instances with the default 1GB mempool limit did not keep all of the transactions but they also didn’t slow down when they reached the 1GB limit. Neither did those instances need to keep all of the transactions in memory. The load from this event was a fraction of what BSV is subjected to daily on the BSV Scaling Test Network so this is unsurprising to us.

So what happened? – Relay fee vs transaction acceptance (mining) fee

It is important to note that there are two different fee settings in Bitcoin node software: 

  • the relay fee, which determines whether a miner will accept a transaction into its mempool and broadcast it to other miners. In BSV Node software, this is set by default at 0.25 sats/byte.
  • the transaction acceptance (mining) fee, which is what is needed for a miner to accept the transaction and add it into a block found by the miner. This is set by default at 0.5 sats/byte.

Thus, the default relay fee (0.25 sats/byte) is lower than the default transaction acceptance (mining) fee (0.5 sats/byte). Until late last year, these different fees were both set equally at 1 sat/byte so the difference in their function was not very apparent; furthermore, it was a given that if your transaction wasn’t rejected when you sent it, then it would also be mined rapidly. This was a substantial improvement over the BTC experience but it still had a significant downside: it left no room for miners to compete on fees.

Let’s hypothetically say that both relay and transaction acceptance fee rates are set by most miners to 1 sat/byte, and one miner wants to offer a lower rate (on both fees) of 0.8 sats/byte. A miner is of course free to offer the lower rate, but to take advantage of it as a user, you have a couple of important caveats:

  1. You will lose all double spend protection because other miners will ignore the lower fee transaction, will not be able to detect a later transaction is a double spend.
  2. You will not get the transaction relayed by other miners (because your relay fee of 0.8 sats/byte is lower than the 1 sat/byte required by the other miners), so to even get the transaction to the discounting miner, you have to find that miner’s node and submit it to them directly, via the Bitcoin peer-to-peer protocol.

The second problem can be solved with tools like Miner ID (to find the miner API endpoints) and Merchant API (to discover fees and to submit transactions easily to the discounting miners). The first problem is more concerning because if the starting point makes competitive price cutting uncompetitive due to immediate loss of utility, it is a very strong barrier to competition happening in the first place. We have seen the effect of this on BCH where after more than two years fee rates have remained stagnant.

By separating the two fees and leaving a gap in between them, we have a starting point where competitive pricing becomes possible. Any miner can reduce transaction acceptance fee as low as the relay fee, and transactions will still be fully propagated. Any miner could reduce the relay fee at any time, but in doing so, they would fully aware that they’d be on their own accepting those transactions for mining, for which they may have a market, but they would also be aware they have to have a plan to clear them out of their own mempool. Presumably by mining them.

But what happens if no one is mining these low fee transactions? Won’t they just build up until the nodes run out of memory?

In the short term, NO because the BSV Node software handles this scenario gracefully: once the mempool reaches the configured limit of memory usage, it will start evicting lowest fee transactions to make room for new transactions. This costs the miners nothing so they can maintain this state indefinitely whilst still taking all the transactions that meet their fee requirement. This is scenario is very different to the one you might encounter on BTC when the mempool fills up because of one critical factor: It does not push the cost of a transaction fee UP, it just puts a miner configured floor under it. In the real Bitcoin, competition is the force that drives prices down, not full mempools. And users will always have certainty that they can get a transaction accepted by using known fee rate. It CAN potentially create a fee market incentivising lower fee transactions to increase their fees though CPFP but the critical difference between this market and the BTC market is that it has a known ceiling.

This mempool memory limit exists simply because it is preferable to having no fall back option. But it is not intended to ever be reached. And for several reasons, this is likely to be a very rare event:

  1. Miners generally have very large mempools, most are configured with at least 8GB and they can raise this limit relatively easily in real time if there is an operational need to do so.
  2. If you are a transaction sender, it is in your interests to discover what fee is required to get your transaction mined using services like Merchant API. Otherwise, users risk having their transactions stuck in a mempool for days or weeks, and unable to access those funds during that time without using a CPFP payment to nudge it over the line. Once the behaviour of “fee discovery” is widely adopted and probably also automated, it is unlikely we will see this type of mempool buildup scenario again. The transactions with low fees won’t be there by mistake, they’ll be limited to users that intentionally want to test the market or who don’t care how long it takes to have their transactions mined.
  3. The mempool has a timeout: by default it’s two weeks, so it won’t keep filling up forever.
  4. There is always likely to be at least one miner that will intervene if the mempool gets out of hand to sweep the mempool as we saw TAAL did on May 12 – mining a world record sized 309MB block.
  5. Miners always have the hardline option of raising their relay fee and dropping all transactions below their transaction acceptance fee. I doubt they want to do this, but if they believe someone is trying to force them to drop fees by attempting to exhaust their mempool, they might just react by doing the opposite and demonstrating that miners are entirely free to choose what they include in their block.

It’s important to note that it is not much of a burden for miners to hold these transactions in memory. They don’t cause any significant CPU overhead; the transactions just sit there waiting. So as long as miners have enough memory (which most of them do), they can afford to hold transactions for as long as needed. Nevertheless, the BSV Node team is planning further improvements to offer more options to miners in these scenarios. The first will be the option to evict transactions to disk rather than holding them in memory. This will allow transactions to be kept for longer if that’s what the miner wants to do. The second option is more flexible eviction policies where if a transaction doesn’t meet their transaction acceptance (mining) fee, the miner can accept it and hold in mempool for a short period (perhaps one day) before evicting it.

So why did miners intervene?

Given that the BSV Node software was handling things just fine, you may be wondering why didn’t the miners just leave the mempool buildup as is? Eventually, Mempool would have mined those transactions because it was accepting 0.25 sat/byte transactions. One reason a miner (TAAL) decided to clear the mempool was due to some BSV application services reporting problems. I can speculate that because we had the attention of many BTC miners at the time due to the BTC block reward halving, it was probably a good time to demonstrate that a miner COULD.

Also I think there is a recognition among miners that the process of separating the relay fee from the transaction acceptance (mining) fee, and adjusting user behaviour is one that inevitably comes with some growing pains. And until users of Bitcoin (especially producers of high transaction volumes) adjust to new ways of interacting with the network that are more in line with Satoshi’s vision, a few hiccups will happen and miners don’t want services on the network to suffer needless outages. As the ecosystem professionalizes further, I’d expect miners to take a harder stance along the lines of “if you’re maintaining a mempool, you need to make sure you can handle it because we can and it isn’t our job to look after you”.

Blogs

Our blog articles cover the latest in blockchain technology.
Solutions, trends, and news.

post-image

22 Jun 2022

Miner Advisory June 2022 – Transaction Fee Configuration

Bitcoin was designed to distribute coins to miners through the block subsidy. The subsidy halves every 210,000 blocks.

post-image

12 May 2021

On the governance of Bitcoin limits

The BSV blockchain team recently received this request on the BSV github issue tracker.

post-image

24 Dec 2020

A (belated) Christmas present from BSV blockchain team.

It’s taken us a bit longer than we hoped, but the beta version of BSV 1.0.7 (Dynastic) will be released in early January (hence the “belated” part of this article’s title). The Dynastic release is the result of almost a year of work to untangle a particularly nasty mess we inherited from Bitcoin Core. As […]

post-image

09 Oct 2020

BSV Blockchain Capacity Report

Transaction volume on the BSV blockchain approximately doubled for a few days last week – due to “multi source stamina testing”

post-image

30 Sep 2020

Realising (Finally) Satoshi’s Peer to Peer Vision for Bitcoin

When Bitcoin V0.1.0 was released in 2009, it contained a proof of concept feature that is perhaps the most overlooked in its history.

post-image

16 Sep 2020

Beyond micropayments: The rise of nano-services

The Rails release of BSV (v1.0.5) introduces several game changing features that have long been in the making. This release is code-named RAILS because its major features are aimed to open new and innovative payment cases using the BSV blockchain protocol and ledger, and empower BSV blockchain companies to build more infrastructure for payments – […]

post-image

04 Feb 2020

Genesis activation successful

At 1:28am GMT block 620,537 was mined and BSV nodes of v1.0.0 or greater began accepting transactions under the restored Genesis protocol.  At 1:55am at block height 620,539 the first block containing a Genesis-only transaction was mined, locking in the change. Old node software did not accept this block and forked off onto a legacy […]

post-image

10 Jan 2020

Genesis specification finalized

The draft Genesis specification was published in December 2019 in order to elicit feedback from BSV miners and other ecosystem participants.

post-image

23 Dec 2019

BSV blockchain – Blocking potential P2SH replay attack after Genesis hard fork

The BSV Node team notes the recent public disclosure on Reddit by Gregory Maxwell (a.k.a. /u/nullc) from the Bitcoin Core (BTC) of a potential replay attack vector on BSV.

post-image

06 Dec 2019

BSV blockchain Genesis hard fork implementation plan – in advance of February 4, 2020

On February 4, 2020, the BSV blockchain network will undergo its “Genesis” hard forking upgrade.  This hard fork represents a significant milestone in BSV’s journey to restore the original Bitcoin protocol.  To allow the BSV blockchain ecosystem adequate time to prepare for the hard fork, the BSV Node team would like to communicate the rollout […]

post-image

24 Nov 2019

On the future of Bitcoin transaction fees

Cheaper transaction fees, fiat stable pricing and a highly flexible framework for dynamic fee rate discovery are all on the horizon for BSV blockchain.

post-image

06 Aug 2019

The BSV blockchain & False Reports of a “Three-way Fork”

In recent days there have been a couple of articles which incorrectly suggest that the BSV Blockchain has suffered from a “three-way fork” over the last few weeks. These articles seem to stem from the same source, a tweet from BitMEX Research. Here are the facts.  The BSV Blockchain had a planned hard-fork upgrade on […]

post-image

13 Jul 2019

Quasar upgrade 24th July recommendations – roadmap to Genesis part 2

This upgrade has very limited scope with just changing the block size hard cap but it warrants some further explanation. It was first detailed in part one of this post series.

post-image

22 May 2019

First gigabyte+ blocks mined in STN stress test

Background On May 21st 2019 the BSV blockchain Scaling Test Network (STN) saw its maximum mined block size record broken eight times in rapid succession. In the latest release of BSV Node (0.2.0) one of the standout changes was lifting the hard cap block size limit from 128MB to 10GB. The reason for setting the […]

post-image

29 Apr 2019

BSV blockchain [BSV] Scaling Test Network is open for business

The BSV Scaling Test Network (STN) is an initiative of the BSV blockchain Node project, owned by Bitcoin Association and operated by nChain (with funding by CoinGeek) to scale and test Bitcoin beyond gigabyte and eventually to terabyte blocks. In February 2019, the BSV blockchain team publicly released client software with full support for the […]

post-image

11 Mar 2019

BSV Scaling Test Network Sustains 128MB Blocks for 36 Hours

A new milestone was achieved recently on the Bitcoin SV Scaling Test Network with continuous 128MB blocks over a period of 36 hours. The test ran from about midday on the 7th of March through to midnight on the 8th. 246 blocks were produced during this period and each one was 128MB large. The blocks […]

post-image

01 Mar 2019

Denial of Service Vulnerabilities Repaired in BSV version 0.1.1

As part of its commitment to professionalise the Bitcoin development process.

post-image

24 Jan 2019

BSV blockchain (BSV) Weekly – Jan 23, 2019

The BSV blockchain ecosystem has benefited from significant developments in the past week – with six (count them six!) new releases just from Bitcoin developer unwriter. That alone deserves a special Satoshi Shout-Out below! Along with increased scaling achievements, the BSV blockchain ecosystem continues to grow at a rapid pace. Read below for a summary of […]

post-image

24 Jan 2019

Warming Up the Scaling Test Network for BSV blockchain – 24 hours of Sustained 64 MB Blocks

The BSV blockchain network is committed to massive on-chain scaling, and nChain’s team is progressing with technical work needed to achieve this Satoshi Vision. In fact, our recent tests have demonstrated the BSV blockchain network’s capacity to handle sustained 64 MB blocks over a full 24 hour period, and we are already moving towards showing […]

post-image

16 Jan 2019

Bitcoin SV (BSV) Weekly – Jan 16, 2019

Along with scaling capacities, the Bitcoin SV ecosystem continues to grow at a rapid pace.  In our weekly post, we provide a summary of some of the past week’s developments from around the world. Today’s special “Satoshi Shout-Out” goes out to hivr; the social network built around a BSV wallet is sponsoring “one of the […]

post-image

04 Jan 2019

Bitcoin SV (BSV) Unveils Logo for Rebirth of Original Bitcoin

The bComm Association unveils an updated logo for Bitcoin SV (ticker: BSV), chosen from public voting after three Twitter polls in a new form of decentralized marketing.  The BSV logo is revealed on the 10th anniversary of the Bitcoin genesis block, to mark Bitcoin SV as rebirth of the original Bitcoin.  A modernized update of […]

post-image

21 Dec 2018

BSV blockchain (BSV) Weekly – Dec 19, 2018

BSV blockchain (BSV) is designed to preserve Bitcoin’s fundamental design and fulfil the Satoshi Vision .  BSV provides the enterprise-friendly blockchain – with a stable, scalable, secure, and regulation-friendly platform for businesses to confidently build upon. In just one month since it emerged, the BSV ecosystem has quickly grown.  Numerous Bitcoin applications and services have […]

post-image

04 Dec 2018

New, Exciting BSV blockchain Projects Announced During CoinGeek Week

The highly anticipated CoinGeek Week conference has drawn to a close and to say that it was a huge success is putting it mildly.

post-image

20 Nov 2018

BSV blockchain Mines 64 MB Block on Bitcoin Cash, Largest Ever on a Public Blockchain

20 November 2018 – BSV blockchain, the new full node implementation for Bitcoin Cash (BCH) mined a 64MB block, the world’s largest ever on a public blockchain. The huge block was mined by CoinGeek Mining, during an on-going Professional Stress Test of the BCH network. Just one hour before, a 38MB block was mined, also […]

post-image

15 Nov 2018

Bitcoin Cash (BCH) Protocol Upgrade: Coin Splitting Advisory

The upcoming Bitcoin Cash (BCH) hard fork on November 15 will likely cause two branches of the blockchain to exist, at least temporarily. Some actors believe both branches will persist, effectively creating two “coins.” Other observers believe that one chain will die off with the alternate “coin” simply becoming unusable, and leaving a single “coin” […]

post-image

14 Nov 2018

Bitcoin SV Notice to Cryptocurrency Exchanges, Wallet & Service Providers: Advisory about BCH Protocol Upgrade and Coin Splitting

We recently received inquiries from several cryptocurrency exchanges about the upcoming November 15 Bitcoin Cash (BCH) protocol upgrade and the role played by Bitcoin SV. There appears to be confusion by some exchanges and other cryptocurrency service providers about Bitcoin SV, perhaps caused by misleading statements made by supporters of other competing BCH implementations (such […]

post-image

08 Nov 2018

Bitcoin Cash (Bch) November 15, 2018 Protocol Upgrade – Notice to Cryptocurrency Exchanges & Bitcoin Cash Wallet Operators

On November 15, 2018, the Bitcoin Cash (BCH) network will undergo a scheduled protocol upgrade. This protocol upgrade has been different to previous upgrades due to differences in opinion as how best to evolve the Bitcoin Cash network to continue to meet the demands of enterprises and consumers who support Bitcoin Cash. We have developed […]

post-image

16 Aug 2018

BSV Full Node Implementation Launched to Fully Restore Original Bitcoin Protocol

nChain, the global leader in research and development of blockchain technologies, announces the creation of BSV, a new full node implementation of the original Bitcoin protocol now restored in the form of Bitcoin Cash (BCH).

Ready to add blockchain solutions to your business or government agency?

Send us a message and let us know about your needs. Please contact

Join Our Community

Stay updated with the BSV Blockchain's latest news and events.
Subscribe to our weekly newsletter.