Bitcoin SV

Get Started with Bitcoin SV!


Choose from below your desired deployment option to get started. We support deploying to Kubernetes, Docker, and regular bare-metal machines.

Kubernetes


While not necessary, I recommend reading a blog post I wrote explaining my initial thoughts of running a Bitcoin node on Kubernetes.

Resource Requirements for Kubernetes Cluster

  • Kubernetes v1.11.0+
  • At least 200 GB of disk space available, recommend more
  • 4 GB of memory
  • 2 CPU appears to be enough but recommend 4+

Don't have a Kubernetes Cluster?

I highly recommend MiniKube for getting started. Once MiniKube is installed, I recommend starting the cluster with the following flags:

$ minikube start --disk-size=200g --memory 4096 --cpus 4

    To get started with Kubernetes, the easiest method of deployment is the Bitcoin Operator. The Bitcoin Operator allows you to deploy a Bitcoin node to Kubernetes using a CoreOS Operator.

    Deploy Bitcoin

    To get started, clone the repository:

    $ git clone https://github.com/dymurray/bitcoin-operator
    $ cd bitcoin-operator

      Create the Custom Resource Definition for the Operator:

      $ kubectl create -f deploy/crds/bitcoin_v1_crd.yaml

        Create the operator deployment and RBAC resources:

        $ kubectl create -f deploy/

          Create the Bitcoin Custom Resource:

          $ kubectl create -f deploy/crds/bitcoin_v1_cr.yaml

            Now that the application is running, you can communicate with the RPC server by updating ~/.bitcoin/bitcoin.conf with rpcuser, rpcconnect, rpcpassword, and rpcport.

            • rpcconnect=KUBERNETES_IP
            • rpcuser=satoshi
            • rpcpassword=nakamoto
            • rpcport=NODE_PORT

            To monitor the status of the Bitcoin node, you can do:

            $ kubectl get bitd -o yaml
            apiVersion: v1
            items:
            - apiVersion: bitcoin.example.com/v1
              kind: Bitd
              metadata:
                creationTimestamp: 2018-12-13T16:37:01Z
                generation: 2
                name: example-bitd
                namespace: default
                resourceVersion: "673859"
                selfLink: /apis/bitcoin.example.com/v1/namespaces/default/bitds/example-bitd
                uid: 50deb82a-fef5-11e8-b21c-52540047bd17
              spec:
                pvc_size: 200Gi
                rpc_secret_name: bitcoin-rpc-credentials
                up_local: true
              status:
                address: bitcoincash:qrgnpvlhdc3q0ptclte7hhex5z26vz0hygxqduu09n
                balance: "8.976e-05"
                bestBlockHash: 000000000000000003f4aad68edb81fd766dc0612de957e32cef29214fb8c230
                blockCount: "561547"
                conditions:
                - ansibleResult:
                    changed: 1
                    completion: 2018-12-18T14:47:53.989712
                    failures: 0
                    ok: 18
                    skipped: 2
                  lastTransitionTime: 2018-12-18T14:47:54Z
                  message: Awaiting next reconciliation
                  reason: Successful
                  status: "True"
                  type: Running
                headers: "561547"
                pruneHeight: "557338"
                pruned: true
                synced: true
                unconfirmedBalance: "0.0"
                verificationProgress: "0.999997669748"
            kind: List
            metadata:
              resourceVersion: ""
              selfLink: ""
            

              For a more detailed guide to using the Bitcoin Operator including custom configuration options, see the Bitcoin Operator Blog.

              Docker Container


              Resource Requirements for Docker

              • Docker v1.11.0+
              • At least 200 gb of disk space available, recommend more
              • 4 gb of memory

              Install Docker and Docker Compose

              To get started with Docker, the easiest method of deployment is to use Docker Compose. Docker Compose only needs a YaML file that defines our Bitcoin container.

              To install, please see the docs.

              Deploy Bitcoin

              First, create a file docker-compose.yaml:

              ---
              version: '3'
              services:
                bitd:
                  command: ["/usr/local/bin/bitcoind", "-server", "-rest", "-listen", "-rpcallowip=0.0.0.0/0", "-prune=600", "-rpcuser=satoshi", "-rpcpassword=nakamoto"]
                  image: docker.io/dymurray/bitcoin-sv-bitd
                  ports:
                    - "8332:8332"
                  volumes:
                    - ./bitcoin-data:/root/.bitcoin
              

                Replace ./bitcoin-data above with the desired mount volume and replace rpcuser and rpcpassword with desired parameters. It is also not required to have the prune flag but it saves disk space.

                Start the container:

                $ docker-compose up

                  Now that the application is running, you can communicate with the RPC server by updating ~/.bitcoin/bitcoin.conf with rpcuser, rpcconnect, rpcpassword, and rpcport.

                  • rpcconnect=localhost
                  • rpcuser=satoshi
                  • rpcpassword=nakamoto
                  • rpcport=8332

                  Bare Metal / VM


                  I will be adding more information here including some easy ways to install Bitcoin SV on any host without having to do everything manually. For now, please see the installation instructions and check back soon!


                  Some Notes

                  Please consider donating to help keep this site running!

                  You can include a message with your donation for 1 dollar and it will be displayed below for all future visitors!

                  1NouW2T4qVCbLe6j6E8dCNVpNhdz3G9mMY