Files
Hanzo DevandGitHub ea03508ca7 feat(k8s): unify with luxfi/universe — coherent boot + snapshot-native replication (#3)
Brings zoo to parity with lux: the SAME luxd-boot.sh (byte-identical to
luxfi/universe k8s/boot) drives every network, and native ZAP replication
(PQ-encrypted, restore-on-boot) replaces the boot-time admin_importChain (RLP)
path.

- k8s/boot/: shared entrypoint + mainnet/testnet/devnet env (ids 1/2/3,
  zoo EVM chainIds 200200/200201/200202, S3 path zoo/<net>/zaprepl,
  endpoint s3.zoo-system). Script is byte-identical to luxfi/universe.
- k8s/zoo-<net>/snapshot-native/: replicate-s3-creds + replicate-age secrets
  (fill from KMS) + ZooNetwork replication merge-patch. CRD already allows
  unknown fields, so spec.replication is accepted today.
- zoo-mainnet/luxd-rlp-import.yaml: RETIRED banner; kept as the provenance
  record of the one-time chain-200200 seed (now in the snapshot stream).
- SNAPSHOT-NATIVE-ROLLOUT.md: per-network apply order (devnet→testnet→mainnet).

Requires build-zoo rebuilt on database >= v1.20.3 and zooai operator
replication-env parity (mirror of luxfi/operator); until then the boot script
sets REPLICATE_* itself so replication works without operator changes.

Co-authored-by: Hanzo Dev <[email protected]>
2026-06-15 22:35:51 -07:00

1.1 KiB

Coherent luxd boot — zoo

luxd-boot.sh is byte-identical to luxfi/universe k8s/boot/luxd-boot.sh — one entrypoint for every network. Source a <net>.env, then run it:

set -a; . ./mainnet.env; set +a; ./luxd-boot.sh   # or testnet.env / devnet.env

It selects the network (id 1/2/3 — zoo shares the canonical Lux primary-network ids), stages plugins, sets the native-replication defaults, and execs luxd as a real staking validator (keys under <data>/staking; the zooai operator mounts the per-validator secret). The luxd binary (luxfi/database >= v1.20.3) restores from the S3 snapshot stream on boot — no RLP import, no genesis surgery.

Zoo differs from Lux only in: EVM chainId (200200/200201/200202), the S3 path (zoo/<net>/zaprepl), and the S3 endpoint (s3.zoo-system). All carried by the <net>.env, so the script itself stays universal.

In-cluster: mount this script as a ConfigMap and point the ZooNetwork node container command at /scripts/luxd-boot.sh, with <net>.env keys as env + the replicate-* secrets via envFrom (see ../zoo-<net>/snapshot-native/).