
A Herculean Effort For Bitcoin Core Development
A topic of conversation that pops up in this rag from time to time is the Bitcoin Core development process and how arduous it can be for developers attempting to navigate its waters. Last week, a PR that Russell Yanofsky from Chaincode Labs has been working on for 19 months (our friend David accidentally added a year to his calculation of 31 months) was finally merged into Bitcoin Core after being thrown through the gauntlet of comments and recommended tweaks. A huge step forward for Bitcoin on its quest to become more modular was just enabled by a Herculean effort from one man and a nebulous team of reviewers from around the globe. We all owe a great debt of gratitude to Russell for the immense amount of grueling grunt work he has put in over the last year and a half to begin separating the wallet from the node in Bitcoin Core so that it is easier for engineers to work on certain parts of the Bitcoin Core software.
Russell Yanofsky belongs in the Bitcoin Hall of Legends. I'm looking at this week's merge of https://t.co/fjaRtSqoUu
— David A. Harding (@hrdng) March 22, 2019
- 31 months from open to merge
- updated or rebased 152 times
- created almost a dozen spin-off PRs
- almost 200 comments by all reviewers
That's commitment.
Alternatively...
— Jeremy Rubin (@JeremyRubin) March 22, 2019
How can we improve @bitcoincoreorg's process so that talented engineers like ryanofsky don't spend their life in rebase-hell. https://t.co/PGsOKpLqxw
This merge was met with much fanfare on Twitter as people have been anticipating this merge for a while, but it also raised an interesting discussion about the Bitcoin Core process and the lengths to which devs have to go to accomplish tasks that would seem trivial within other software projects.
I view it as process failure, given the number of talented engineers who are capable of performing this type of work and review, but don't because of burnout and frustration with process.
— Jeremy Rubin (@JeremyRubin) March 22, 2019
Can give specific examples by DM
Right now the scope of the project is too large and insufficiently modular, makes it very hard to scale the process.
— Eric Lombrozo (@eric_lombrozo) March 22, 2019
But don't blame the Core devs...Satoshi might have been very good at some things, but software architecture was not really one of them.
I'm not particularly blaming any of the devs, I just think that the project itself is a struggle not because of the consistency and security requirements alone, but also bc of poor process.
— Jeremy Rubin (@JeremyRubin) March 22, 2019
The alternative is to claim that Bitcoin has particularly good process, or that it's avg.
It has long been my contention that Bitcoin is a unique opportunity that has been presented to humanity. A flash in the pan that may be impossible to replicate now that there are so many eyes on the world of cryptocurrencies. Because of this, we find ourselves in the position of having to "work with what we got", and that means fixing a lot of the poor software design decisions that Satoshi made when he first released Bitcoin into the wild. As you can see, this frustrates people like our friend Jeremy who believe it is a shame that very talented devs are forced to do tedious grunt work and run their code through a review process that some see as inefficient.
This is the nature of the beast we have been tasked with taking care of and taming. Bitcoin's inherent lack of leadership turns these seemingly simple and straightforward fixes into hero's journeys that depend on committed individuals who are willing to put in the work to rearchitect Bitcoin so that it can attain the ideals of scalability, efficiency, and privacy that it is striving for. Luckily for us, Russell's efforts will hopefully get us to a point where it may not be as hard to get code merged into Bitcoin Core because things will be separated from interacting with each other, reducing the number of headaches and delays caused by having to take this interconnectedness into consideration.
Thanks for all your work, Russell. Bitcoin is better off for it. Onward!
Final thought...
Foosball. A very meh game.