Testing Bitcoin Core 26.0 Release Candidates (tests)

Host: m3dwards


  • Major versions of Bitcoin Core are released every 6-8 months. See the Life Cycle documentation for full details.
  • When all of the PRs for a release have been merged, Release Candidate 1 (rc1) is tagged. The rc is then tested. If any issues are found, fixes are merged into the branch and a new rc is tagged. This continues until no major issues are found in an rc, and that rc is then considered to be the final release version.
  • To ensure that users don’t experience issues with the new software, it’s essential that the rcs are thoroughly tested. This special review club meeting is for people who want to help with that vital review process.

  • This Bitcoin Core Release Candidate Testing Guide provides guidance for testing the release candidate.

    • It is recommended to go through the “Preparation” steps ahead of the meeting, especially if you want to compile from source. Verify and confirm the successful installation of v26rc2.

    • For some of the tests, you might want to have the signet chain fully synced beforehand, so that you can just copy the signet directory into /tmp/26-rc-test/ every time you run a test in a fresh environment.

  • The guide is just to get you started on testing, so feel free to read the Release Notes and bring ideas of other things you’d like to test!

Meeting Log

  117:00 <stickies-v> #startmeeting
  217:00 <stickies-v> hi everyone!
  317:00 <maxedw> hi
  417:01 <lightlike> hi
  517:02 <stickies-v> anyone here for the first time? even if you're just lurking, feel free to say hi!
  617:04 <stickies-v> not a massive turn out, it seems
  717:05 <sipa> hi, lurking
  817:05 <d33r_gee> hello
  917:05 <stickies-v> ah, more people, yay!
 1017:06 <stickies-v> we've got a special edition of review club planned for this week, ahead of the (hopefully soon) final release of Bitcoin Core v26
 1117:07 <stickies-v> maxedw has prepared a fantastic guide to help test (some of) the new features of this new release: https://bitcoincore.reviews/v26-rc-testing
 1217:07 <stickies-v> the purpose of this meeting really is just to go through it together
 1317:08 <stickies-v> given that we're a bit of a smaller group, just polling if everyone's still keen to do that in this meeting, or if people would prefer to just go through it on their own pace?
 1417:08 <maxedw> thank you stickies-v
 1517:08 <maxedw> hello everyone, thanks for joining us for today's review club
 1617:08 <maxedw> we will be taking a look and a run through the Bitcoin Core 26.0 testing guide
 1717:08 <maxedw> link to the guide: https://github.com/bitcoin-core/bitcoin-devwiki/wiki/26.0-Release-Candidate-Testing-Guide
 1817:09 <maxedw> what operating systems are people running?
 1917:09 <d33r_gee> WSL Ubuntu 22.04
 2017:09 <lightlike> I will do some testing later this week at my own pace, so I'd be just lurking.
 2117:09 <maxedw> no problem lightlike
 2217:10 <maxedw> d33r_gee: great stuff
 2317:10 <stickies-v> i'm on macos 13.4, m1 chip
 2417:10 <maxedw> great stickies-v, there is a macos only test that you will be able to help out on
 2517:10 <maxedw> today we will cover: getprioritisedtransactions rpc, mportmempool rpc, V2 Transport - BIP 324, TapMiniscript and Ancestor Aware Funding
 2617:11 <maxedw> I will leave the last test, Outbound connection management for you to do in your own time after this meeting
 2717:11 <maxedw> Did anyone manage to run through the preparation steps? No problem if not.
 2817:11 <d33r_gee> yep
 2917:12 <maxedw> fantastic, we won't need to spend much time getting prepped then
 3017:13 <stickies-v> same here!
 3117:13 <stickies-v> running compiled binaries
 3217:13 <maxedw> let's start the getprioritisedtransactions rpc test together
 3317:13 <stickies-v> well, self compiled
 3417:13 <maxedw> this should be a relatively easy test to start us off
 3517:15 <stickies-v> test works fine for me!
 3617:16 <d33r_gee> test went through no problems
 3717:16 <stickies-v> well i did find something interesting
 3817:16 <stickies-v> if i run the prioritisetransaction rpc twice on the same tx, the feerates compound
 3917:17 <stickies-v> right, okay, that is in line with the documentation of the rpc: "The fee value (in satoshis) to add (or subtract, if negative)"
 4017:18 <maxedw> great to hear, it also worked on my machine
 4117:18 <maxedw> interesting stickies-v
 4217:18 <stickies-v> https://github.com/bitcoin/bitcoin/blob/0aa014d5a34ed6b020b687ec924f8a17351f5aeb/src/rpc/mining.cpp#L455
 4317:18 <maxedw> if everyone is ready, let's move onto the second test
 4417:18 <d33r_gee> ready
 4517:19 <maxedw> importmempool
 4617:19 <maxedw> for this test, we can do it on mainnet (preferred) or on regtest.
 4717:19 <maxedw> does anyone have a mainnet node synced that they can test this RPC with?
 4817:21 <stickies-v> yup
 4917:21 <maxedw> great
 5017:22 <d33r_gee> yup got one that was synced using an utxo snapshot
 5117:22 <maxedw> that's excellent
 5217:22 <maxedw> nice to see mainnet being used where possible
 5317:22 <maxedw> let's have a go at this one
 5417:24 <maxedw> you may need to pay attention to the environment variables $DATA_DIR to make sure you have it pointing to a bitcoind data directory that's synced
 5517:25 <d33r_gee> when I first ran  importmempool got this error:
 5617:25 <d33r_gee> error code: -10
 5717:25 <d33r_gee> error message:
 5817:25 <d33r_gee> Can only import the mempool after the block download and sync is done.
 5917:25 <d33r_gee> However waited a bit then reran and it worked
 6017:27 <maxedw> hmm, d33r_gee. I might have expected with `connect=0` it never to sync if it thought it was out of sync
 6117:27 <maxedw> but I think that's still a successful test
 6217:29 <d33r_gee> maxedw ah great I test it some more, do you think it may be because the chainstate came from a snapshot?
 6317:29 <maxedw> I'm not sure tbh
 6417:29 <maxedw> wouldn't have thought so
 6517:29 <d33r_gee> maxedw np
 6617:30 <stickies-v> d33r_gee: what do you get when you run `bcli getblockcount`?
 6717:31 <maxedw> I think I might add a check into the test to make sure we are fully synced before we stop bitcoind
 6817:32 <d33r_gee> maxedw great idea
 6917:32 <stickies-v> oh wait you're saying it worked eventually
 7017:32 <maxedw> at the moment mine says 816730
 7117:33 <d33r_gee> stickies-v yet waiting like 2min then reran and it worke
 7217:33 <stickies-v> my importmempool is still running, seems to take quite a while for a big mempool
 7317:33 <maxedw> but mine is stuck from my previous test with connect=0
 7417:34 <maxedw> stickies-v: for me it didn't take long
 7517:34 <maxedw> did it take a while for you d33r_gee ?
 7617:35 <d33r_gee> maxedw yep took longer than the regtest one for sure
 7717:35 <stickies-v> how big was yours maxedw? I've got ("bytes": 1716322) and I'm on a pretty old machine
 7817:35 <maxedw> "bytes": 8098791
 7917:37 <stickies-v> interesting, looks like it's not really working for me then
 8017:39 <maxedw> let's pick this up after the call stickies-v
 8117:39 <maxedw> I just ran mine again and it completed in about 10 seconds
 8217:40 <stickies-v> according to `top` it seems to be doing something, running with -debug=rpc and -debug=mempool but it doesn't really give me much, there's no intermediate logging
 8317:40 <stickies-v> i'll just let it run and see what happens
 8417:40 <maxedw> great idea
 8517:40 <maxedw> this is exactly why we run these tests!
 8617:41 <maxedw> let's move on to the next test
 8717:41 <stickies-v> oh wait
 8817:41 <stickies-v> i have an interesting idea to test
 8917:41 <stickies-v> on mainnet
 9017:41 <maxedw> go ahead stickies-v
 9117:42 <stickies-v> what happens when you run importmempool, abort, run again, in very short sequence?
 9217:42 <maxedw> fyi, after my node synced my mempool size was similar to yours
 9317:42 <stickies-v> (abort the cli request w ctr+c, not kill the daemon)
 9417:42 <maxedw> great question
 9517:43 <maxedw> I can give it a go. d33r_gee are you still in a position to try?
 9617:43 <d33r_gee> maxedw yep
 9717:43 <stickies-v> my import finally succeeded: "Imported mempool transactions from disk: 40705 succeeded, 0 failed, 0 expired, 0 already there, 0 waiting for initial broadcast"
 9817:46 <d33r_gee> running importmempool right now
 9917:46 <maxedw> I reran the test with ctrl+c and then imported again and it worked for me
