257 lines
8.0 KiB
YAML
257 lines
8.0 KiB
YAML
# Regenerated from the LIVE explorer-chains ConfigMap on do-sfo3-lux-k8s.
|
|
# Live is the source here: nothing reconciles k8s/, so this file drifts BEHIND
|
|
# the cluster as often as ahead, and it had drifted badly -- it was missing the
|
|
# osage chain entirely, missing every graph: block, carrying a pars chain_id
|
|
# (494950) the chain does not use, and holding a luxd-headless URL for hanzo
|
|
# where the cluster runs the one that works. Applying it would have been a
|
|
# downgrade, not a fix.
|
|
---
|
|
###############################################################################
|
|
# Unified Lux Explorer — Devnet
|
|
#
|
|
# Single Go binary `ghcr.io/luxfi/explorer:1.2.11` that indexes every EVM
|
|
# non-primary chain on this network into per-chain SQLite databases under /data/{slug}
|
|
# and serves the embedded SPA + /v1/indexer/{slug}/* + /v1/graph/* +
|
|
# /v1/explorer/admin/* + /v1/explorer/realtime on :8090.
|
|
#
|
|
# Replaces Blockscout (indexer-{slug}-indexer Deployments) + their
|
|
# per-chain PostgreSQL StatefulSets (indexer-{slug}-pg) + the
|
|
# lux-explorer/explorer-devnet-v2 Deployment. Postgres-free indexer.
|
|
#
|
|
# zoo app chain EVM is not bootstrapped on devnet luxd-* nodes (verified
|
|
# 2026-05-24: /v1/chain/zoo/rpc returns 404). Declared with enabled:false
|
|
# until the zoo app chain EVM is tracked on devnet validators.
|
|
###############################################################################
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: explorer-chains
|
|
namespace: lux-devnet
|
|
labels:
|
|
app: explorer
|
|
network: devnet
|
|
data:
|
|
chains.yaml: |
|
|
data_dir: /data
|
|
http_addr: :8090
|
|
static_dir: /etc/explorer/static
|
|
|
|
brand_default:
|
|
name: Lux Explorer
|
|
coin: LUX
|
|
accent_color: "#5cf"
|
|
icon_file: /etc/explorer/static/icon-lux.svg
|
|
logo_file: /etc/explorer/static/logo-lux.svg
|
|
icon_url: /icon.svg
|
|
logo_url: /logo.svg
|
|
|
|
networks:
|
|
- { label: Mainnet, domain: explore.lux.network, chain_id: 96369 }
|
|
- { label: Testnet, domain: testnet.explore.lux.network, chain_id: 96368 }
|
|
- { label: Devnet, domain: devnet.explore.lux.network, chain_id: 96367 }
|
|
|
|
# Per-chain RPC URLs use luxd's chain.name aliases (hanzo/zoo/pars/spc/osage)
|
|
# registered by chain manager at VM init (see node/chains/manager.go:752).
|
|
# No literal blockchain IDs anywhere — survives re-bootstraps without edits.
|
|
chains:
|
|
- slug: cchain
|
|
name: Lux C-Chain
|
|
chain_id: 96367
|
|
type: evm
|
|
rpc: http://luxd-headless.lux-devnet.svc.cluster.local:9650/v1/chain/C/rpc
|
|
coin: LUX
|
|
enabled: true
|
|
default: true
|
|
indexer: { poll_interval: 30s }
|
|
# DEX settlement precompile (0x9999): logs indexed into the `dex` (CLOB) subgraph as Order/Market/Fill.
|
|
pool_manager: "0x0000000000000000000000000000000000009999"
|
|
graph:
|
|
enabled: true
|
|
subgraphs:
|
|
- { name: amm, schema: amm, enabled: true }
|
|
- { name: dex, schema: dex, enabled: true }
|
|
brand:
|
|
name: Lux C-Chain
|
|
coin: LUX
|
|
accent_color: "#5cf"
|
|
icon_file: /etc/explorer/static/icon-lux.svg
|
|
logo_file: /etc/explorer/static/logo-lux.svg
|
|
|
|
- slug: hanzo
|
|
name: Hanzo
|
|
chain_id: 36964
|
|
type: evm
|
|
rpc: http://luxd-headless.lux-devnet.svc.cluster.local:9650/v1/chain/hanzo/rpc
|
|
coin: AI
|
|
enabled: false
|
|
indexer: { poll_interval: 30s }
|
|
graph:
|
|
enabled: true
|
|
subgraphs:
|
|
- { name: amm, schema: amm, enabled: true }
|
|
brand: { name: Hanzo, coin: AI, accent_color: "#0b1220" }
|
|
|
|
- slug: zoo
|
|
name: Zoo
|
|
chain_id: 200202
|
|
type: evm
|
|
rpc: http://luxd-headless.lux-devnet.svc.cluster.local:9650/v1/chain/zoo/rpc
|
|
coin: ZOO
|
|
enabled: false
|
|
indexer: { poll_interval: 30s }
|
|
graph:
|
|
enabled: true
|
|
subgraphs:
|
|
- { name: amm, schema: amm, enabled: true }
|
|
brand:
|
|
name: Zoo
|
|
coin: ZOO
|
|
accent_color: "#FCF006"
|
|
icon_file: /etc/explorer/static/icon-zoo.svg
|
|
logo_file: /etc/explorer/static/logo-zoo.svg
|
|
|
|
- slug: pars
|
|
name: Pars
|
|
chain_id: 7072
|
|
type: evm
|
|
rpc: http://luxd-headless.lux-devnet.svc.cluster.local:9650/v1/chain/pars/rpc
|
|
coin: PARS
|
|
enabled: false
|
|
indexer: { poll_interval: 30s }
|
|
graph:
|
|
enabled: true
|
|
subgraphs:
|
|
- { name: amm, schema: amm, enabled: true }
|
|
brand: { name: Pars, coin: PARS, accent_color: "#15803d" }
|
|
|
|
- slug: spc
|
|
name: SPC
|
|
chain_id: 36912
|
|
type: evm
|
|
rpc: http://luxd-headless.lux-devnet.svc.cluster.local:9650/v1/chain/spc/rpc
|
|
coin: SPC
|
|
enabled: false
|
|
indexer: { poll_interval: 30s }
|
|
graph:
|
|
enabled: true
|
|
subgraphs:
|
|
- { name: amm, schema: amm, enabled: true }
|
|
brand: { name: SPC, coin: SPC, accent_color: "#0ea5e9" }
|
|
|
|
- slug: osage
|
|
name: Osage
|
|
chain_id: 1873
|
|
type: evm
|
|
rpc: http://luxd-headless.lux-devnet.svc.cluster.local:9650/v1/chain/osage/rpc
|
|
coin: OSG
|
|
enabled: false
|
|
indexer: { poll_interval: 30s }
|
|
graph:
|
|
enabled: true
|
|
subgraphs:
|
|
- { name: amm, schema: amm, enabled: true }
|
|
brand: { name: Osage, coin: OSG, accent_color: "#dc2626" }
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: explorer-data
|
|
namespace: lux-devnet
|
|
labels:
|
|
app: explorer
|
|
network: devnet
|
|
spec:
|
|
accessModes: [ReadWriteOnce]
|
|
storageClassName: do-block-storage-retain
|
|
resources:
|
|
requests:
|
|
storage: 50Gi
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: explorer
|
|
namespace: lux-devnet
|
|
labels:
|
|
app: explorer
|
|
network: devnet
|
|
spec:
|
|
replicas: 1
|
|
strategy: { type: Recreate }
|
|
selector:
|
|
matchLabels:
|
|
app: explorer
|
|
network: devnet
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: explorer
|
|
network: devnet
|
|
spec:
|
|
securityContext:
|
|
runAsUser: 65532
|
|
runAsNonRoot: true
|
|
fsGroup: 65532
|
|
imagePullSecrets:
|
|
- name: ghcr-luxfi
|
|
terminationGracePeriodSeconds: 60
|
|
containers:
|
|
- name: explorer
|
|
image: ghcr.io/luxfi/explorer:1.2.11
|
|
imagePullPolicy: IfNotPresent
|
|
args: [--config=/etc/explorer/chains.yaml]
|
|
ports:
|
|
- { name: http, containerPort: 8090 }
|
|
env:
|
|
- { name: DATA_DIR, value: /data }
|
|
- { name: HTTP_ADDR, value: ":8090" }
|
|
volumeMounts:
|
|
- { name: config, mountPath: /etc/explorer, readOnly: true }
|
|
- { name: data, mountPath: /data }
|
|
resources:
|
|
requests: { cpu: 250m, memory: 512Mi }
|
|
limits: { cpu: "2", memory: 4Gi }
|
|
readinessProbe:
|
|
httpGet: { path: /health, port: http }
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
failureThreshold: 6
|
|
livenessProbe:
|
|
httpGet: { path: /health, port: http }
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 30
|
|
timeoutSeconds: 10
|
|
failureThreshold: 5
|
|
startupProbe:
|
|
httpGet: { path: /health, port: http }
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 5
|
|
timeoutSeconds: 5
|
|
failureThreshold: 30
|
|
volumes:
|
|
- name: config
|
|
configMap: { name: explorer-chains }
|
|
- name: data
|
|
persistentVolumeClaim: { claimName: explorer-data }
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: explorer
|
|
namespace: lux-devnet
|
|
labels:
|
|
app: explorer
|
|
network: devnet
|
|
spec:
|
|
type: ClusterIP
|
|
selector:
|
|
app: explorer
|
|
network: devnet
|
|
ports:
|
|
# gateway routes hit :80 (api-gateway-gateway gateway.json); legacy
|
|
# explorer-{env}-v2 ExternalName aliases in lux-explorer hit :8090.
|
|
- { name: http, port: 80, targetPort: 8090, protocol: TCP }
|
|
- { name: http-v2, port: 8090, targetPort: 8090, protocol: TCP }
|