This is an Erlang application to serve up the Helium blockchain as stored by the blockchain-etl service and schema. The two applications rely on the schema being compatible to work
-
Clone this repository
-
Create
.env
file by copying.env.template
and editing it to reflect your postgres read-only and read-write access URLs -
Run
make release
in the top level folder -
Run
make start
to start the application. Logs will be at_build/default/rel/blockchain_http/log/*
.
Once started the application will start serving up the blockchain through a number of routes. Documentation for these routes will be added soon.
If running on Ubuntu, you will need the following packages installed before
running make release
:
wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb
sudo dpkg -i erlang-solutions_2.0_all.deb
sudo apt-get update
sudo apt install esl-erlang=1:23.2.3-1 cmake libsodium-dev libssl-dev
sudo apt install build-essential
This application does NOT serve up over TLS, and does NOT rate control, or access control clients. Please run this service behind a load balancer that terminates SSL and does some rate and access control.
docker build -t helium/api .
docker run -d --init \
--restart unless-stopped \
--publish 8080:8080/tcp \
--name api \
--mount type=bind,source=$HOME/api_data,target=/var/data \
-e DATABASE_RO_URL=postgresql://user:[email protected]:5432/helium_blockchain \
-e DATABASE_RW_URL=postgresql://user:[email protected]:5432/helium_blockchain \
-e DATABASE_RO_POOL_SIZE=10 \
helium/api
cd /path/to/blockchain-http
docker stop api
docker rm api
git pull
docker build -t helium/api .
docker run -d --init \
--restart unless-stopped \
--publish 8080:8080/tcp \
--name api \
--mount type=bind,source=$HOME/api_data,target=/var/data \
-e DATABASE_RO_URL=postgresql://user:[email protected]:5432/helium_blockchain \
-e DATABASE_RW_URL=postgresql://user:[email protected]:5432/helium_blockchain \
-e DATABASE_RO_POOL_SIZE=10 \
helium/api