Breaking the Kubernetes Kill Chain: Host Path Mount
Bitcoin Development 2019 Starter Guide - No Skill | ProvenCrypto
1. Bitcoin Development
provencrypto.com/bitcoin-development
Introduction
The open source community is a huge one with developers remotely collaborating on
different projects. To ease this process, they make use of version control portals such as
Github, or Bitbucket, to mention a few. Coincidentally, both Github and Bitcoin technologies
are both based on what is known as Merkle trees.
So it’s essential you get familiar with Github Concepts such as Push/Pull requests, Cloning a
Repository, commit, forking, etc.
Bitcoin being an open source project, make use of Github for project collaboration/
management, documentation, bug tracking, continuous integration, etc. making for easy
contribution by any developer across the globe. All that is required to contribute to the
Bitcoin project can be found here in the GitHub repository,, but bear in mind that the Bitcoin
community is a merit-driven one. Meaning, all that matters is the quality of your work and
putting your ego outside the door. A clear description of development is provided in the
README. Do ensure you read it as a guide to delivering quality, human-readable code.
When taking a plunge into the Bitcoin developer community, it is crucial for you to set your
expectation accordingly. Through hard work and patience, you can learn a lot as well as gain
recognition and respect similar to core developers like Peter Wuille, Cory Fields, and Gregory
Maxwell.
1/3
2. Further project development discussion is on GitHub and the bitcoin-dev mailing list. For
more informal development discussions, check out irc.freenode.net #bitcoin-core-dev (web
interface, logs). The developer community is a friendly one, simply respect the guidelines.
Documentation
Every seasoned developer knows that the first go-to source for working on any code or
library is to read the documentation. You can start from the README and the contribution
guidelines. You can also continue further with the doc directory and read the README there
too. All the documentation in the doc directory is described in the README.
Please note that similar to any new endeavor, some things may not make sense to you at the
beginning. So do not hesitate to network with community members on IRC, StackExchange ,
and Slack if you have issues with understanding some concepts way.
Required Skills
Programming Language:
Starting out your contribution to Bitcoin core, essential prerequisites are skills in the two
programming languages which are C++ and Python.
Version/Source Control:
As pointed out in the introduction, this is managed through Git. It is necessary that you know
how to fetch from the origin, make topic branches and how to rebase. If you’re testing
someone else’s code, you should also know how to add multiple repositories to your local
development environment so you can fetch and test the code.
Signing up for a GitHub account cannot be overemphasized considering that changes to
Bitcoin Core are merged on a Pull request by Pull Request basis on Github.
Last and very important is that you’ll need to know how to install and remove packages on
your platform.
Code Review
According to Ken Thompson, one of the co-creators of Unix, “ You can’t trust code that you
didn’t create yourself….” Being a Bitcoin Core developer is not an easy route, this is because
the Bitcoin core is security software that protects assets worth billions of dollars from
different kind of external attacks. Again bear in mind that open source doesn’t imply more
secure, which is why experienced developers must review every code changes. Hence your
work has to meet a high standard of testing and code review.
It can take a long time for other developers to review your pull requests. Remember that all
reviewers are taking time away from their projects to review your pull requests, so be
patient, show some respect for their time.
2/3
3. As a way to get your feet wet, you can consider giving it a shot at reviewing other people’s
pull requests. You don’t need to be an expert in Bitcoin, the Bitcoin Core codebase, or C++
(although all these things help). There are almost always open pull requests that any
programmer can review.
Starter Projects
Often people conclude code contribution as the only contribution to opensource, while in
reality, the success of such projects depends on testing and review. Starting off with
reviewing and testing will push into deep waters, where you will eventually learn a lot about
the code base with more in-depth understanding, compared to writing code.
Do you want to begin coding for Bitcoin Core but don’t have a specific improvement in mind?
Here are a few ideas:
Fix existing issues: Checking out the issue tracker is a great place to find meaningful
contributions to Bitcoin Core. It is necessary to comment on issues to ensure someone
else is not working on it before starting to write any patches for problems you find.
Write tests: many tests cover Bitcoin Core, but patches that improve test coverage are
always welcome and are a great way to build familiarity with the codebase. See the
documentation about automated testing.
Developer communities
The following chatrooms and websites host discussions about Bitcoin development. Please
be sure to read their rules of conduct before posting.
IRC Channel #bitcoin-core-dev on Freenode.
Bitcoin Core Slack Channel
Bitcoin StackExchange, The Bitcoin StackExchange, is a good place to get all tricky
questions answered.
BitcoinTalk Development & Technical Discussion Forum
Further project development discussion is on GitHub and the bitcoin-dev mailing list. For
more informal development discussions, check out irc.freenode.net #bitcoin-core-dev (web
interface, logs).
3/3