mirror of
https://github.com/hanzoai/bootnode.git
synced 2026-10-25 02:31:30 +00:00
Turn lux.cloud into a live graphical fleet dashboard for the managed luxd fleet (devnet/testnet/mainnet, 5 validators each on do-sfo3-lux-k8s). Backend (read-only collector, no mutations, no monolith dependency): - core/chains/lux_fleet.py: reads the operator LuxNetwork CR (lux.cloud/v1) for validators/version/plugin-set/phase, lists luxd-N pods + per-pod LB Services, and queries luxd JSON-RPC per node (info.getNodeVersion/getNodeID/ peers/isBootstrapped, C-Chain eth_blockNumber, P-Chain platform.getHeight), plus a native D-Chain DEX summary. Aggregates all 3 nets concurrently. - fleet_app.py: minimal standalone FastAPI exposing GET /v1/fleets/lux/overview (public, read-only). Reuses the bootnode api image; isolated from the (currently import-broken) monolith. - fleets/__init__.py: same overview endpoint also mounted on the main router. - Uses a READ-ONLY lux-k8s kubeconfig from KMS; only public chain data leaves. Frontend (Next.js 16, Lux white-label, auto by hostname): - lib/fleet.ts: typed client + health/status derivations. - components/lux/fleet-dashboard.tsx: graphical multi-net dashboard — totals, world topology map, per-network cards (phase, version, plugin-set, peers, C-Chain height, DEX state, per-chain C/P/X/D bootstrap), expandable per-node tables (node ID, version, peers, heights). Auto-refresh 15s. - app/fleet/page.tsx: public /fleet page (the lux.cloud fleet dashboard). - components/lux/fleet-strip.tsx + page.tsx: live fleet status strip on the landing hero. - navbar + dashboard nav: Fleet links; register existing Lux fleet mgmt page. - brand.ts: add skillsOrg (fixes pre-existing typecheck/build break). Deploy: infra/k8s/lux-fleet.yaml — lux-fleet Deployment/Service + ExternalSecret (lux-k8s RO kubeconfig from KMS) + ingress path /v1/fleets/lux/overview on api.cloud.lux.network. Verified: collector live against all 3 nets (real heights/peers/versions/DEX); api + collector tests pass (8/8); web typecheck + production build green; /fleet renders live data in browser (screenshot).
Hanzo Nodes API
Multi-chain blockchain infrastructure platform providing RPC, APIs, WebSockets, Webhooks, and ERC-4337 bundling.
Features
- Multi-Chain RPC: 100+ EVM chains with load balancing
- Token API: ERC-20 balances, transfers, prices
- NFT API: ERC-721/1155 ownership, metadata, transfers
- Wallet API: Portfolio tracking, activity history
- WebSocket Subscriptions: Real-time blockchain events
- Webhooks: Event notifications with delivery tracking
- ERC-4337 Bundler: Account abstraction with gasless transactions
- Gas API: Real-time gas estimates and EIP-1559 data
Quick Start
# Start dependencies
docker compose up -d postgres redis clickhouse
# Run API locally
uv run uvicorn bootnode.main:app --reload
# Or with Docker
docker compose up -d
API Endpoints
GET /health- Health checkPOST /v1/rpc/{chain}/{network}- JSON-RPC proxyGET /v1/tokens/{chain}/balance/{address}- Token balancesGET /v1/nfts/{chain}/owner/{address}- NFT ownershipPOST /v1/webhooks- Create webhookWS /v1/ws/{chain}/{network}- WebSocket subscriptions
Environment Variables
DATABASE_URL=postgresql+asyncpg://...
REDIS_URL=redis://...
DATASTORE_URL=clickhouse://...
JWT_SECRET=...
Documentation
- API Docs: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
License
BSD-3-Clause