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 protected].
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.
- Dockerized Deployment of ProvenDB
- Configuration
- Troubleshooting
- Compatibility
- Branch Information
- Contact
Check Compatibility section for versions that are known to work.
git
docker
docker-compose
Either watch the video below, or follow the written steps to get started with ProvenDB as a standalone container.
git clone https://github.com/SouthbankSoftware/provendb-docker-compose.git
cd provendb-docker-compose
3. Ensure Docker images are up to date (run this regularly to get the latest features and bug fixes).
docker-compose pull
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
docker ps
All the containers should be healthy
mongo mongodb://pdbuser:click123@localhost:27018/provendb
- Customize your configuration by modifying the
env/creds-standalone/provendb.env
file. - 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
.p12
format) inssl_cert/certificate.p12
and setENV_PROVENDB_SECURITY_SSL_ENABLE=true
in thecommon.env
file. -
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.
A free endpoint for anchoring transactions on the Ethereum mainnet or testnet can be obtained from Infura.io.
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)
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.
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 env/creds-standalone/provendb.env
file.
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:
OS | Docker version |
---|---|
macOS Catalina | Docker Desktop: 2.1.0.1, Docker Engine: 19.03.1, Docker Compose: 3.4 |
Windows 10 Pro | Docker Desktop: 2.1.0.4, 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
stable
yet, but have passed the nightly tests and most likely will be marked asstable
soon. - master: Contains
stable
versions 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 [email protected]
Copyright © 2019 Southbank Software. All rights reserved.