This week in Bitcoin Core
Bitcoin Core contributor kevkevin covers some of the latest updates...
Hello 👋 folks, I'm kevkevin. I'm an open-source developer and reporter for Insider Edition. Last week, I reviewed several pull requests from the Bitcoin Core repo. Here’s what I found notable.
Merged PR’s
Every week, several changes are officially added to Bitcoin Core. This week, 8 changes were merged. Here are some I thought were interesting from this week.
index: Fix coinstats overflow by fjahr
This was a fix to an overflow issue when switching the tracked values that were in danger of overflowing from CAmount to arith_uint256. This was brought up in this issue, which showed that m_total_prevout_spent_amount, m_total_new_outputs_ex_coinbase_amount, and m_total_coinbase_amount were all subject to overflowing an int64_t (CAmount)
net: Prevent node from binding to the same CService by w0xlt
On startup, a user can specify where they would like their Bitcoind to bind their address to. This PR tackles the scenario where a user adds multiple
-bind parameters, then leading to a misleading message and a shutdown that is not expected.
This PR adds a repeated bind option, which then takes no effect if the user uses it.Release: 30.0 translations update by hebasto
Some translation issues needed to be addressed before the v30 release, and this PR makes those changes. From previous discussions, it seems that updating the Transifex translations is more complicated than just merging a P,R so it is worth following up on this.
Open PR’s
There are always changes being updated and reviewed in real-time. Here are some notable PR’s that are still up and looking for reviews.
wallet: Identify transactions spending 0-value outputs, and add tests for anchor outputs in a wallet by achow101
This change is labeled as “Needs backport (20.x)”
One of the ways that the wallet would determine if a transaction was sent from the wallet was by checking if the total amount being spent by a transaction from outputs known to the wallet was greater than 0. This has worked fine until recently since there was no reason for 0-value outputs to be created. However, with ephemeral dust and P2A, it is possible to create standard 0-value outputs, and the wallet was not correctly identifying the spends of such outputs. This PR updates IsFromMe to only check whether the wallet knows any of the inputs, rather than checking the debit amount of a transaction.
Additionally, a new functional test is added to test for this case, as well as a few other anchor output related scenarios. This also revealed a bug in sendall which would cause an assertion error when trying to spend all of the outputs in a wallet that has anchor outputs
IRC meeting notes
Every week on Thursday, there is an IRC meeting. Here are some short notes from that meeting.
Kernel WG Update (TheCharlatan)
TheCharlatan: aj left some interesting comments in #32317. The conversation there binds into the larger discussion of how many changes to the kernel motivated by external users the project can stomach. no concrete outcome from that yet, but it is probably a theme that will be repeated a few times still.
ryanofsky: no informed opinion but my initial thought on 32317 was it make code nicer by splitting up a big function.
TheCharlatan: other than that, others in the workgroup have been adapting their respective language bindings to the latest proposed C header api.
Benchmarking WG Update (josie, l0rinc)
l0rinc: It's not about benchmarking, but the v3 release. People are scared for V30 and I think we could make a few changes that might help in calming the spirits: people complain the new versions have become slower, one of the reasons is signature verification is enabled sooner with older versions. Some logging was already added, but there are leftover corner cases covered here: #33336, another reason for the slowdowns seems to be that the recently unbounded dbcache values are set too high and the node is swapping heavily - added a warning log for that case in this beautiful pr number #33333, lastly a lot of people fear that their cloud node will get banned because of the block content - older nodes don't have block obfuscation enabled, added #33324
Cluster Mempool WG Update (sdaftuar, sipa)
sipa: good progress, i've changed the main PR to review to sdaftuar's #28676, there are a number of txgraph PRs, but they're not on the critical path, i think sdaftuar's is working on addressing review comments, that's it from me
QML GUI WG Update (jarolrod, johnny9dev)
johnny9dev: Not much at the moment. Working on adding QML testing on top of the unit test I added to get coverage on the views.
MuSig2 WG Update (achow101)
pr to review is still #29675, which has been getting some review that i've addressed
v30.0rc1
(there was quite a bit of converstaion that you can read about in the full meeting in minutes
For the full log, check the meeting in minutes
Releases
Thank you for reading. Be sure to tune in again next week for your updates on Bitcoin Core!