Now Bitcoin Core’s most prolific developer, Marco Falke’s work is the daily maintenance and testing of an open-source project that must reject error.
Last week, Bitcoin Developer Marco Falke logged his 1,752nd commit to Bitcoin Core’s codebase, passing W. J. van der Laan to become the most prolific Core Dev in terms of the sheer number of individual changes submitted to the project.
As a full-time Bitcoin Core repository maintainer since 2016, Falke himself is the first to point out that many of his commits represent minor tweaks that are merged to the codebase relatively easily, and that this milestone in and of itself does not make him Bitcoin’s most important or enterprising contributor. But, after all, Bitcoin is code, and the work that Falke does as a maintainer of that code every day — reviewing contributions to ensure that they provide improvement to the protocol, maintaining continuity across the network and organizing the code so it is easy for developers to work with — is critical.
“When it comes to my contributions, I think the majority are smaller improvements, which are each exciting for their own reasons,” Falke told BitcoinLinux. “I’ve mostly continued to improve testing and spend time on quality assurance and review.”
The most substantive of Falke’s development work on Bitcoin has probably been his contributions around its testing infrastructure, something he identified early on as an inefficiency in the project that he was passionate about improving. Bitcoin’s test environment is used to review potential changes to the codebase, allowing developers to peer review one another’s work and identify potential problems. Falke has dedicated much of his career to improving this test environment so this process is more efficient.
“When I saw what a critical project Bitcoin Core was, that was the same time I realized that the testing infrastructure for Bitcoin Core was not in any way sufficient, and I was motivated to improve it,” said Falke, who started “lurking” on the Bitcoin project in 2014 and began contributing to the code the next year. “For example, the functional tests back then were mostly superficial or even completely broken — incapable of detecting any issues at all. I started off by fixing the obvious bugs in the tests and rewrote the test framework to use modern Python 3, instead of Python 2, which was being deprecated back then.”
Until last year, Falke was based in New York City, working full-time for Bitcoin research and development firm Chaincode Labs. But now he works remotely from an undisclosed location thanks to an open-source developer grant from cryptocurrency exchange OKCoin, a revenue source that he said makes it much easier for developers to work on open-source projects like Bitcoin Core.
“Apart from my work, I do enjoy getting (mostly) regular and enough sleep, since my brain will refuse to work when I am on less than eight hours of sleep for a few days,” Falke added. “Also, I try to exercise at least every second day to give my brain more time to recover and also stimulate the remainder of my body through sport.”
It should not be surprising that Bitcoin’s most active maintainer, who is also one of its quality assurance leaders, sees the project’s notorious resistance to change as one of its standout qualities.
“One major difference is the level of scrutiny,” Falke said of Bitcoin Core as a software project. “Every change to Bitcoin Core needs to go through code review. Changes that touch critical areas (consensus or networking code, for instance) or are deemed riskier, need to go through code review by multiple people… Which is a good thing for Bitcoin, because Bitcoin users wouldn’t want the consensus rules to change willy nilly.”
As possibly the world’s most important open-source software project, Bitcoin is a pioneer in a few ways. From Falke’s perspective, another one of the most critical things that sets the Bitcoin project apart is the opportunity given to users to verify new code releases (provided as “compiled release binaries,” or compiled versions of the application for computers to read and implement) and protect against malware injection. To help users authenticate the new releases, Core Devs provide “reproducible builds,” software compilations that serve as instructions to verify new code — something that Falke said should be a standard way to ship releases in the world of open-source software, but is not yet.
Finally, Falke also highlighted Bitcoin’s thorough “fuzz testing,” a quality assurance technique that helps discover code errors that otherwise might lead to security breaches or other malfunctions.
“Bitcoin Core is also extensively fuzz tested, which is also not yet the norm for the average open-source project,” he said. “I am already happy with the overall state of our testing infrastructure, but I think an area of still low-hanging fruits for improvement are the fuzz tests.”
Falke also sees education as a major need in the Bitcoin Dev community, something that he helps with as he can.
As someone whose work is in the daily nurturing of Bitcoin Core, now leading its history in the number of successful changes made to the code, Falke is clearly happy maintaining the network and keeping it running for the rest of us.