Files
Hanzo DevandGitHub 2bffadc1b1 beluga: wire L3 to run zooai/node (replace luxd stopgap) (#5)
* beluga: wire L3 to run zooai/node (replace luxd stopgap)

Make the Beluga L3 (chainId 420420) a real thinking-chain instead of an
inert luxd subnet stub. The zoo-chain validators tracked beluga under
ghcr.io/luxfi/node (luxd) — a bare subnet runtime with no Zoo EVM and no
AI precompiles, so beluga could never instantiate (blockchainID empty).

Switch the zoo-chain ZooNetwork image to ghcr.io/zooai/node (zood), which
self-installs the Zoo EVM (AI/FHE/PQ/ZK precompiles, incl. the 0x0303
deterministic in-consensus inference precompile and the 0x0304 aivmbridge
that settles Tier-2 Proof-of-Thought to the Lux A-Chain), Zoo DEX and Zoo
FHE VM plugins at startup.

- base/network.yaml + zoo-{devnet,testnet,mainnet}/network-patch.yaml:
  image ghcr.io/luxfi/node -> ghcr.io/zooai/node.
- zoo-{devnet,testnet,mainnet}/statefulset-patch.yaml: command ./luxd ->
  zood (zood wraps luxfi/node, identical config.BuildFlagSet, so all flags
  apply verbatim). Beluga's blockchainID is appended to --track-chains
  once the CreateChainTx mints it on the Zoo primary network.
- base/beluga.yaml: enrich the ZooChain CR with vmId (Zoo EVM
  2n2njofjYvece8gZWCNnc1mqkcqfW6kbrhPRZPVzwxrSQrQ4gE) and
  genesisConfigMap (beluga-genesis), per the operator ZooChainSpec.
- base/kustomization.yaml: configMapGenerator beluga-genesis from
  k8s/base/beluga/{genesis.json,config.json} (stable name, no hash).
- k8s/base/beluga/: deployed copy of the canonical genesis+config
  (evmChainId 420420, BLG gas, precompile-upgrade activations at ts 0).

Image tags are floating `latest` only on devnet; testnet/mainnet pin the
immutable CI semver. The live rollout (restarts the L2 validators) is a
gated prod step performed after the ghcr.io/zooai/node image is verified.

* beluga: pin zood image to immutable sha-371ea17-amd64-node

ghcr.io/zooai/node built CGO-free (hermetic vendored build, digest
sha256:12e8244d…) and published. Pin the operator ZooChain CR image off the
floating 'latest' to the immutable build SHA per prod policy.

* beluga: pin devnet+testnet zood image to sha-371ea17-amd64-node (consistency)

* beluga(devnet): image is operator-derived from the ZooNetwork CR, not the patch

Per 'one and only one way, operator-derived': the zood image comes solely from
k8s/base/network.yaml (the ZooNetwork CR); the operator renders it. The patch
asserts only the luxd CLI flags the operator wrongly passes as ZOO_* env.

* beluga: pin zood image to clean semver 0.2.0 (not the sha hash)

Proper semver for all image pins — ghcr.io/zooai/node:0.2.0 (digest 12e8244d,
same build), not sha-371ea17-amd64-node. The ZooNetwork CR is the single source;
the operator renders it onto the StatefulSet.
2026-06-24 13:44:27 -07:00

59 lines
1.5 KiB
JSON

{
"chain": {
"name": "Beluga",
"type": "l3",
"parent": "zoo",
"parentChainId": 200200,
"evmChainId": 420420,
"networkId": 1,
"coin": "BLG",
"coinName": "BELUGA",
"decimals": 18
},
"block": {
"targetRate": 2,
"gasLimit": 15000000,
"maxBlockGasCost": 1000000
},
"fees": {
"minBaseFee": 25000000000,
"baseFeeChangeDenominator": 48,
"targetGas": 50000000
},
"precompiles": {
"ai": true,
"inference": true,
"aivmbridge": true,
"fhe": true,
"pq": true,
"dex": false,
"zk": true
},
"ai": {
"tier1": {
"precompile": "0x0300000000000000000000000000000000000003",
"mode": "deterministic-int8",
"model": "zen-nano/Qwen3-0.6B"
},
"tier2": {
"precompile": "0x0300000000000000000000000000000000000004",
"settlement": "proof-of-thought",
"chain": "lux-a-chain-aivm"
}
},
"supply": {
"total": "100000000000000000000000000",
"safe": "60000000000000000000000000",
"inferencePool": "20000000000000000000000000",
"trainingBounties": "10000000000000000000000000",
"lpSeeding": "10000000000000000000000000"
},
"genesis": {
"file": "genesis.json",
"safeAddress": "0xBe106a0000000000000000000000000000000001",
"inferencePoolAddress": "0xBe106a0000000000000000000000000000000002",
"trainingBountiesAddress": "0xBe106a0000000000000000000000000000000003",
"lpSeedingAddress": "0xBe106a0000000000000000000000000000000004"
}
}