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).
32 lines
1.4 KiB
YAML
32 lines
1.4 KiB
YAML
---
|
|
# dead-chains ConfigMap consumed by the lux-operator (Rust). Listed
|
|
# blockchain IDs are SKIPPED in `check_bootstrap_progress` and classified
|
|
# as `MalformedIgnored` in LuxNetwork.status.chainStatuses. This lets the
|
|
# operator report a truthful "Running" phase when a chain has immutable
|
|
# on-chain genesis defects that no client can ever parse.
|
|
#
|
|
# Behavior is the union of this CM and `LuxNetworkSpec.deadChainIDs`. CM
|
|
# is per-namespace; CR field is per-network. Use the CM when the same
|
|
# tombstone applies to every LuxNetwork in the namespace (the common case
|
|
# for testnet, where there is one luxd LuxNetwork).
|
|
#
|
|
# Entries: one blockchain ID per line. Blank lines and `#` comments OK.
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: dead-chains
|
|
namespace: lux-testnet
|
|
labels:
|
|
app.kubernetes.io/part-of: lux-network
|
|
lux.network/network: testnet
|
|
data:
|
|
chains: |
|
|
# Testnet "zoo" ghost chain — CreateChainTx committed with malformed
|
|
# EVM genesis alloc address (41 hex chars, odd-length), EVM
|
|
# parseGenesis fails with "hex string of odd length" on every restart.
|
|
# CreateChainTx is immutable on P-Chain; the only remediation is to
|
|
# exclude it from bootstrap accounting. The live "zoo" alias points
|
|
# at blockchain ID LXuiihyiND2NyegTCZkZiraJs9jtngu6akaLyZMBYZ3MsLgWA
|
|
# (see chain-aliases ConfigMap).
|
|
ZAKwMk5cPp5B6RkHbxxoZWh2xBGMqd7TBR8UPBdAkaV7MGKWU
|