fix(lux-mainnet): decomplected chain tracking + alias resolution
Replace operator-default --track-all-chains with explicit
--track-chains=<4 canonical blockchain IDs>, so luxd validators stop
serving the orphan pars/spc/parsm chains that were left behind by
prior bootstrap iterations:
hanzo y5HBrn6EWRMysSmH4nHA2sgpwgcjChJjQ7upSjWSwsrPeg4Cc (chainId 36963)
zoo 2wbPWcyuNUimWW7YMq3gymTTpHjP9Lsm7GpmcyWimEs9kyTAAH (chainId 200200)
pars 2wYWjBHziTjfMJmUPZwsDdWhm96cWHo4vov1HPBmCYLXdbAZfM (chainId 7070, parsv4)
spc 2YTuJW9b1k7gDGgqZC58Wj6cT1qTzobx6SV8hiN22zT1L5qfHF (chainId 36911, spcv4)
Add --chain-aliases-file=/data/aliases.json so info.* APIs accept
human-readable names. luxd's HTTP router still keys by chain-name —
the user-facing rename pars←parsv4 is done at the api-gateway krakend
layer via backend url_pattern rewrites (committed separately to its CM
in cluster; source manifest TODO).
Net result: api.lux.network/ext/bc/{pars,spc,hanzo,zoo}/rpc return
the correct canonical chains with the correct chainIds and treasury
balances; no v3/v4 suffix exposed externally.
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# Canonical chain aliases for lux-mainnet luxd validators.
|
||||
# Loaded by luxd via --chain-aliases-file (see luxd-startup.yaml).
|
||||
#
|
||||
# Maps blockchainID → [alias names] for the 4 L2 EVMs:
|
||||
# hanzo (chainId 36963, coin AI)
|
||||
# zoo (chainId 200200, coin ZOO, 799 historic blocks)
|
||||
# pars (chainId 7070, coin PARS, 7B treasury) — actual chain name "parsv4"
|
||||
# spc (chainId 36911, coin SPC, 11B treasury) — actual chain name "spcv4"
|
||||
#
|
||||
# HTTP path rewrites /ext/bc/pars → /ext/bc/parsv4 live in
|
||||
# api-gateway-gateway-config.yaml (KrakenD).
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: chain-aliases
|
||||
namespace: lux-mainnet
|
||||
data:
|
||||
aliases.json: |
|
||||
{
|
||||
"y5HBrn6EWRMysSmH4nHA2sgpwgcjChJjQ7upSjWSwsrPeg4Cc": ["hanzo"],
|
||||
"2wbPWcyuNUimWW7YMq3gymTTpHjP9Lsm7GpmcyWimEs9kyTAAH": ["zoo"],
|
||||
"2wYWjBHziTjfMJmUPZwsDdWhm96cWHo4vov1HPBmCYLXdbAZfM": ["pars"],
|
||||
"2YTuJW9b1k7gDGgqZC58Wj6cT1qTzobx6SV8hiN22zT1L5qfHF": ["spc"]
|
||||
}
|
||||
@@ -1,22 +1,20 @@
|
||||
# luxd startup script for lux-mainnet.
|
||||
#
|
||||
# TENANT IMPORT COORDINATION — read before editing the Zoo block:
|
||||
# Canonical chain tracking + alias resolution (decomplected 2026-05-26):
|
||||
# --track-chains restricts luxd to the 4 good L2 EVM blockchain IDs
|
||||
# (orphan pars/spc/parsm chains are unreachable; their P-chain
|
||||
# registrations remain but no validator tracks them).
|
||||
# /data/aliases.json + --chain-aliases-file feeds info.* APIs with
|
||||
# human-readable names for the 4 L2 EVMs.
|
||||
# HTTP route renaming (e.g. /ext/bc/pars → parsv4 chain) is done at
|
||||
# the api-gateway-gateway krakend layer, NOT at luxd (luxd routes
|
||||
# only by chain-name).
|
||||
#
|
||||
# TENANT IMPORT COORDINATION (Zoo RLP block below):
|
||||
# The Zoo L2 EVM (chainId 200200) RLP import block inlined below is
|
||||
# contributed by the Zoo brand. Source of truth:
|
||||
# ~/work/zoo/universe/k8s/zoo-mainnet/luxd-rlp-import.yaml
|
||||
# (zooai/universe). Any change to Zoo's import spec (sentinel name,
|
||||
# RLP file, chainData dir, source commit) MUST update both files.
|
||||
#
|
||||
# Long-term fix: luxfi/operator should grow LuxNetwork.spec.tenantImports[]
|
||||
# so each brand-universe ships its own TenantImport CR and the operator
|
||||
# composes startup.sh from base (C-Chain) + per-tenant entries. Tracked
|
||||
# as TODO; until then, this file holds the composed result.
|
||||
#
|
||||
# Includes one-time RLP imports gated by sentinels under /data/:
|
||||
# .cchain_rlp_imported_v3 → /data/lux-mainnet-96369.rlp (C-Chain, 1.08M blocks)
|
||||
# .zoo_rlp_imported_v1 → /data/zoo-mainnet-200200.rlp (Zoo L2 EVM, 799 blocks)
|
||||
# Imports auto-fire on cold pod (sentinel absent + RLP present); idempotent across
|
||||
# pod restarts. Source-of-truth checked in here so it survives cluster rebuilds.
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
@@ -173,7 +171,7 @@ data:
|
||||
ARGS="$ARGS --network-require-validator-to-connect=true --network-allow-private-ips=true"
|
||||
ARGS="$ARGS --genesis-file=/data/genesis.json"
|
||||
ARGS="$ARGS --allow-genesis-update"
|
||||
ARGS="$ARGS --track-all-chains"
|
||||
ARGS="$ARGS --track-chains=y5HBrn6EWRMysSmH4nHA2sgpwgcjChJjQ7upSjWSwsrPeg4Cc,2wbPWcyuNUimWW7YMq3gymTTpHjP9Lsm7GpmcyWimEs9kyTAAH,2wYWjBHziTjfMJmUPZwsDdWhm96cWHo4vov1HPBmCYLXdbAZfM,2YTuJW9b1k7gDGgqZC58Wj6cT1qTzobx6SV8hiN22zT1L5qfHF"
|
||||
[ -n "$PUBLIC_IP" ] && ARGS="$ARGS --public-ip=$PUBLIC_IP"
|
||||
[ -n "$BOOTSTRAP_NODES" ] && ARGS="$ARGS --bootstrap-nodes=$BOOTSTRAP_NODES"
|
||||
|
||||
@@ -202,6 +200,17 @@ data:
|
||||
[START] luxd ${ARGS}" | head -c 200
|
||||
echo ""
|
||||
|
||||
# Canonical chain aliases (single source of truth: pars/spc routed to v4 chains)
|
||||
cat > /data/aliases.json <<'ALIASES'
|
||||
{
|
||||
"y5HBrn6EWRMysSmH4nHA2sgpwgcjChJjQ7upSjWSwsrPeg4Cc": ["hanzo"],
|
||||
"2wbPWcyuNUimWW7YMq3gymTTpHjP9Lsm7GpmcyWimEs9kyTAAH": ["zoo"],
|
||||
"2wYWjBHziTjfMJmUPZwsDdWhm96cWHo4vov1HPBmCYLXdbAZfM": ["pars"],
|
||||
"2YTuJW9b1k7gDGgqZC58Wj6cT1qTzobx6SV8hiN22zT1L5qfHF": ["spc"]
|
||||
}
|
||||
ALIASES
|
||||
ARGS="$ARGS --chain-aliases-file=/data/aliases.json"
|
||||
|
||||
/luxd/build/luxd $ARGS &
|
||||
LUXD_PID=$!
|
||||
set +e
|
||||
|
||||
Reference in New Issue
Block a user