Lewati ke isi

Phase 7 — Community Validator Expansion

Ekspansi validator Garuda Chain dari 5 genesis11 early community21 full decentralization.

Ringkasan

Parameter Nilai
Genesis validators 5 (core team)
Phase 2 target 11 validators
Phase 3 target 21 validators
Min stake 100.000 GAT
Chain ID 8846 (mainnet)

Arsitektur Ekspansi

Phase 1 (Genesis)     →  5 validators  [completed]
Phase 2 (Early)       → 11 validators  [+6 community]
Phase 3 (Community)   → 21 validators  [+10 community]

On-Chain (GarudaValidatorRegistry)

Fungsi baru:

  • expandToPhase(1|2|3) — set max validators & buka pendaftaran komunitas
  • getOpenSlots() — slot tersedia
  • getExpansionStatus() — phase, current, max, target, communityOpen
  • setCommunityRegistrationOpen(bool) — toggle pendaftaran
  • removeValidator(address, reason) — hapus validator slashed/inactive

Quick Start

1. Cek status ekspansi

npm run community:status

2. Expand on-chain ke Phase 3 (21 validators)

npm run community:expand        # default phase 3
npm run community:expand:phase2 # phase 2 (11 validators)

3. Generate keys komunitas (validator 6-21)

npm run community:keys

4. Onboard validator komunitas

bash scripts/community/onboard-validator.sh 6 "Garuda Jakarta" "https://validator.id" mainnet

5. Deploy node komunitas (overlay Docker)

docker compose -f docker-compose.mainnet.yml -f docker-compose.community-validators.yml up -d

6. IBFT Validator Vote

Setelah node berjalan, tambahkan validator ke set IBFT via Besu:

# Dari node genesis (validator 1)
besu validator propose --rpc-http-enabled \
  --rpc-http-api=IBFT,ETH \
  --rpc-http-port=8595 \
  <COMMUNITY_VALIDATOR_ADDRESS>

API Endpoints

Endpoint Deskripsi
GET /api/v1/validators/expansion Status ekspansi on-chain + config
GET /api/v1/validators/program Program validator
POST /api/v1/validators/applications Submit aplikasi

Explorer

  • Community Expansion: http://localhost:3000/validators/community
  • Apply: http://localhost:3000/validators/apply
  • Ranking: http://localhost:3000/validators

Distribusi Regional

Region Slots
Jakarta (ID-JK) 4
Jawa Barat (ID-JB) 3
Jawa Tengah (ID-JT) 2
Jawa Timur (ID-JI) 3
Sumatera (ID-SU) 2
Kalimantan (ID-KA) 2
Maluku & Papua (ID-ML) 2
International (GLOBAL) 3

Alur Onboarding

  1. Submit aplikasi via /validators/apply
  2. Review teknis (7 hari)
  3. Stake 100.000 GAT on-chain
  4. Deploy Besu validator node
  5. IBFT validator vote proposal
  6. Go live di mainnet

Kontrak & Script

File Fungsi
contracts/script/ExpandValidators.s.sol Expand phase on-chain
chain/config/community-validators/expansion.json Jadwal & region
chain/validator-program/community-registry.json Registry komunitas
scripts/community/expand-validators.sh CLI expand
scripts/community/onboard-validator.sh Full onboarding
scripts/community/status.sh Status dashboard
docker-compose.community-validators.yml Node 6-8 template

Tests

cd contracts && forge test --match-contract CommunityValidators -vv

Checklist Go-Live

  • [ ] expandToPhase(3) dieksekusi on-chain
  • [ ] communityRegistrationOpen = true
  • [ ] Keys validator 6-21 di-generate (tidak di-commit)
  • [ ] Node Besu komunitas sync dengan mainnet
  • [ ] IBFT vote untuk setiap validator baru
  • [ ] Uptime monitoring aktif (npm run validator:monitor)
  • [ ] Explorer /validators/community menampilkan slot terbuka

Kontak

validators@garudachain.id