Skip to content
Easily attest to and read attestations on the Bloom protocol
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
app catch logstash failure Apr 29, 2019
.gitignore Public release candidate Aug 20, 2018
LICENSE Update readme (#9) Oct 3, 2018

Attestation Kit

Attestation Kit

Easily access Bloom's network of data verifiers to onboard users to your application/service. Or spin up a data verification service and get paid to verify information. Build up a reputation as a reliable attester and earn BLT.

Installation & Deployment

Create new host machine

We'll be using Ubuntu 18.04 LTS for the purpose of this guide. On Google Cloud, an example configuration might be 20GB of hard disk space, 1 vCPU, and 6 GB of RAM.

System configuration

SSH into your instance. Use apt-get update; apt-get install git to install basic prerequisites. The install script for should automatically create a "docker" system group - use usermod -aG docker myuser to add myuser (or whichever user you want to run docker as) to the docker group.

Visit to follow current instructions to install docker-compose.

Download code

Clone the repository to your chosen location on your server:

git clone /srv/attestation-kit


See Bloom Docker docs for most up-to-date info on editing the .env file.


If you'd like your docker instance to run on the public internet, it's a good idea to run something like nginx or Apache httpd in front of the docker image, and limit public access to your application to ports 80 and 443 (and probably port 22 for SSH access), doing an HTTPS redirect on requests to port 80 in order to ensure data sent to and from your application is always encrypted. We recommend LetsEncrypt/certbot for free certificates that deploy very easily with miscellaneous server configurations. Example configuration for nginx and Ubuntu 18.04:

After that, nginx should be configured with a proxy_pass setup, e.g., proxy_pass; in the "location" block for your server configuration.

For dev environments with a database running on the host, PostgreSQL must be configured to accept connections from Docker. An example configuration not requiring authentication might look like this (for docker-assigned IP addresses in the and subnets, and a Docker host address of

# postgresql.conf
listen_addresses = 'localhost,'

# pg_hba.conf
host    bloom-whisper             all              trust
host    bloom-whisper             all              trust

Please read the official PostgreSQL documentation for each of these files for more information.

Controlling your instance

To spin up your docker-compose instance. Navigate to the application directory (e.g. /srv/bloom-whisper), and then...

For basic dev instances (assuming ganache-cli and postgresql running externally):


For simple, production configurations without an external database:

docker-compose down
docker-compose build
docker-compose up -d

For configurations with an external database:

docker-compose -f docker-compose.nodb.yml down
docker-compose -f docker-compose.nodb.yml build
docker-compose -f docker-compose.nodb.yml up -d

For development environment configurations (with geth and postgresql running locally):

docker-compose -f down
docker-compose -f build
docker-compose -f up -d

To spin down your instance, run docker-compose down, or docker-compose -f docker-compose.nodb.yml, or docker-compose -f accordingly.

Accessing your instance

docker exec -it CONTAINER_NAME /bin/bash

CONTAINER_NAME should look something like attestation-kit_app_1

You can’t perform that action at this time.