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

58 lines
2.9 KiB
YAML

# Zoo mainnet EVM L2 — luxd RLP import spec.
#
# ─────────────────────────────────────────────────────────────────────────────
# RETIRED 2026-06-16 — superseded by snapshot-native/ (native ZAP replication).
# Boot no longer runs admin_importChain. The historic RLP below was imported
# ONCE; that state now lives in the S3 snapshot stream (zoo/mainnet/zaprepl) and
# is restored on boot by the luxd binary (database >= v1.20.3, restore-on-boot).
# This file is retained ONLY as the authoritative provenance record of the
# one-time chain-200200 seed (source commit, sha256, tip block). Do not re-enable
# the import path — snapshotSchedule.includeRlpExports is false.
# See: ../zoo-mainnet/snapshot-native/ and k8s/boot/luxd-boot.sh.
# ─────────────────────────────────────────────────────────────────────────────
#
# Source of truth for the one-time historic-state restore on the Zoo L2 EVM
# (chainId 200200) that runs as a tenant on Lux Network mainnet validators.
#
# As of 2026-06-01 this manifest is now realized through
# LuxNetwork.spec.tenantImports[] in
# lux/universe/k8s/lux-mainnet/network.yaml. The operator emits a content-
# hash-addressed tenant-import init container; luxd-startup.yaml runs a
# generic loop over operator-written JSON markers. Edits to this spec:
#
# 1. update sourceURL/sha256/blockchainID below as the authoritative record,
# 2. update lux/universe/k8s/lux-mainnet/network.yaml tenantImports[]
# entry with `tenant: zoo` to match,
# 3. apply both. The operator picks up the change, content hash flips,
# luxd-startup re-runs admin_importChain on next reconcile.
#
# No version-string bumping. No per-tenant shell blocks anywhere.
apiVersion: lux.network/v1alpha1
kind: TenantImport
metadata:
name: zoo-mainnet-200200
namespace: lux-mainnet
labels:
app.kubernetes.io/part-of: zoo-network
lux.network/tenant: zoo
spec:
chainAlias: zoo
chainID: 200200
vmID: vvSpHzUWYVAYgEwQBTfc6Nd8PGXRmDaLaFYgrGCuQKKRKzY2v
blockchainID: 2wbPWcyuNUimWW7YMq3gymTTpHjP9Lsm7GpmcyWimEs9kyTAAH
rlpFile: /data/zoo-mainnet-200200.rlp
rlpSource:
type: git
repo: github.com/luxfi/state
commit: df8c246
path: exports/zoo-mainnet-200200/blocks.rlp
sha256: 0850841a368dd1f85ae09d40f0552aecb679225b58ce4524b2d0a3337c7afc98
sizeBytes: 1356798
blocks: 800
sentinel: /data/.zoo_rlp_imported_v1
chaindataDir: /data/chainData/network-1/2wbPWcyuNUimWW7YMq3gymTTpHjP9Lsm7GpmcyWimEs9kyTAAH
importedAt: "2026-05-25T23:01:33Z"
importedVia: admin_importChain
tipBlock: 799
tipHash: "0xd6f92941bb2ac91dfd2443f32b0d93f2730e6cc81ddb2edd3f35720a9e1f72b8"