8.6 KiB
Comprehensive Error Report and Fixes
Generated: $(date)
Status: 🔴 CRITICAL ISSUES FOUND
Executive Summary
The log analysis revealed 10 errors and 2 warnings. The primary issue is that the backend API server is not running, which causes all API endpoints to fail.
Critical Issues
- ❌ Backend API server is not running - All API endpoints return HTTP 000 (connection refused)
- ❌ Local API endpoints inaccessible -
/api/v2/stats,/api/v1/blocks,/api/v1/transactionsall failing - ⚠️ DNS resolution issue for explorer.d-bis.org (but HTTPS works, so likely tool issue)
Working Components
- ✅ RPC connectivity - ChainID 138 RPC is accessible (block 148937)
- ✅ Blockscout API - Both blocks and transactions endpoints working
- ✅ Frontend files - All configuration correct (ethers, Blockscout API, ChainID 138)
- ✅ HTTPS connectivity - explorer.d-bis.org is accessible
Detailed Error Analysis
1. Backend API Server Not Running ❌
Error: All API endpoints return HTTP 000 (connection refused)
Affected Endpoints:
/api/v2/stats- Stats endpoint/api/v1/blocks- Blocks listing/api/v1/transactions- Transactions listing/api?module=block&action=eth_block_number- Etherscan-compatible API
Root Cause: The backend Go server (backend/api/rest/main.go) is not running on port 8080.
Impact:
- Frontend cannot load stats, blocks, or transactions from local API
- Explorer shows "Loading..." indefinitely
- Users see errors when trying to use the explorer
Solution:
Option 1: Run Backend Server Directly
cd /home/intlc/projects/proxmox/explorer-monorepo/backend/api/rest
# Set environment variables
export CHAIN_ID=138
export PORT=8080
export DB_HOST=localhost
export DB_PORT=5432
export DB_USER=explorer
export DB_PASSWORD=your_password
export DB_NAME=explorer
# Run the server
go run main.go
Option 2: Build and Run
cd /home/intlc/projects/proxmox/explorer-monorepo/backend/api/rest
# Build
go build -o api-server main.go
# Run
./api-server
Option 3: Create Systemd Service
Create /etc/systemd/system/explorer-api.service:
[Unit]
Description=Explorer API Server
After=network.target postgresql.service
[Service]
Type=simple
User=explorer
WorkingDirectory=/home/intlc/projects/proxmox/explorer-monorepo/backend/api/rest
Environment="CHAIN_ID=138"
Environment="PORT=8080"
Environment="DB_HOST=localhost"
Environment="DB_PORT=5432"
Environment="DB_USER=explorer"
Environment="DB_PASSWORD=your_password"
Environment="DB_NAME=explorer"
ExecStart=/usr/bin/go run main.go
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
Then:
sudo systemctl daemon-reload
sudo systemctl enable explorer-api
sudo systemctl start explorer-api
sudo systemctl status explorer-api
2. Database Configuration Required ⚠️
Issue: Backend requires database connection but configuration may be missing.
Check Database Config:
The backend uses github.com/explorer/backend/database/config. Check:
backend/database/config/config.go- Database configuration loader- Environment variables or config file for database credentials
Required Environment Variables:
DB_HOST=localhost # Database host
DB_PORT=5432 # Database port
DB_USER=explorer # Database user
DB_PASSWORD=your_password # Database password
DB_NAME=explorer # Database name
Verify Database Connection:
# Test PostgreSQL connection
psql -h localhost -U explorer -d explorer -c "SELECT 1;"
# Or using connection string
psql "postgresql://explorer:password@localhost:5432/explorer" -c "SELECT 1;"
3. DNS Resolution Issue (Non-Critical) ⚠️
Error: DNS resolution failed for explorer.d-bis.org
Status: HTTPS connectivity works, so this is likely a tool issue (host command may not be available or configured).
Impact: None - the explorer is accessible via HTTPS.
Solution: No action needed. The host command may not be installed or DNS may be configured differently.
Frontend Status ✅
Configuration Check
All frontend configurations are correct:
- ✅ Ethers Library: Properly referenced with CDN fallbacks
- ✅ Blockscout API: Configured for ChainID 138 (
https://explorer.d-bis.org/api) - ✅ ChainID 138: Correctly set in frontend code
- ✅ Error Handling: 16 console.error calls and 26 try-catch blocks found
Frontend API Configuration
The frontend is configured to use:
- API_BASE:
/api(relative path, expects backend on same domain) - Blockscout API:
https://explorer.d-bis.org/api(for ChainID 138) - CHAIN_ID:
138(Hyperledger Besu)
Note: Since the backend is not running, the frontend will fall back to Blockscout API for ChainID 138, which is working correctly.
Blockscout API Status ✅
Blockscout API is fully operational:
- ✅ Blocks Endpoint:
/api/v2/blocks- Working - ✅ Transactions Endpoint:
/api/v2/transactions- Working
Sample Response (Blocks):
{
"hash": "0x8009c73dca6df6f8238f312d1620135a2828af0035ab42d00c1d4388752c980e",
"height": 149477,
"gas_used": "0",
"gas_limit": "30000000",
...
}
Sample Response (Transactions):
{
"hash": "0xf63943dda9803d0afdd8c4c9bea990054cd8cf16482da7a4265e0a700828888b",
"result": "success",
"type": 2,
...
}
Network Status ✅
RPC Connectivity
- Status: ✅ Accessible
- Current Block: 148937
- RPC URL:
http://192.168.11.250:8545 - Chain ID: 138
HTTPS Connectivity
- Status: ✅ Accessible
- URL:
https://explorer.d-bis.org - Blockscout API: Working correctly
Immediate Action Items
Priority 1: Start Backend Server
-
Check database configuration:
cd /home/intlc/projects/proxmox/explorer-monorepo/backend cat database/config/config.go # Review config -
Set environment variables:
export CHAIN_ID=138 export PORT=8080 export DB_HOST=localhost export DB_PORT=5432 export DB_USER=explorer export DB_PASSWORD=your_password export DB_NAME=explorer -
Start the server:
cd backend/api/rest go run main.go -
Verify it's running:
curl http://localhost:8080/health curl http://localhost:8080/api/v2/stats
Priority 2: Verify Database
-
Check if database exists:
psql -h localhost -U explorer -l | grep explorer -
Check database schema:
psql -h localhost -U explorer -d explorer -c "\dt" -
Verify tables exist:
blockstransactionsaddresses
Priority 3: Test All Endpoints
After starting the backend, run the diagnostic script again:
cd /home/intlc/projects/proxmox/explorer-monorepo
./scripts/check-logs-and-errors.sh
Expected Behavior After Fixes
Once the backend is running:
- ✅
/api/v2/statsshould return statistics - ✅
/api/v1/blocksshould return block list - ✅
/api/v1/transactionsshould return transaction list - ✅
/api?module=block&action=eth_block_numbershould return latest block number - ✅ Frontend should load data from both local API and Blockscout
- ✅ Health endpoint
/healthshould return service status
Monitoring and Logging
Backend Logs
The backend uses Go's standard log package. Logs will show:
- Server startup:
Starting SolaceScanScout REST API server on :8080 - Request logs:
GET /api/v2/stats 200 2.5ms - Errors: Database connection errors, query failures, etc.
Frontend Console
Check browser console (F12) for:
- Ethers library loading status
- API call errors
- Network request failures
Health Check Endpoint
Once backend is running, check health:
curl http://localhost:8080/health
Expected response:
{
"status": "healthy",
"timestamp": "2025-12-24T08:55:07Z",
"services": {
"database": "ok",
"api": "ok"
},
"chain_id": 138,
"explorer": {
"name": "SolaceScanScout",
"version": "1.0.0"
}
}
Summary
✅ What's Working
- RPC connectivity (ChainID 138)
- Blockscout API (all endpoints)
- Frontend configuration
- HTTPS connectivity
❌ What's Broken
- Backend API server (not running)
- All local API endpoints
- Database connectivity check (can't verify without backend)
🔧 What Needs Fixing
- Start backend server (Priority 1)
- Verify database configuration (Priority 2)
- Test all endpoints (Priority 3)
Next Steps: Start the backend server and re-run the diagnostic script to verify all issues are resolved.