- Updated branding from "SolaceScanScout" to "Solace" across various files including deployment scripts, API responses, and documentation. - Changed default base URL for Playwright tests and updated security headers to reflect the new branding. - Enhanced README and API documentation to include new authentication endpoints and product access details. This refactor aligns the project branding and improves clarity in the API documentation.
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 SolaceScan 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": "SolaceScan",
"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.