A timelapse and lessons learned from the stresstest.
On the 1st of september, 12:00 UTC the bitcoin cash community had a scheduled stresstest which you can read more about at https://stresstestbitcoin.cash/ .
In preparation for this event I've installed every single android wallet listed on bitcoincash.org as well as recommendations from other people on memo.cash and twitter. I also tried to copy the scale.cash stress test website but no matter how I tried, my browser and my trusted wget failed to get enough assets to reproduce it; and for a good reason that I learned later. I made funds available and seeded my wallets, as well as tested the scale.cash script to learn a bit more on how it works.
While waiting for the stresstest to start, I noticed some people were a bit trigger-happy: https://www.reddit.com/r/btc/comments/9bsqyv/the_stress_test_is_live/
This early pre-testing revelead that there were still pools that softcapped their blocksizes: https://www.reddit.com/r/btc/comments/9btokn/stress_test_is_gearing_up_already_but_are/
Then all of a sudden I come across a reddit thread in which someone asks full node operators to reconfigure their nodes to log performance related data, something that I think would really have helped if the initiative would've been available much much earlier: https://www.reddit.com/r/btc/comments/9byuy5/please_set_up_your_full_node_servers_to_log/
I quickly reconfigured one of my full nodes, but left the others as-is.
Out of sheer luck, CoinGeek manages to mine no less than 7 blocks in a row, which baffled some and lead to some odd discussions: https://www.reddit.com/r/btc/comments/9c22li/so_coingeek_just_mined_7_blocks_in_a_row/
While the stress test started fine and was raising peoples spirits across the globe, some parts of the ecosystem was showing signs of breakage. Not only did the transaction visualizers break down (https://www.reddit.com/r/btc/comments/9c2mcx/the_stress_test_broke_all_visualizers/), but various Insight servers such as the one powering the copay wallet had intermittent service (https://www.reddit.com/r/btc/comments/9c2xcw/copay_wallet_issue_stress_test_bitcore_related/), the scale.cash stress test script partially broke down for some (https://www.reddit.com/r/btc/comments/9c32ef/im_getting_a_lot_of_transaction_not_found_issues/) and memo.cash users found themselves unable to propagate/broadcast their actions (https://www.reddit.com/r/btc/comments/9c35n9/memo_troubles_everyone_or_just_me/).
Despite all these issues, the stress test pushed through and from some vantage points the mempool appears to have crossed the 32mb blocksize limit opening up for the possibility of a pool mining a full 32mb block (https://www.reddit.com/r/btc/comments/9c35jg/every_bus_is_full/).
Some people started inquiring as to why it took so long to fill the mempool and dug down and looked for various data, such as this user trying to pin down the propagation issue (https://www.reddit.com/r/btc/comments/9c8tv2/either_atmp_or_scalecash_is_bottlenecking_the/) and myself misinterpreting the numbers from my own full node here (https://www.reddit.com/r/btc/comments/9c3wts/graphene_holds_up_better_than_xthin_during/).
Meanwhile, people like Jamesson Lopp seemed amused to look at the ongoing mayhem (https://twitter.com/lopp/status/1035898602906902530) and Vin Armani expressed his dismay over the lack of coordination across the ecosystem (https://twitter.com/vinarmani/status/1036019969069395973?s=19) and in particulary over the attitudes that doing real damage to existing business without a solid plan for how to benefit from it other than "someone else will do it" (https://twitter.com/vinarmani/status/1024987161593094144).
Even the organizers of the stress test event seems to have had issues with performance, as people eventually commented on the fact that the funds they had received in order to stress the network had barely been used at all (https://www.reddit.com/r/btc/comments/9c9hqo/bch_sent_to_httpsstresstestbitcoincash_has_barely/).
With the large quantity of failed script runs people naturally started looking for ways to recover their funds from the stress test tools, and I learned that backup seeds are not quite all you need to make a backup, you also need the derivation path (https://www.reddit.com/r/btc/comments/9c8laq/scalecash_wheres_my_money/) which is ridicilously non-userfriendly on the wallet side. We need better backup systems, the old WIF keys did not have this issue and restoring from seeds is a recurring problem for many users.
For those that like charity, and EatBCH (https://twitter.com/eatBCH) in particular, the stresstest surely provided as the left-over funds from scale.cash script runs ended up as donations to eatBCH. It also turns out that some people, me included, was too engaged to read the fine prints and sent more than the max of ~$7 to scale.cash resulting in the excess being donated as well (https://www.reddit.com/r/btc/comments/9c67ck/eatbchs_balance_is_at_3_billion_bolivar_after/e599ezw/?context=1).
Some noticed that miners were not making the largest blocks they could, and accusations started coming against miners that made remarkably small blocks despite users seeing a well-populated mempool (https://www.reddit.com/r/btc/comments/9c975v/since_the_start_of_the_stress_test_antpool_has/).
To top off the stress test, BMG mined just after the end of the test, the largest block thus far of 21MB (https://blockchair.com/bitcoin-cash/block/546104).
So with the stress test behind us, what did we really learn?
A lot, actually. We learned that many services has never been subject to this level of stress before, and many of them updated and fixed issues as they went along. We learned that block propagation isn't a problem for large blocks, even when mempools diverge significantly. We learned that stress testing the stress testing tools is important.
I'm positive and confident that despite the breakage and issues so far, many people will have done work behind the scenes to better their services and that we will achieve a much better result next year.
What about the wallet test, you say? That will come in another article soon enough.
2 of 2 reviewers say it's worth paying for
0 of 2 reviewers say it's not worth paying for