Stream Plans 2021-08-08

I haven’t done a stream plan for a while I know, apologies for that. This is partly a stream plan, partly an update on where the two releases.

The plan for tonight will be continuing with 1.21. We’ve got a bunch of tests that break when we introduce Dogecoin fee logic, either because they’re configured to use numbers around 1,000 times smaller than Dogecoin for fees, or because they literally test the fee market code that is in Bitcoin Core and we disable. As a quick recap on Dogecoin fees, there’s four main differences between Bitcoin default fees and fees in Dogecoin Core 1.14.3 and previous versions:

  • All transaction sizes are rounded up to the next kilobyte before calculating fee, which is why most transactions have an exactly 1 DOGE fee.
  • The minimum relay fee per transaction is 1 DOGE/kB, after the rounding of the transaction size.
  • All transactions use this minimum as their fee rate, there is no fee market.
  • Any outputs below the dust threshold (1 DOGE) incur an additional 1 DOGE fee as a penalty to discourage dust.

There is a much more detailed version of this in Patrick’s proposal for fees in 1.14.4 and above.

To move 1.21 forward now I’m introducing 1.14.3-like transaction fees, and will then update when 1.14.4 has been released and adopted. However, when I change these fee values, it breaks a large number of tests, and while in most cases this will be simply a matter of updating the values in the tests to match the new fee values, in a few it can indicate a genuine break. For example regular viewers will have seen me identify a constant in the code (maximum fee allowed) which needed to be updated, and I had missed in the initial update.

This brings us on to 1.14.4; there’s two fee pieces to go into 1.14.4:

  • Automatically reducing the minimum fee when setting -paytxfee on 1.14.4, to make it easier to change the fee paid. Michi has raised a pull request for this already.
  • The actual fee reduction code. The infrastructure for this went in earlier, but the value changes aren’t in yet.

After that, there’s at least the updated release notes to write, which I’m hoping to have time for this week. There’s been some discussion of updating dependency versions for 1.14.4, it’s unclear if those will go in or be pushed back to 1.14.5.

If you are comfortable building this code yourself, you can download my latest versions at:

Again both of these are just my work in progress, they’re purely for those comfortable experimenting with code.

I’m going to be doing work on both of these tonight, although I’m hoping it complete the 1.14 work before stream and can focus on 1.21 live. On that note, better publish this soon. See you all tonight at twitch.tv/rnicoll