This has been a rush to the finish line to have everything in place, but I think it’s all good to go, or will be by the time I finish publishing this post.
AuxPoW support for Dogecoin Core 1.21 is drafted and works, but the code needs reviewing carefully (there’s $41bn resting on us not screwing this up, remember). The initial changeset was 3,000 lines modified, which is basically infeasible to review, so with the help of others we’ve been breaking that down into smaller pieces this week. So the first task this stream will be putting all the pieces together on my local machine to re-test it, and verify it passes all the tests.
The other thing I want to do this stream is introduce PSBT, or Partially Signed Bitcoin Transactions, which yes we probably need to figure a better acryonym for, for Dogecoin. These solve a problem with multisignature addresses, of how to have multiple people sign a transaction independently, and then compose the signatures together to make a full valid transaction. PSBT introduces a format for specifying parts of a transaction, in a structured format that lets the client do intelligent things like compose them together.
As an example, the Dogecoin dev fund is a multisignature address, and historically we’ve used custom Python scripts to do the same job, but they’re time consuming to maintain and fiddly to use. PSBT should let us replace those scripts with something much lighter, which is easier to maintain, and more importantly standardised. Long term I hope we’ll see user interfaces around PSBT operations, to make this even simpler to use.
I’ve been experimenting with PSBT earlier this week, and shaken out a few bugs in 1.21 while doing so. By default 1.21 was creating SegWit addresses, which 1.14 doesn’t support, so we couldn’t use PSBT with 1.14 nodes. I’ve finished and merged code to switch the default address type, and want to re-run my experiments. I’m broadly following the guide at https://bitcoincoredocs.com/psbt.html, but with a 2-of-2 address to start with.
I’ll be live on https://www.twitch.tv/rnicoll at 7pm UK time, and as always there will be a video on demand available after.