Dockerized Deployment of ProvenDB
Please Note: The Docker-Compose deployment of ProvenDB in this repository is to demonstrate the capabilities of both the cloud and on-premise implementations of ProvenDB, if you are looking for a complete production-ready deployment of ProvenDB, please contact us at email@example.com.
A Docker-Compose configuration for deploying ProvenDB on your chosen system, perfect for testing out whether the application is a good fit for your blockchain project, or just to send some local data to the blockchain without using our cloud provided services.
Table of Contents
- Dockerized Deployment of ProvenDB
- Table of Contents
- Quick Start Guide
- Branch Information
Check Compatibility section for versions that are known to work.
Quick Start Guide
Either watch the video below, or follow the written steps to get started with ProvenDB as a standalone container.
1. Clone the Repository
git clone https://github.com/SouthbankSoftware/provendb-docker-compose.git
2. Navigate to the root directory of the repository.
3. Ensure Docker images are up to date (run this regularly to get the latest features and bug fixes).
4. Run the Docker containers.
On Unix operating systems:
docker-compose pull && docker-compose -f docker-compose.yml -f docker-compose.standalone.yml up --build -d
On Windows operating systems:
sed -i 's/\r$//' scripts/*/*.sh && docker-compose pull && docker-compose -f docker-compose.yml -f docker-compose.standalone.yml up --build -d
5. Check container status
All the containers should be healthy
6. Connect to ProvenDB.
7. Next Steps
- Customize your configuration by modifying the
- Complete the database tutorial here.
This ProvenDB service runs with ssl disabled by default. If you wish to use ssl, you will need to place your certificate (in
Because this is a demo version of the product, anchoring proofs to Ethereum is accomplished on the Rinkeby Testnet by default. However, you can change this configuration if you wish to connect to a different Ethereum compatible endpoint.
For example, if you would like to use a private blockchain such as Quorum, you will need to make the following changes.
1. Set `ANCHOR_ETH_ENDPOINT` in `env/creds-standalone/anchor.env` to point to the Quorum node. 2. Set `ANCHOR_ETH_PRIVATE_KEY` to the value of the private key of the account address which will be used for signing transactions.
No Space Left on Device in container logs.
If you get an error like
no space left on device in any of the container logs, you may try and run this
docker rm $(docker ps -q -f 'status=exited') docker rmi $(docker images -q -f "dangling=true") docker volume rm $(docker volume ls -qf dangling=true)
Drive sharing failed for an unknown reason error on Windows
On Windows if you encounter the following error:
ERROR: for provendb-tree-cache Cannot create container for service treecache: b'Drive sharing failed for an unknown reason'
Please refer to this docker issue.
Blockcypher API Limit Reached.
The Blockcypher token included in this repo is
62067971acd84dbf83d97739541ca77b. This is a free token with a api limit of 200 calls per day and is shared among all running public docker instances of ProvenDB. If you need more, you can create a account at Blockcypher, choose a plan and replace this token with your own token in the
Can't change MongoDB password
It's not possible to change existing passwords once provendb is started. If you want to change passwords, you will have to delete the MongoDB database.
You can do this by removing the volume containing that database, for example:
docker volume rm $(docker volume ls -q | grep provendb-data)
This specific deployment of ProvenDB has been tested on the following configurations:
|macOS Catalina||Docker Desktop: 188.8.131.52, Docker Engine: 19.03.1, Docker Compose: 3.4|
|Windows 10 Pro||Docker Desktop: 184.108.40.206, Docker Engine: 19.03.4|
|Ubuntu 18.04 Server||Docker Engine: 18.09.7, Docker Compose: 3.4|
This deloyment works best with 8GB of memory available for Docker Engine.
This repository contains the following branches:
- dev: Contains the latest versions of the ProvenDB services. These is cuttent edge code, and may not yet be 100% bug free.
- pre-release: Contains versions of ProvenDB services which are not marked as
stableyet, but have passed the nightly tests and most likely will be marked as
- master: Contains
stableversions of all ProvenDB services.
If you run into any issues, or wish to discuss a custom deployment of ProvenDB for your blockchain project, please email us at firstname.lastname@example.org
Copyright © 2019 Southbank Software. All rights reserved.