Our Bitcoin-related dockerfiles and configurations optimized for performace, lightweight (some raspberry pi specific), security by default and scalability are live at www.bitcoindockers.com
This is the public repository of dockerfiles used in production by Satoshi Portal for the Bitcoin applications it develops and operates, including Byllsand Bitcoin Outlet. In other words: they are currently being used to send and receive bitcoins commercially the mainnet. Announcement : “Dockerizing Bitcoin” @francispouliot_ https://medium.com/satoshiportal/bitcoin-dockers-21f9d5dd1e58 We will regularily update the existing Dockerfiles and add more. 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 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. this Please submit improvements and post your comments, we definitely want to get better with your help! This repo is hosted at bitcoindockers.com Features Lightweight alpine-based docker containers (runnable on RPi’s and other small devices) Using less possible new code, most possible existing OS built-in/well-known softwares Using container OS as running platform instead of language-based interpreter Encrypting everything through Docker Encrypted Overlay Network Distributing everything through Docker Swarm to maximize scallability Exposing nothing outside the overlay network Our philosophy: Security, Lightweight, Performance & Scalability. List of Dockerfiles 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 aRaspberry Pi device C-Lightning: one of the major Lightning Network implementations optmized for running on aRaspberry 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 If you want us to create a docker, please create an issue this way:
paste source code of Bitcoin project you want
tell us why you think it's useful and how you want to use it
Kubernetes bitcoin-core, lnd, lndhub (and a handy scb backup container)
I really wanted to run bitcoin-core, lnd, lndhub, redis on Google Kubernetes Engine and I couldn't find any docker that worked well in this pattern. I built some here https://github.com/lsdopen/k8-bitcoinlnd This includes the K8 yaml and the Dockerfiles for the various components. I would very much welcome contributions. PS: I also built a LND channel backup app which backs up the channel backup to Google Buckets on a channel change. This runs as a container alongside lnd and may be useful to you to ensure you save your SCB. https://github.com/lsdopen/lnd-scb-backup
If you haven't used Docker before, it's a quick & easy way to package an OS, web server & applications into an image and then run those apps using virtual machines and containers. It is a great way to get new apps up & running quickly without installing the required OS, updates, dependencies and all that jazz. Instead, you install Docker on your machine and then search for an existing Docker image that someone has already set up or create your own Dockerfile to build an image by specifying all the dependencies, requirements & set up commands for your applications. If you do it once then you can instantly spawn as many containers as you need when you need them. You can also then share your Docker image with the community. So I found that Docker + Bitcoin is a quick & easy way to get a full node up & running. You can view all the commands & installation instructions for running a Bitcoin ABC or Unlimited full node with Docker here: https://github.com/zquestz/docker-bitcoin I was interested so I tried it out on my Mac, without having Docker installed. It took me about 10 minutes to download & install Docker, then get a Bitcoin ABC node up & running with a persistent data volume. eg: docker run -d --rm --name bitcoind -v "$PWD/bitcoinabc/data:/data" zquestz/bitcoin-abc Of course, downloading the full blockchain will take more time (I believe it's about 127GB) but to at least get it running is very simple. You can then easily start or stop the node by starting or stropping the Docker container. eg: docker start bitcoind *this was found on the Bitcoin ABC website https://www.bitcoinabc.org/ at the "Docker packages" link so it is a trusted source. Edit: current version of BitcoinABC is 0.20.0, updated 2 days ago. Edit2: Flowee the Hub full node Docker images https://hub.docker.com/flowee/hub More info: https://flowee.org/about/
After the recent malicious server hack I set up a public electrum server alongside the full bitcoin node I've run for years. Used a docker that installs Github source (kyuupichan/electrumx) and tweaked the "official" dockerfile as it hasn't apparently been updated in over a year (lukechilds/docker-electrumx). After about a day and a half to sync it purrs like a kitten using only about 1-2% CPU, 30G storage and 100kb bandwidth on my old Dell dual Xeon server. It usually has about 250 users and 80 peers (servers) connected. Is this the worldwide total? I've seen that number in mainstream news (ZDNet) as well. If so, why? The recent hack added about 20 malicious servers which would represent about 25% of the worldwide total? Please consider supporting the protocol by adding servers - it would help dilute the potential for any future similar attacks. It was straightforward to set up alongside a full bitcoin node and doesn't require much in the way of spare resources. Especially nice is knowing that my transactions go through my own privately controlled (and known secure) nodes with the added benefit of strengthening both public networks.
Hey everyone! The release candidate for the next version of ipfs is out, give it a try and let us know if you run into any issues!
Ipfs 0.4.11 is a larger release that brings many long-awaited features and performance improvements. These include new datastore options, more efficient bitswap transfers, circuit relay support, ipld plugins and more! Take a look at the full changelog below for a detailed list of every change. The ipfs datastore has, until now, been a combination of leveldb and a custom git-like storage backend called 'flatfs'. This works well enough for the average user, but different ipfs usecases demand different backend configurations. To address this, we have changed the configuration file format for datastores to be a modular way of specifying exactly how you want the datastore to be structured. You will now be able to configure ipfs to use flatfs, leveldb, badger, an in-memory datastore, and more to suit your needs. See the new datastore documentation for more information. Bitswap received some much needed attention during this release cycle. The concept of 'Bitswap Sessions' allows bitswap to associate requests for different blocks to the same underlying session, and from that infer better ways of requesting that data. In more concrete terms, parts of the ipfs codebase that take advantage of sessions (currently, only ipfs pin add) will cause much less extra traffic than before. This is done by making optimistic guesses about which nodes might be providing given blocks and not sending wantlist updates to every connected bitswap partner, as well as searching the DHT for providers less frequently. In future releases we will migrate over more ipfs commands to take advantage of bitswap sessions. As nodes update to this and future versions, expect to see idle bandwidth usage on the ipfs network go down noticably. It is often said that NAT traversal is the hardest problem in peer to peer technology, we tend to agree with this. In an effort to provide a more ubiquitous p2p mesh, we have implemented a relay mechanism that allows willing peers to relay traffic for other peers who might not otherwise be able to communicate with each other. This feature is still pretty early, and currently users have to manually connect through a relay. The next step in this endeavour is automatic relaying, and research for this is currently in progress. We expect that when it lands, it will improve the perceived performance of ipfs by spending less time attempting connections to hard to reach nodes. A short guide on using the circuit relay feature can be found here. The last feature we want to highlight (but by no means the last feature in this release) is our new plugin system. There are many different workflows and usecases that ipfs should be able to support, but not everyone wants to be able to use every feature. We could simply merge in all these features, but that causes problems for several reasons: first off, the size of the ipfs binary starts to get very large very quickly. Second, each of these different pieces needs to be maintained and updated independently, which would cause significant churn in the codebase. To address this, we have come up with a system that allows users to install plugins to the vanilla ipfs daemon that augment its capabilities. The first of these plugins are a git plugin that allows ipfs to natively address git objects and an ethereum plugin that lets ipfs ingest and operate on all ethereum blockchain data. Soon to come are plugins for the bitcoin and zcash data formats. In the future, we will be adding plugins for other things like datastore backends and specialized libp2p network transports. In order to simplify its integration with fs-repo-migrations, we've switched the ipfs/go-ipfs docker image from a musl base to a glibc base. For most users this will not be noticable, but if you've been building your own images based off this image, you'll have to update your dockerfile. We recommend a multi-stage dockerfile, where the build stage is based off of a regular Debian or other glibc-based image, and the assembly stage is based off of the ipfs/go-ipfs image, and you copy build artifacts from the build stage to the assembly stage. Note, if you are using the docker image and see a deprecation message, please update your usage. We will stop supporting the old method of starting the dockerfile in the next release. Finally, I would like to thank all of our contributors, users, supporters, and friends for helping us along the way. Ipfs would not be where it is without you.
How to easily make your own trustless BU Docker image for 1.0.0
Docker is awesome for running a BU node, but at the same time, I always felt very ambivalent about trusting bitcoin software being delivered by a 3rd party. What if they sneak in some kind of back door into my client? For this reason, I think the best thing to do is to write your own basic docker package and build it yourself. Here's a basic sample for a Dockerfile to build BU 1.0.0 (I found it online and updated it slightly):
Anyone with a basic knowledge of Unix should be able to verify this script as legit. It downloads BU directly from the BU website over HTTPS. It checks the hash. It is all contained in this one file, so there's no code to chase around and verify. On Mac, I installed Docker using the package that the docker team provides on their website (rather than using brew) -- it's nice. Create a new directory and place the above text into a file called "Dockerfile". From there, simply run:
Congrats, now you have a docker archive created. You can generally import this archive wherever you want. For example, my Network Attached Storage server has support for containers, so I just imported it there using the web UI. Note: the script I gave doesn't set up the bitcoin RPC stuff for being able to use bitcoin-cli. If you want to set that up, do something more like this guy's scripts: https://github.com/jrruethe/docker-bitcoin-unlimited @ BU Team would love to have an official docker + vm image delivered securely from your site
Docker and Raspberry Pi developer, Alex Ellis, has created a Docker image that will let you CPU mine Bitcoin in a few painless steps. I’m this guide, I’ll show you how to mine Bitcoin on your laptop and start raking in those sweet, sweet fractions of a Bitcoin. This article has covered how to define port mappings in a Dockerfile using EXPOSE, how you can then publish these to connect to the host machine and other apps, as well as viewing the ports of a running container. To learn more see the Docker guides as well as my other posts on Docker. Docker Documentation Dockerfile EXPOSE; docker port docker-bitcoin-core / 0.20 / alpine / Dockerfile Go to file Go to file T; Go to line L; Copy path Cannot retrieve contributors at this time. 120 lines (98 sloc) 3.85 KB Raw Blame # Build stage for BerkeleyDB: FROM alpine as berkeleydb: RUN sed ... bitcoin-testnet-box / Dockerfile. Find file Copy path Fetching contributors… Cannot retrieve contributors at this time. 39 lines (29 sloc) 1.1 KB Raw Blame History # bitcoin-testnet-box docker image # Ubuntu 14.04 LTS (Trusty Tahr) FROM ubuntu:14.04: LABEL maintainer ... bitcoin Dockerfile. GitHub Gist: instantly share code, notes, and snippets. Skip to content. All gists Back to GitHub. Sign in Sign up Instantly share code, notes, and snippets. skwp / Dockerfile. Created Oct 26, 2018. Star 1 Fork 0; Code Revisions 2 Stars 1. Embed. What would you like to do? Embed Embed this gist in your website. Share Copy sharable link for this gist. Clone via HTTPS Clone ...
Bitcoin for beginners - Lightning network with docker-compose (part 2)
Part 1. This video will teach you how to create a testing environment for bitcoin's lightning network using docker-compose. Hopefully, you'll be able to use this environment to better understand ... Deploy Toshi to an EC2 instance on Amazon Web Services using Docker in 30 minues. Toshi is a Bitcoin Implementation written in Ruby by Coinbase. This step-by-step walkthrough should be accessible ... Deploy Toshi Bitcoin Node with Docker on AWS in 30 minutes. Beginner Friendly! - Duration: 30:11. Alexander Leishman 4,285 views. 30:11. MINE MONERO using your CPU in MINUTES! This video is unavailable. Watch Queue Queue. Watch Queue Queue UPDATE: a few specifics have changed, see below for up-to-date commands In this video we create a local bitcoin testnet within a docker container. Then we'll...