Files
2026-07-29 16:29:33 -07:00

185 lines
5.0 KiB
YAML

# Hanzo sovereign-L1 node Helm chart values
# Base config (used as defaults, override per network with values-{network}.yaml)
#
# SOVEREIGN-L1 MODEL: Hanzo's primary networkID EQUALS its EVM chainID (one ID per
# env), unlike Lux (networkID 1/2/3, chainID 96369/68/70). Hanzo does NOT run on the
# Lux C-Chain (96369) — that is Lux-network only.
network: devnet
# Network-specific settings
# networkID MUST match genesis.json networkID (node validates at startup)
# Hanzo: networkID == chainID (mainnet 36963 / testnet 36962 / devnet 36964)
# Because these are CUSTOM network IDs (not the well-known 1/2/3), upgradeConfig
# below MUST be enabled — the node has no built-in upgrade schedule for them.
networks:
mainnet:
networkID: 36963
chainID: 36963
# cChainID is DERIVED at network creation (blake-hash of the C-Chain genesis +
# createChainTx) — populated by the operator at provisioning (see PROVISIONING.md).
cChainID: ""
httpPort: 9630
stakingPort: 9631
namespace: hanzo-mainnet
testnet:
networkID: 36962
chainID: 36962
cChainID: ""
httpPort: 9640
stakingPort: 9641
namespace: hanzo-testnet
devnet:
networkID: 36964
chainID: 36964
cChainID: ""
httpPort: 9650
stakingPort: 9651
namespace: hanzo-devnet
# 5 replicas for production consensus
replicas: 5
image:
# luxd node image (Hanzo runs the same binary; the network is defined by genesis).
# Upstream OSS node is acceptable here per the registry rules.
repository: registry.digitalocean.com/hanzo/bootnode
tag: luxd-v1.23.14
pullPolicy: Always
imagePullSecrets:
- name: registry-hanzo
# Bootstrap configuration
# nodeIDs are DERIVED from Hanzo's validator staking keys (KMS) at provisioning —
# they are NOT committed here. The operator populates them from the hanzo-staking
# secret it generates (see PROVISIONING.md). Empty = first-genesis bring-up.
bootstrap:
nodeIDs: []
useHostnames: true
externalIPs: []
rlpImport:
enabled: false
baseUrl: ""
rlpFilename: ""
multiPart: false
parts: []
minHeight: 1
timeout: 7200
# Consensus settings (5-node network)
consensus:
sampleSize: 5
quorumSize: 4
sybilProtectionEnabled: false
requireValidatorToConnect: false
allowPrivateIPs: true
# Chain tracking — Hanzo's own sovereign network
chainTracking:
trackAllChains: true
trackedChains: []
aliases:
- hanzo
# Deployed chain configs (blockchain IDs for EVM chain config directories)
chainConfigs:
enabled: false
blockchainIDs: []
evmConfig: '{"admin-api-enabled":true,"eth-apis":["eth","eth-filter","net","web3","internal-eth","internal-blockchain","internal-transaction","internal-tx-pool","internal-account","internal-personal","debug","internal-debug","admin"],"rpc-gas-cap":50000000,"rpc-tx-fee-cap":100,"pruning-enabled":false,"allow-unfinalized-queries":true,"allow-unprotected-txs":true,"log-level":"info","state-sync-enabled":false,"allow-missing-tries":true}'
# Init container mode
initMode:
clearData: false
# Startup gating: wait for peers before starting the node
startupGate:
enabled: true
minPeers: 2
timeoutSeconds: 300
checkIntervalSeconds: 5
# Seed/snapshot restore configuration
seedRestore:
enabled: false
sourceType: None
objectStoreUrl: ""
markerPath: "/data/.seeded"
# Upgrade strategy
upgradeStrategy:
type: OnDelete
maxUnavailable: 1
# Health policy
healthPolicy:
requireInboundValidators: false
minInbound: 1
gracePeriodSeconds: 300
maxHeightSkew: 10
# Staking keys — generated by the operator from KMS (NEVER committed).
staking:
secretName: hanzo-staking
# Resources
resources:
requests:
memory: "1Gi"
cpu: "500m"
limits:
memory: "4Gi"
cpu: "2"
# Storage (DOKS hanzo-k8s)
storage:
size: 100Gi
storageClass: do-block-storage
# Node exposure
nodeServices:
enabled: true
type: LoadBalancer
annotations: {}
# Logging
logLevel: info
# Database
dbType: badgerdb
# API settings
api:
adminEnabled: true
metricsEnabled: true
indexEnabled: true
httpAllowedHosts: "*"
# Upgrade config override — REQUIRED for Hanzo (custom network IDs 36963/62/64 have
# no built-in upgrade schedule). All phases activated at genesis (past timestamps).
upgradeConfig:
enabled: true
content: |
{
"apricotPhase1Time": "2020-12-05T05:00:00Z",
"apricotPhase2Time": "2020-12-05T05:00:00Z",
"apricotPhase3Time": "2020-12-05T05:00:00Z",
"apricotPhase4Time": "2020-12-05T05:00:00Z",
"apricotPhase4MinPChainHeight": 0,
"apricotPhase5Time": "2020-12-05T05:00:00Z",
"apricotPhasePre6Time": "2020-12-05T05:00:00Z",
"apricotPhase6Time": "2020-12-05T05:00:00Z",
"apricotPhasePost6Time": "2020-12-05T05:00:00Z",
"banffTime": "2020-12-05T05:00:00Z",
"cortinaTime": "2020-12-05T05:00:00Z",
"cortinaXChainStopVertexID": "11111111111111111111111111111111LpoYY",
"durangoTime": "2020-12-05T05:00:00Z",
"etnaTime": "2020-12-05T05:00:00Z",
"fortunaTime": "2020-12-05T05:00:00Z",
"graniteTime": "9999-12-01T00:00:00Z"
}
# Genesis
genesis:
configMapName: hanzo-genesis