bigchaindb/docs/source/installing.md
2016-02-18 10:46:58 +01:00

4.8 KiB

Installing BigchainDB Server

We're developing BigchainDB Server ("BigchainDB") on Ubuntu 14.04, but it should work on any OS that runs RethinkDB Server and Python 3.4+. (BigchainDB is built on top of RethinkDB Server.)

Install and Run RethinkDB Server

The RethinkDB documentation has instructions for how to install RethinkDB Server on a variety of operating systems. Do that (using their instructions for your OS): Install RethinkDB Server.

RethinkDB Server doesn't require any special configuration. You can run it by opening a Terminal and entering:

$ rethinkdb

Install Python 3.4+

If you don't already have it, then you should install Python 3.4+ (maybe in a virtual environment, so it doesn't conflict with other Python projects you're working on).

Install BigchainDB

BigchainDB has some OS-level dependencies. In particular, you need to install the OS-level dependencies for the Python cryptography package. Instructions for installing those dependencies on your OS can be found in the cryptography package documentation.

On Ubuntu 14.04, we found that the following was enough (YMMV):

$ sudo apt-get update
$ sudo apt-get install libffi-dev g++ libssl-dev python3-dev

With OS-level dependencies installed, you can install BigchainDB with pip or from source.

How to Install BigchainDB with pip

BigchainDB is distributed as a Python package on PyPI so you can install it using pip. First, make sure you have a version of pip installed for Python 3.4+:

$ pip -V

If it says that pip isn't installed, or it says pip is associated with a Python version less than 3.4, then you must install a pip version associated with Python 3.4+. See the pip installation instructions. On Ubuntu 14.04, we found that this works:

$ sudo apt-get install python3-setuptools
$ sudo easy_install3 pip

(Note: Using sudo apt-get python3-pip also installs a Python 3 version of pip (named pip3) but we found it installed a very old version and there were issues with updating it.)

Once you have a version of pip associated with Python 3.4+, then you can install BigchainDB using:

sudo pip install bigchaindb

(or maybe sudo pip3 install bigchaindb or sudo pip3.4 install bigchaindb. The sudo may not be necessary.)

How to Install BigchainDB from Source

BigchainDB is in its early stages and being actively developed on its GitHub repository. Contributions are highly appreciated.

Clone the public repository:

$ git clone git@github.com:bigchaindb/bigchaindb.git

Install from the source:

$ python setup.py install

How to Install BigchainDB on a VM with Vagrant

One of our community members (@Mec-Is) wrote a page about how to install BigchainDB on a VM with Vagrant.

Run BigchainDB

Once you've installed BigchainDB, you can run it. First make sure you have RethinkDB running:

$ rethinkdb

Then open a different terminal and run:

$ bigchaindb start

During its first run, BigchainDB takes care of configuring a single node environment.

Run BigchainDB with Docker

NOT for Production Use

For those who like using Docker and wish to experiment with BigchainDB in non-production environments, we currently maintain a Dockerfile that can be used to build an image for bigchaindb, along with a docker-compose.yml file to manage a "standalone node", consisting mainly of two containers: one for rethinkdb, and another for bigchaindb.

Assuming you have docker and docker-compose installed, you would proceed as follows.

In a terminal shell:

$ git clone git@github.com:bigchaindb/bigchaindb.git

Build the docker image

$ docker-compose build

then, a one-time configuration step, to create the config file, which will be stored on your host machine under ~/.bigchaindb_docker/config

$ docker-compose run --rm bigchaindb bigchaindb configure

you can load test transactions via

$ docker-compose run --rm bigchaindb bigchaindb-benchmark load

you should then be able to start bigchaindb, via

$ docker-compose run --rm bigchaindb bigchaindb start

or

$ docker-compose up

You should be able to view the rethinkdb dashboard at

http://docker_host:58080/

where docker_host is the ip or hostname of the machine running the docker engine. If you are developing on linux this most likely will be localhost, whereas if you are running docker-machine (e.g.: on Mac OS X) this will be the ip of the docher machine (docker-machine ip machine_name).