It’s just the beginning: let’s dockerize all the Bitcoin projects!
I’m very excited to have finally open-sourced the first part of Satoshi Portal’s custom Bitcoin infrastructure: our repository of Bitcoin-related dockerfiles and configurations upon which our web applications are built and they are the building blocks of our Cyphernode project (more on that in my next post!) Because we love Docker and Bitcoin so much, we decided dockerize all the Bitcoin projects! This includes Bitcoin Core and Lightning Nodes, as well as various utilities like OpenTimestamps and PyCoin.
This is the website for our repository: SatoshiPortal/dockers which is where we will publish all the Bitcoin docker container projects that we either coded or reviewed. They each come with a tutorial.
All the current dockerfiles are used in production by Bylls and Bitcoin Outlet, Satoshi Portal’s Bitcoin financial services applications. In other words: they are currently being used to send and receive bitcoins commercially on the main net.
Docker is an amazing technology which allows developers to build and deploy scalable web applications. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application. Using our dockers will save you a lot of time and effort, but you also benefit from existing best practices and don’t have to reinvent the wheel. We ourselves tried to create the least now code possible, using the best standards and open-source software, and with security-by-default because we are running Bitcoin exchange applications that are an obvious high-value target for attackers.
We spent time to develop our own techniques and configurations for ourselves, embedding our philosophies. If you plan on using Bitcoin dockers, we encourage you to have a look at the work we have done so that you can better allocate your time and resources.
We hope that by creating docker containers of useful and popular Bitcoin open-source software projects, we will make it easier for developers and project managers to build applications on top of Bitcoin. If you need help or have requests don’t hesitate to reach out using the contribution guidelines below.
We will be continuously adding more Bitcoin Dockers, and maintaining and updating these images. Don’t hesitate to contact us if we haven’t yet done the updates that you need.
Contributions are welcome! We hope you find this useful and we look forward to your feedback, questions and comments (on Github).
Features and philosophy
- Lightweight alpine-based docker containers that were designed to run on small devices with some optimized specifically for Rapsberry Pi.
- Using the least new code possible and re-using existing OS built-in and well-known and review open-source software projects.
- Using container OS as running platform instead of language-based interpreter.
- Security by default: Encrypting everything through Docker Encrypted Overlay Network
- Distributing everything through Docker Swarm to maximize scalability
- Exposing nothing outside the overlay network.
List of existing Dockerfiles
We’re starting out with the software we are using right now. As soon as we have more time we will be adding more.
- HD address derivation (segwit, bech32, etc.): a command-line too to derive bitcoin addresses using master public keys. This is useful for generating Bitcoin receiving addresses.
- Pycoin: a crypto-utility useful for deriving Bitcoin addresses in Python.
- Bitcoin Core x86_64: the Bitcoin reference implementation (full node) of Bitcoin from Bitcoin Core
- Bitcoin Core for Raspberry Pi: the Bitcoin reference implementation (full node) of Bitcoin from Bitcoin Core optmized for running on a Raspberry Pi device
- C-Lightning: one of the major Lightning Network implementations optmized for running on a Raspberry Pi device
- LND Lighnting Network Node one of the major Lightning Network implementations optmized for running on a Raspberry Pi device
- OpenTimestamp Server: a network calendar and aggregation utility service for scalable timestamping of hashed data using the Bitcoin blockchain as a notary, from Open Timestamps
- OpenTimestamp Client: software to communicate with OTS server and Bitcoin Core to generate and verify timestamps compliant with the Open Timestamps protocol
We are definitely looking for contributions! Get inspired by the existing work. Don’t be afraid to test, explore, and do pull-requests. We are all learning this as we go along. Don’t just copy-paste: try to understand what you are doing. Ask questions and provide feedback!
If you are running our dockers in your applications you can send us emails at email@example.com for private assistance but making an issue on or pull request on Github is the fastest and most efficient way to reach us.
If you want us to add a docker, please create an issue this way:
- Paste the source code of the repository you want us to add
- Tell us why you think this is useful and/or how you (or you think someone else) may want to use it. This will help us prioritize and think of the actual usage.
- Put the label “wishlist” on the issue.
Tell us what you want and why!
Special thanks to Kexkey who did all the work.
Made with love in Montreal
Learn more from the following articles
about 2 months ago
Become a Bull Bitcoin Missionary
If you are a Bitcoin Maximalist who believes in self-custody and the cypherpunk ethos of individual sovereignty, chances are you’re already a Bull Bitcoin super fan. What if you could become more?
4 months ago
The Mayer Multiple: Optimizing Your Entry Points
At Bull Bitcoin, we favor Bitcoin as a unit of account and our priority is to provide you with all the tools that will allow you to adopt, like us, the Bitcoin Standard.
Business Development Director
5 months ago
New Feature: Send Interac e-Transfers to anyone from your Bitcoin Wallet
Three biggest updates to Bylls (Bull Bitcoin payment services) since 2013!