10017:46 <maxedw> appears to anyway
10117:46 <d33r_gee> it worked
10217:46 <d33r_gee> "size": 48876
10317:47 <maxedw> Imported mempool transactions from disk: 0 succeeded, 0 failed, 0 expired, 2959 already there, 0 waiting for initial broadcast
10417:47 <maxedw> that is my second log message
10517:47 <maxedw> so ctrl+c didn't appear to stop the import for me
10617:47 <maxedw> I was quite quick at hitting it but maybe still too slow
10717:47 <maxedw> or perhaps the command is running in another thread that doesn't exit
10817:48 <stickies-v> no ctrl+c on the cli doesn't affect the daemon, and we don't recognize remote client disconnects
10917:48 <stickies-v> so bitcoind keeps processing all requests even if the client's no longer listening
11017:48 <stickies-v> but i was wondering if running simultaneous importmempool tasks would cause issues
11117:48 <stickies-v> great, looks like it doesn't
11217:49 <maxedw> I was perhaps not quick enough for it to be simultaneous
11317:49 <maxedw> I will have another go after this meeting
11417:49 <maxedw> shall we move onto the next test?
11517:49 <maxedw> V2 transport
11617:50 <d33r_gee> sounds good
11717:50 <maxedw> which again could be done on different networks but for this guide we are using signet
11817:51 <maxedw> I believe bitcoin.achow101.com should support v2 protocol on both signet and mainnet so please feel free to use whichever network you prefer
11917:52 <maxedw> I just tried bitcoin.achow101.com on mainnet and got: Error: v2transport requested but not enabled (see -v2transport)
12017:53 <maxedw> so I think if you plan to use that node, it's signet only at the moment
12117:53 <stickies-v> mmm i think that's an error on your side maxedw
12217:53 <maxedw> you are right
12317:54 <maxedw> I skipped a step
12417:54 <maxedw> (didn't enable it for myself)
12517:58 <maxedw> I now have: New manual v2 peer connected: version: 70016, blocks=816906, peer=18
12617:59 <stickies-v> hmmm i wasn't able to connect to achow but i think he just wasn't accepting new inbounds
12717:59 <stickies-v> will investigate more
12817:59 <maxedw> the peer isn't listed in my peerinfo either
12917:59 <maxedw> but I had that message in the logs
13017:59 <maxedw> looks like we are out of time to run through the last couple of tests
13118:00 <maxedw> #endmeeting