Amiti Uttarwar, Bitcoin core developer at Xapo and former software engineer for Coinbase, has explained how developers can contribute to the Bitcoin protocol in a blog post published Friday. As an open-source project, almost anyone with sufficient developer know-how can get involved in the protocol's expansion. But it’s not always obvious where to begin.
According to Uttarwar, there’s more to contributing than submitting code to Bitcoin's codebase. There are a number of less-technical ways to get involved, such as signing up for Bitcoin's mailing list discussions.
The "Bitcoin-dev" mailing list regularly includes discussions surrounding patches, BIP proposals, and academic paper announcements. Talks of a less fundamental nature are often held via "Bitcoin-discuss"—a mailing list dedicated to inquiries outside the direct development focus of Bitcoin-dev.
Another way to stay up-to-scratch on ecosystem developments is a subscription to "The Bitcoin Optech"—a weekly newsletter that delves into Bitcoin's latest technical developments.
Down the Bitcoin rabbit hole
For those looking to contribute actual code to Bitcoin, familiarizing oneself with Bitcoin's codebase is the place to start.
"Clone the repo, compile it and run tests," suggests Uttarwar.
Once acclimatized, it's time to try the real thing. Pull requests are proposed revisions to Bitcoin's codebase. Other developers review these requests and some make it through to be included in its code.
Creating a pull request can be a challenging undertaking. Finding a niche is essential since contributions must be of some value to the project in order to be picked for merging. Keeping an eye on mailing list discussions is a good way of sourcing a worthwhile pull request.
Uttarwar advises scanning through Github's "Issues" tab. Filed under two labels: "good first issues" and "up for grabs" are pull request issues that are available for taking, meaning anyone can write code designed to solve the problem and submit it to the review process. They often include several suggestions suitable for first-time contributors.
Other pull request ideas can be found by searching for the label "TODO." This keyword can unearth a range of beginner-friendly tests and follow-ups to work on.
"Think critically about how to test the changes," writes Uttarwar, "opening [pull requests] to address follow-ups and increase test coverage will be much appreciated."
The PR-review-club is also an essential resource for contributors. Here, weekly discourse on pull requests aids newcomers in learning about the PR reviewal process.
So, what are you waiting for?