Local Setup
Set up your own local Ergo explorer instance for development and testing purposes.
Introduction
The Ergo Blockchain Explorer is your interface with the blockchain and provides four services:
Chain Grabber
Dumps aggregated data blockchain → database
Explorer API
Provides HTTP API methods for querying on/off-chain data
UTX Tracker
Dumps unconfirmed transactions from mempool to local database
UTX Broadcaster
Broadcasts unconfirmed transactions to known peers
Sources
Resources
Ergo Bootstrap
Quickly deploy an Ergo blockchain cluster with useful tools for dApp development
View Repositoryergo-setup
Docker based Ergo setup (Node, Explorer & GraphQL). Similar to Ergo Bootstrap but with fewer options and not NixOS-based.
View RepositoryRunning Your Own Instance
1. Create Working Directory
mkdir explorer && cd "$_"2. Create Environment Files
Database Environment (.db_env)
echo "DB_URL=jdbc:postgresql://postgres:5432/explorer
DB_USER=postgres
DB_PASS=1234" > .db_envRedis Environment (.redis_env)
echo "REDIS_URL=redis://localhost:6379" > .redis_env3. Setup Explorer Frontend
git clone https://github.com/ergoplatform/explorer-frontend
sudo mkdir -p front/build
sudo cp -r explorer-frontend/build /front
sudo mkdir front/config
sudo vi front/config/app.config.js
sudo vi docker-compose.yaml4. Setup Explorer Backend
git clone https://github.com/ergoplatform/explorer-backend
cd explorer-backend/modules
# Configure services
vi chain-grabber/src/main/resources/application.conf
vi explorer-api/src/main/resources/application.conf
vi utx-tracker/src/main/resources/application.conf
vi utx-broadcaster/src/main/resources/application.conf
# Create docker network
docker network create explorer-network5. Booting Services
Configure other services (nginx, postgres, redis, adminer) according to their documentation
# Run from /explorer/
docker-compose up -d
# To make sure everything is up and working
docker ps -a6. Configuration Files
app.config.js
Paste the following into app.config.js. apiUrl points to your backend API, environments.url points to your frontend:
var __APP_CONFIG__ = {
apiUrl: 'https://api.ergoplatform.org',
alternativeLogo: false,
environments: [
{
name: 'Mainnet',
url: 'https://explorer.ergoplatform.org',
},
],
};
if (typeof global !== 'undefined') {
global.__APP_CONFIG__ = __APP_CONFIG__;
}
docker-compose.yaml
Complete Docker Compose configuration:
version: '3.4'
services:
nginx:
image: nginx:1.17.9-alpine
ports:
- "443:443"
volumes:
- /data/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- /data/nginx/ssl:/etc/ssl:ro
- /explorer/front/build:/usr/share/nginx/html
- /explorer/front/config:/usr/share/nginx/config
networks:
- explorer-network
depends_on:
- api
postgres:
image: postgres:11-alpine
shm_size: 2g
environment:
POSTGRES_PASSWORD: <password>
ports:
- "5432:5432"
volumes:
- /data/postgres:/var/lib/postgresql/data:rw
networks:
- explorer-network
redis:
image: redis:latest
restart: always
command: ["redis-server"]
ports:
- "127.0.0.1:6379:6379"
volumes:
- /data/redis:/usr/local/etc/redis
networks:
- explorer-network
adminer:
image: adminer:4-standalone
ports:
- "8082:8080"
networks:
- explorer-network
grabber:
image: oskin1/chain-grabber:latest
networks:
- explorer-network
env_file:
- .db_env
depends_on:
- postgres
api:
image: oskin1/explorer-api:latest
ports:
- "8081:8081"
networks:
- explorer-network
env_file:
- .db_env
depends_on:
- postgres
- redis
utx-tracker:
image: oskin1/utx-tracker:latest
networks:
- explorer-network
env_file:
- .db_env
depends_on:
- postgres
utx-broadcaster:
image: oskin1/utx-broadcaster:latest
networks:
- explorer-network
env_file:
- .redis_env
depends_on:
- redis
networks:
explorer-network:
external: true
Manual Instance
Prerequisites
sudo apt update
sudo apt full-upgrade
## SDKMAN
curl -s "https://get.sdkman.io" | bash
sdk install java
sdk install sbt
## PostgreSQL
sudo apt install postgresql
sudo su postgres
createuser ergo -P --interactiveLoad Database Schema
psql
create database explorer;
\c explorer;
\i /explorer-backend/modules/explorer-core/src/main/resources/db/V9__Schema.sqlBuild Services
docker build explorer-backend/modules/chain-grabber/
docker build explorer-backend/modules/explorer-api/
docker build explorer-backend/modules/utx-tracker/
docker build explorer-backend/modules/utx-broadcaster/