Blockchain explorer for the Flux network, supporting Flux v9.0.0+ with Proof-of-Node (PoN) consensus. Built with Next.js 14 and backed by ClickHouse.
Three-component stack:
┌─────────────────────────────────────────────────────────────┐
│ Flux Blockchain │
│ (v9.0.0+ PoN) │
└────────────────────────┬────────────────────────────────────┘
│ RPC
┌─────────────┴─────────────┐
│ │
v v
┌──────────────────┐ ┌──────────────────┐
│ FluxIndexer │◄───────►│ ClickHouse │
│ (TypeScript) │ │ (Database) │
│ Port: 42067 │ │ Port: 8123 │
└────────┬─────────┘ └──────────────────┘
│
│ REST API
v
┌──────────────────┐
│ Flux Explorer │
│ (Next.js 14) │
│ Port: 42069 │
└──────────────────┘
| Component | Description |
|---|---|
| ClickHouse | Columnar database for blockchain data |
| FluxIndexer | TypeScript indexer with REST API |
| Flux Explorer | Next.js web interface |
- Block browsing with transaction details
- Transaction viewer with input/output visualization
- Address tracking with balance and history
- Rich list with FluxNode counts
- Network statistics and supply data
- Tier detection (CUMULUS, NIMBUS, STRATUS)
- START/CONFIRM transaction parsing
- Block producer statistics
- Live FluxNode count per address
- ClickHouse backend (~61GB vs ~260GB with PostgreSQL)
- Full sync in ~9 hours from genesis
- 120M+ transactions indexed
- Request coalescing for load reduction
- Cursor-based pagination
- Docker & Docker Compose v2
- 16GB RAM minimum
- 120GB storage
git clone https://github.com/Sikbik/flux-blockchain-explorer.git
cd flux-blockchain-explorer
docker compose -f docker-compose.production.yml up -d
# View logs
docker compose -f docker-compose.production.yml logs -f indexer
# Access services
# API: http://127.0.0.1:42067
# Explorer: http://127.0.0.1:42069# Stop
docker compose -f docker-compose.production.yml stop
# Rebuild service
docker compose -f docker-compose.production.yml build indexer
docker compose -f docker-compose.production.yml up -d indexer
# Status
docker compose -f docker-compose.production.yml ps
# Database size
docker exec fluxindexer-clickhouse clickhouse-client --query "
SELECT formatReadableSize(sum(bytes_on_disk)) FROM system.parts WHERE active
"flux-blockchain-explorer/
├── flux-indexer/ # Indexer service
│ ├── src/
│ │ ├── api/server.ts # REST API
│ │ ├── indexer/ # Sync and block processing
│ │ ├── database/ # ClickHouse connection
│ │ └── rpc/ # Flux daemon client
│ ├── docker/ # Docker configuration
│ └── Dockerfile
├── flux-explorer/ # Next.js frontend
│ ├── src/
│ │ ├── app/ # Pages
│ │ ├── components/ # UI components
│ │ └── lib/api/ # API clients
│ └── Dockerfile
└── docker-compose.production.yml
GET /health- Health checkGET /api/v1/status- Sync status
GET /api/v1/blocks/latest- Recent blocksGET /api/v1/blocks/:heightOrHash- Block detailsGET /api/v1/stats/dashboard- Dashboard stats
GET /api/v1/transactions/:txid- Transaction detailsPOST /api/v1/transactions/batch- Batch lookup
GET /api/v1/addresses/:address- Balance and statsGET /api/v1/addresses/:address/transactions- HistoryGET /api/v1/addresses/:address/utxos- UTXOs
GET /api/v1/richlist- Top holdersGET /api/v1/supply- Supply dataGET /api/v1/producers- Block producers
| Component | RAM | Storage |
|---|---|---|
| ClickHouse | 9-16GB | 61GB |
| FluxIndexer | 3-4GB | 50GB |
| Explorer | 100MB | 1GB |
| Total | ~16GB | ~112GB |
- Full sync: ~9 hours
- 2.1M+ blocks, 120M+ transactions
- ~65 blocks/second (bulk)
- Block lookup: <10ms
- Address transactions: <50ms
- Rich list: <100ms
CH_HOST=clickhouse
CH_HTTP_PORT=8123
CH_DATABASE=flux
FLUX_RPC_URL=http://127.0.0.1:16124
FLUX_RPC_USER=fluxrpc
FLUX_RPC_PASSWORD=your_password
INDEXER_BATCH_SIZE=1000
API_PORT=42067NEXT_PUBLIC_API_URL=http://127.0.0.1:42067
SERVER_API_URL=http://indexer:42067| Version | Type |
|---|---|
| v1 | Legacy transparent |
| v2 | Sprout shielded |
| v4 | Sapling shielded |
| v5/v6 | FluxNode operations |
| Tier | Collateral |
|---|---|
| CUMULUS | 1,000 FLUX |
| NIMBUS | 12,500 FLUX |
| STRATUS | 40,000 FLUX |
- PoW (version < 100): Equihash mining
- PoN (version >= 100): FluxNode signatures, ~30 second blocks
# Indexer
cd flux-indexer
npm install
npm run dev
# Explorer
cd flux-explorer
npm install
npm run devMIT License