Antoine Poinsot on Bitcoin Core's Priorities

I mostly made this topic so I could reply here rather than writing up a blog entry of my own. :slight_smile: So…

A few thoughts:

  • I’m not convinced multiprocess is the right way to split things out of core in any meaningful way – as far as I understand it, multiprocess is intended to leave its affected components fairly tightly coupled, so changes to core or the gui or the wallet would likely affect the multiprocess api, and be annoying to coordinate/sync across repos. I think multiprocess/capnproto makes more sense for process separation for security reasons, than for development separation for prioritisation reasons, but could be convinced otherwise.
  • Having all our wallet features be available via a library (or command-line tool, like bitcoin-tx or bitcoin-wallet) that you can use without having to fire up a bitcoind to get at the RPC interface would be a win, I think, independent of anything else.
  • One approach I like is ketan’s NodeBox which splits the bitcoin software into two parts: a node, index and blockchain explorer that don’t retain any personally identifiable information; and the wallet software that does. That puts core, electrs, and mempool.space as the “node”, and sparrow installed on a different device as the wallet, which is a somewhat similar split up to what Antoine considers above. One big difference is the inclusion of electrs for indexing transactions, which is useful both for the mempool.space explorer, and to allow a wallet that’s offline most of the time to quickly sync. BDK also seems to assume having access to indexes like that is a good idea. That’s something core has traditionally resisted (last attempt was PR#14053 I think), and I think that resistance perhaps makes it a bit harder to do a nice UI, especially if you want to separate your PII away from your node software, but still want very quick syncs when you open your wallet.
  • Personally, I like the idea that bitcoin core aims to provide enough software to make Bitcoin usable; so a GUI and a working wallet are an important part of that. How that’s architected isn’t so important to me, and of course, bitcoin core probably doesn’t quite achieve that today anyway, in that these days it’s missing necessary components on the mining side of things. Having wallet functionality also seems useful to have in doing functional tests, and experimenting with bitcoin more broadly (eg, messing around on signet).
1 Like