The fix-suffix workaround (hanzofix/zoofix/spcfix/parsfix) is dead.
luxfi/genesis bootstrap-chain now derives the P-chain CreateChainTx
name from canonical genesis content (commit 3a072e7 there), so
re-bootstraps are idempotent and never collide on P-chain. The
user-facing brand identifier ("hanzo", "zoo", "spc", "pars") lives
exclusively at this chain-aliases ConfigMap layer.
Per-cluster changes:
- lux-testnet + lux-devnet chain-aliases.yaml: alias map now has
only brand names; legacy "fix" suffix removed. BIDs point at the
current live backing chains (live cluster CMs already updated via
kubectl apply 2026-06-02).
- testnet explorer.yaml: stale "re-bootstrapped as zoofix" comment
removed (the comment leaked a workaround name into config).
- testnet ingress-chains.yaml: "backed by zoofix chain" → "backed
by blockchain ID LXuiihy…WeQ".
- testnet network.yaml, api-gateway-gateway-config.yaml,
dead-chains-cm.yaml, lux-indexer.yaml: comments updated to refer
to live BIDs/aliases instead of stale fix-suffix names.
- lux-mainnet/lux-indexer.yaml: stale "parsv4/spcv4/zoofix" example
list removed.
- lux-k8s/api-gateway/ingresses.yaml: "LXuiihy... zoofix dormant"
note rewritten to reflect promotion to live zoo backing chain.
- lux-k8s/validators/crd-resources.yaml: indexer-zoo CR no longer
sets chainAlias: zoofix or routes /ext/bc/zoofix/rpc; routes
/ext/bc/LXuiihy…WeQ/rpc + relies on alias resolution for /zoo/rpc.
No BID changes here — only naming hygiene. Live cluster CM updates
were applied imperatively on 2026-06-02 (chain-aliases + explorer-
chains in lux-testnet and lux-devnet namespaces).
254 lines
6.6 KiB
YAML
254 lines
6.6 KiB
YAML
---
|
|
###############################################################################
|
|
# IngressRoutes: app chain EVM chain explorers (Testnet)
|
|
#
|
|
# Domain convention mirrors mainnet:
|
|
# explore-{chain}-test.lux.network -> unified explorer SPA (explorer:80)
|
|
# api-explore-{chain}-test.lux.network -> unified explorer API (explorer:8090)
|
|
#
|
|
# The unified explorer (ghcr.io/luxfi/explorer:1.2.11) serves both the SPA
|
|
# and the per-chain indexer API from the same Go binary. The blockscout-prefix-*
|
|
# middlewares (defined below in this file) add the /v1/indexer/{slug} prefix
|
|
# to API requests so the explorer's slug dispatcher routes to the right
|
|
# per-chain SQLite database.
|
|
#
|
|
# TLS via hanzoai/ingress ACME certResolver with Cloudflare DNS challenge.
|
|
# DNS: *.lux.network wildcard A record -> 134.199.138.27 (lux-k8s hanzoai/ingress LB).
|
|
###############################################################################
|
|
|
|
###############################################################################
|
|
# Middlewares
|
|
###############################################################################
|
|
apiVersion: hanzo.ai/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: mainpage-rewrite
|
|
namespace: lux-testnet
|
|
spec:
|
|
replacePathRegex:
|
|
regex: ^/main-page/(.*)
|
|
replacement: /homepage/$1
|
|
---
|
|
apiVersion: hanzo.ai/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: cors-allow-all
|
|
namespace: lux-testnet
|
|
spec:
|
|
headers:
|
|
accessControlAllowOriginList: ["*"]
|
|
accessControlAllowMethods: [GET, POST, PUT, DELETE, OPTIONS]
|
|
accessControlAllowHeaders: ["*"]
|
|
accessControlMaxAge: 100
|
|
addVaryHeader: true
|
|
---
|
|
apiVersion: hanzo.ai/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: blockscout-prefix-cchain
|
|
namespace: lux-testnet
|
|
spec:
|
|
addPrefix:
|
|
prefix: /v1/indexer/cchain
|
|
---
|
|
apiVersion: hanzo.ai/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: blockscout-prefix-hanzo
|
|
namespace: lux-testnet
|
|
spec:
|
|
addPrefix:
|
|
prefix: /v1/indexer/hanzo
|
|
---
|
|
apiVersion: hanzo.ai/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: blockscout-prefix-zoo
|
|
namespace: lux-testnet
|
|
spec:
|
|
addPrefix:
|
|
prefix: /v1/indexer/zoo
|
|
---
|
|
apiVersion: hanzo.ai/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: blockscout-prefix-pars
|
|
namespace: lux-testnet
|
|
spec:
|
|
addPrefix:
|
|
prefix: /v1/indexer/pars
|
|
---
|
|
apiVersion: hanzo.ai/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: blockscout-prefix-spc
|
|
namespace: lux-testnet
|
|
spec:
|
|
addPrefix:
|
|
prefix: /v1/indexer/spc
|
|
---
|
|
###############################################################################
|
|
# C-Chain explorer (testnet)
|
|
###############################################################################
|
|
apiVersion: hanzo.ai/v1alpha1
|
|
kind: IngressRoute
|
|
metadata:
|
|
name: lux-explorer-cchain-testnet
|
|
namespace: lux-testnet
|
|
labels:
|
|
app: lux-explorer
|
|
chain: cchain
|
|
network: testnet
|
|
spec:
|
|
entryPoints:
|
|
- websecure
|
|
routes:
|
|
- kind: Rule
|
|
match: Host(`explore-cchain-test.lux.network`) || Host(`explore-c-test.lux.network`)
|
|
services:
|
|
- name: explorer
|
|
port: 80
|
|
- kind: Rule
|
|
match: Host(`api-explore-cchain-test.lux.network`) || Host(`api-explore-c-test.lux.network`)
|
|
middlewares:
|
|
- name: mainpage-rewrite
|
|
- name: blockscout-prefix-cchain
|
|
- name: cors-allow-all
|
|
services:
|
|
- name: explorer
|
|
port: 8090
|
|
tls:
|
|
certResolver: letsencrypt
|
|
---
|
|
###############################################################################
|
|
# Hanzo explorer (testnet)
|
|
###############################################################################
|
|
apiVersion: hanzo.ai/v1alpha1
|
|
kind: IngressRoute
|
|
metadata:
|
|
name: lux-explorer-hanzo-testnet
|
|
namespace: lux-testnet
|
|
labels:
|
|
app: lux-explorer
|
|
chain: hanzo
|
|
network: testnet
|
|
spec:
|
|
entryPoints:
|
|
- websecure
|
|
routes:
|
|
- kind: Rule
|
|
match: Host(`explore-hanzo-test.lux.network`)
|
|
services:
|
|
- name: explorer
|
|
port: 80
|
|
- kind: Rule
|
|
match: Host(`api-explore-hanzo-test.lux.network`)
|
|
middlewares:
|
|
- name: mainpage-rewrite
|
|
- name: blockscout-prefix-hanzo
|
|
- name: cors-allow-all
|
|
services:
|
|
- name: explorer
|
|
port: 8090
|
|
tls:
|
|
certResolver: letsencrypt
|
|
---
|
|
###############################################################################
|
|
# Zoo explorer (testnet) — backed by blockchain ID LXuiihy…WeQ
|
|
###############################################################################
|
|
apiVersion: hanzo.ai/v1alpha1
|
|
kind: IngressRoute
|
|
metadata:
|
|
name: lux-explorer-zoo-testnet
|
|
namespace: lux-testnet
|
|
labels:
|
|
app: lux-explorer
|
|
chain: zoo
|
|
network: testnet
|
|
spec:
|
|
entryPoints:
|
|
- websecure
|
|
routes:
|
|
- kind: Rule
|
|
match: Host(`explore-zoo-test.lux.network`)
|
|
services:
|
|
- name: explorer
|
|
port: 80
|
|
- kind: Rule
|
|
match: Host(`api-explore-zoo-test.lux.network`)
|
|
middlewares:
|
|
- name: mainpage-rewrite
|
|
- name: blockscout-prefix-zoo
|
|
- name: cors-allow-all
|
|
services:
|
|
- name: explorer
|
|
port: 8090
|
|
tls:
|
|
certResolver: letsencrypt
|
|
---
|
|
###############################################################################
|
|
# Pars explorer (testnet)
|
|
###############################################################################
|
|
apiVersion: hanzo.ai/v1alpha1
|
|
kind: IngressRoute
|
|
metadata:
|
|
name: lux-explorer-pars-testnet
|
|
namespace: lux-testnet
|
|
labels:
|
|
app: lux-explorer
|
|
chain: pars
|
|
network: testnet
|
|
spec:
|
|
entryPoints:
|
|
- websecure
|
|
routes:
|
|
- kind: Rule
|
|
match: Host(`explore-pars-test.lux.network`)
|
|
services:
|
|
- name: explorer
|
|
port: 80
|
|
- kind: Rule
|
|
match: Host(`api-explore-pars-test.lux.network`)
|
|
middlewares:
|
|
- name: mainpage-rewrite
|
|
- name: blockscout-prefix-pars
|
|
- name: cors-allow-all
|
|
services:
|
|
- name: explorer
|
|
port: 8090
|
|
tls:
|
|
certResolver: letsencrypt
|
|
---
|
|
###############################################################################
|
|
# SPC explorer (testnet)
|
|
###############################################################################
|
|
apiVersion: hanzo.ai/v1alpha1
|
|
kind: IngressRoute
|
|
metadata:
|
|
name: lux-explorer-spc-testnet
|
|
namespace: lux-testnet
|
|
labels:
|
|
app: lux-explorer
|
|
chain: spc
|
|
network: testnet
|
|
spec:
|
|
entryPoints:
|
|
- websecure
|
|
routes:
|
|
- kind: Rule
|
|
match: Host(`explore-spc-test.lux.network`)
|
|
services:
|
|
- name: explorer
|
|
port: 80
|
|
- kind: Rule
|
|
match: Host(`api-explore-spc-test.lux.network`)
|
|
middlewares:
|
|
- name: mainpage-rewrite
|
|
- name: blockscout-prefix-spc
|
|
- name: cors-allow-all
|
|
services:
|
|
- name: explorer
|
|
port: 8090
|
|
tls:
|
|
certResolver: letsencrypt
|