docs: add PUBLIC_TESTNET_ROADMAP.md and update session log

- Create comprehensive testnet roadmap with staged approach
- Document Ed25519/Sr25519 fix learnings
- Add VPS capacity analysis
- Update CLAUDE.md to auto-load roadmap
- Update SESSION_LOG.md with current progress
This commit is contained in:
2026-01-24 18:29:05 +03:00
parent ff79e0e89c
commit 256360cbdb
3 changed files with 456 additions and 60 deletions
+392
View File
@@ -0,0 +1,392 @@
# PUBLIC TESTNET ROADMAP - Staged Approach
**Oluşturulma:** 2026-01-24
**Son Güncelleme:** 2026-01-24
**Durum:** STAGE 1 - Internal Testnet (BAŞLAMADI)
---
## 🎯 HEDEF
21 validator + 4 collator ile public testnet başlatmak.
**Yaklaşım:** Staged Approach
1. STAGE 1: Internal Testnet (bizim VPS'ler)
2. STAGE 2: Public RPC
3. STAGE 3: Community Validators
---
## 📚 ÖNCEKİ OTURUMLARDAN ÖĞRENMELER (KRİTİK!)
### 1. Ed25519 vs Sr25519 Key Scheme Sorunu (ÇÖZÜLDÜ ✅)
**Problem:** `asset-hub-pezkuwichain-local` yanlışlıkla Ed25519 kullanıyordu.
**Kök Neden:** Prefix matching hatası:
```rust
// HATALI: "asset-hub-pezkuwichain".starts_with("asset-hub-pezkuwi") = TRUE!
if id.starts_with("asset-hub-pezkuwi") { Ed25519 }
else if id.starts_with("asset-hub-pezkuwichain") { Sr25519 } // Hiç çalışmıyordu!
```
**Çözüm:** Uzun prefix'i ÖNCE kontrol et:
```rust
// DOĞRU: Önce uzun prefix
if id.starts_with("asset-hub-pezkuwichain") { Sr25519 }
else if id.starts_with("asset-hub-pezkuwi") { Ed25519 }
```
**Düzeltilen Dosyalar:**
- `pezcumulus/pezkuwi-teyrchain/src/chain_spec/mod.rs` - RuntimeResolver
- `vendor/pezkuwi-zombienet-sdk/crates/orchestrator/src/generators/chain_spec.rs`
- `vendor/pezkuwi-zombienet-sdk/crates/orchestrator/src/spawner.rs`
**Commit:** `f52eb30abb` - "fix: correct Ed25519/Sr25519 key scheme detection for Asset Hub"
### 2. Zombienet Metric Timeout Sorunu
**Problem:** Network 80 saniye sonra kapanıyor.
```
🧟 One of the nodes crashed: alice: Timeout (5), waiting for metric process_start_time_seconds
```
**Sebep:** Zombienet health check timeout'u - node'lardan metric alamıyor.
**ÖNEMLİ:** Bu bir network/consensus sorunu DEĞİL! Network çalışıyor, sadece monitoring timeout yapıyor.
**Çözüm Seçenekleri:**
1. Zombienet timeout değerlerini artır
2. Systemd service ile deployment (zombienet yerine)
3. Metric endpoint'lerini düzelt
### 3. VPS Build Sorunları
**Problem:** VPS2'de `serde_core` wasm build hatası.
```
error[E0152]: duplicate lang item in crate `alloc`: `exchange_malloc`
```
**Geçici Çözüm:** Local'de build edip binary'leri kopyala.
```bash
scp /home/mamostehp/pezkuwi-sdk/target/release/pezkuwi* root@VPS_IP:/root/pezkuwi-sdk/target/release/
```
**Kalıcı Çözüm:** Rust toolchain versiyonlarını senkronize et.
### 4. Config Path Sorunu
**Problem:** `zombienet-local-21.toml` içinde hardcoded path'ler var.
```toml
# YANLIŞ (local machine):
default_command = "/home/mamostehp/pezkuwi-sdk/target/release/pezkuwi"
# DOĞRU (VPS):
default_command = "/root/pezkuwi-sdk/target/release/pezkuwi"
```
**Çözüm:** Her VPS için path'leri düzelt veya relative path kullan.
---
## 🖥️ VPS KAPASİTELERİ
| | VPS1 | VPS2 |
|---|------|------|
| **IP** | 37.60.230.9 | 62.146.235.186 |
| **Hostname** | - | merkez-server |
| **CPU** | 8 core | 16 core |
| **RAM** | 23 GB | 62 GB |
| **Disk** | 193 GB (115 GB boş) | 581 GB (520 GB boş) |
| **SSH** | `ssh root@37.60.230.9` | `ssh root@62.146.235.186` |
### Önerilen Node Dağılımı
| VPS | Validators | Asset Hub Collators | People Chain Collators |
|-----|------------|---------------------|------------------------|
| VPS1 | 7 | 1 | 1 |
| VPS2 | 14 | 1 | 1 |
| **TOPLAM** | **21** | **2** | **2** |
---
## 📋 STAGE 1: Internal Testnet
### Ön Koşullar
- [x] Ed25519/Sr25519 fix commit edildi
- [x] 21 validator ile local test geçti
- [x] VPS kapasiteleri kontrol edildi
- [ ] Binary'ler VPS'lere deploy edildi
### 1.1 Validator Key Oluşturma
**Durum:** ❌ BAŞLAMADI
**Görevler:**
- [ ] 21 validator için Sr25519 session key oluştur
- [ ] Key'leri güvenli şekilde sakla
- [ ] Her validator için ayrı keystore dizini
**Komutlar:**
```bash
# Session key oluştur
./target/release/pezkuwi key generate --scheme Sr25519 --output-type json
# Veya subkey ile
./target/release/pez-subkey generate --scheme Sr25519
```
**Dosyalar:**
- `mainnet/keys/validators-21-session-keys.json` (GİTİGNORE'DA!)
### 1.2 Chain Spec Oluşturma
**Durum:** ❌ BAŞLAMADI
**Görevler:**
- [ ] Testnet chain spec adı belirle (`zagros` veya `pezkuwichain-testnet`)
- [ ] Genesis config'i düzenle (validator listesi)
- [ ] Raw chain spec oluştur
**Komutlar:**
```bash
# Plain chain spec
./target/release/pezkuwi build-spec --chain pezkuwichain-local --disable-default-bootnode > testnet-plain.json
# Validator'ları ekle (genesis config düzenle)
# Raw chain spec
./target/release/pezkuwi build-spec --chain testnet-plain.json --raw > testnet-raw.json
```
### 1.3 Systemd Service Dosyaları
**Durum:** ❌ BAŞLAMADI
**Görevler:**
- [ ] Validator service template oluştur
- [ ] Collator service template oluştur
- [ ] Her VPS için service dosyalarını deploy et
**Template:** `/etc/systemd/system/pezkuwi-validator@.service`
```ini
[Unit]
Description=Pezkuwi Validator %i
After=network.target
[Service]
Type=simple
User=root
ExecStart=/root/pezkuwi-sdk/target/release/pezkuwi \
--chain /root/pezkuwi-sdk/testnet-raw.json \
--name validator-%i \
--validator \
--base-path /root/pezkuwi-data/validator-%i \
--port 3033%i \
--rpc-port 994%i \
--prometheus-port 961%i \
--telemetry-url "wss://telemetry.pezkuwichain.io/submit/ 1"
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
```
### 1.4 VPS Deployment
**Durum:** ❌ BAŞLAMADI
**VPS1 Görevleri:**
- [ ] Binary'leri kopyala
- [ ] Chain spec kopyala
- [ ] Keystore'ları kopyala (validator 1-7)
- [ ] Service dosyalarını kur
- [ ] Validator'ları başlat
- [ ] Collator'ları başlat
**VPS2 Görevleri:**
- [ ] Binary'leri kopyala
- [ ] Chain spec kopyala
- [ ] Keystore'ları kopyala (validator 8-21)
- [ ] Service dosyalarını kur
- [ ] Validator'ları başlat
- [ ] Collator'ları başlat
### 1.5 Bootnode Yapılandırması
**Durum:** ❌ BAŞLAMADI
**Görevler:**
- [ ] İlk validator'ü bootnode olarak belirle
- [ ] Bootnode peer ID'sini al
- [ ] Diğer node'lara bootnode bilgisini ekle
**Komut:**
```bash
# Peer ID öğren
./target/release/pezkuwi key inspect-node-key --file /root/pezkuwi-data/validator-1/chains/*/network/secret_ed25519
```
### 1.6 Network Test (24 Saat)
**Durum:** ❌ BAŞLAMADI
**Kontrol Listesi:**
- [ ] Tüm validator'ler peer'larını buluyor
- [ ] Block üretimi devam ediyor
- [ ] Finality çalışıyor (GRANDPA)
- [ ] Teyrchain'ler block üretiyor
- [ ] Hiçbir node crash olmuyor
- [ ] Memory leak yok
- [ ] Disk dolmuyor
---
## 📋 STAGE 2: Public RPC
### 2.1 RPC Node Kurulumu
**Durum:** ❌ BAŞLAMADI
**Görevler:**
- [ ] Validator OLMAYAN RPC node kur
- [ ] `--rpc-external` flag'i ekle
- [ ] `--rpc-cors all` flag'i ekle
- [ ] Pruning ayarla (archive vs pruned)
### 2.2 Domain ve SSL
**Durum:** ❌ BAŞLAMADI
**Görevler:**
- [ ] Domain belirle (rpc.pezkuwichain.io?)
- [ ] DNS ayarla
- [ ] Nginx reverse proxy kur
- [ ] Let's Encrypt SSL sertifikası
### 2.3 Rate Limiting
**Durum:** ❌ BAŞLAMADI
**Görevler:**
- [ ] Nginx rate limiting
- [ ] IP başına istek limiti
- [ ] WebSocket bağlantı limiti
---
## 📋 STAGE 3: Community Validators
### 3.1 Dokümantasyon
**Durum:** ❌ BAŞLAMADI
**Görevler:**
- [ ] Validator kurulum rehberi
- [ ] Donanım gereksinimleri
- [ ] Session key oluşturma
- [ ] Staking süreci
### 3.2 Telemetry
**Durum:** ❌ BAŞLAMADI
**Görevler:**
- [ ] Telemetry backend kur
- [ ] telemetry.pezkuwichain.io domain
- [ ] Dashboard
### 3.3 Block Explorer
**Durum:** ❌ BAŞLAMADI
**Seçenekler:**
- Subscan self-hosted
- Polkadot.js Apps
- Custom explorer
### 3.4 Faucet
**Durum:** ❌ BAŞLAMADI
**Görevler:**
- [ ] Faucet backend
- [ ] Rate limiting (IP/hesap başına)
- [ ] Captcha
---
## 🔧 YARARLI KOMUTLAR
### Binary'leri VPS'e Kopyala
```bash
# Tüm binary'ler
scp /home/mamostehp/pezkuwi-sdk/target/release/pezkuwi \
/home/mamostehp/pezkuwi-sdk/target/release/pezkuwi-teyrchain \
/home/mamostehp/pezkuwi-sdk/target/release/pezkuwi-zombienet \
root@VPS_IP:/root/pezkuwi-sdk/target/release/
```
### VPS'te Repo Sync
```bash
ssh root@VPS_IP "cd /root/pezkuwi-sdk && git fetch origin && git reset --hard origin/main"
```
### Process Kontrol
```bash
# Çalışan node'ları gör
ssh root@VPS_IP "pgrep -af pezkuwi"
# Hepsini durdur
ssh root@VPS_IP "pkill -9 -f pezkuwi"
```
### Log Kontrol
```bash
# Systemd log
ssh root@VPS_IP "journalctl -u pezkuwi-validator@1 -f"
# Zombienet log
ssh root@VPS_IP "tail -f /tmp/zombienet-21.log"
```
### Block Numarası Kontrol
```bash
curl -s -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"chain_getHeader","params":[],"id":1}' \
http://VPS_IP:9944 | jq '.result.number'
```
---
## ⚠️ BİLİNEN SORUNLAR VE ÇÖZÜMLER
### 1. "CannotSign" Hatası
**Sebep:** Key scheme mismatch (Ed25519 vs Sr25519)
**Çözüm:** Fix zaten uygulandı (commit f52eb30abb)
### 2. "WASM binary was not built"
**Sebep:** SKIP_WASM_BUILD=1 ile build edilmiş
**Çözüm:** WASM ile build et veya local'den kopyala
### 3. Metric Timeout (Zombienet)
**Sebep:** Node metric endpoint'e geç cevap veriyor
**Çözüm:** Systemd ile deployment (zombienet bypass)
### 4. Path Hatası (VPS)
**Sebep:** Config'de `/home/mamostehp/...` path'leri var
**Çözüm:** `/root/pezkuwi-sdk/...` olarak değiştir
---
## 📅 ZAMAN ÇİZELGESİ (TAHMİNİ)
| Stage | Süre | Bitiş |
|-------|------|-------|
| STAGE 1.1-1.3 (Hazırlık) | 1-2 gün | - |
| STAGE 1.4-1.5 (Deployment) | 1 gün | - |
| STAGE 1.6 (24h Test) | 1-2 gün | - |
| STAGE 2 (Public RPC) | 1-2 gün | - |
| STAGE 3 (Community) | 1 hafta+ | - |
---
## 📝 DEĞİŞİKLİK GEÇMİŞİ
| Tarih | Değişiklik |
|-------|------------|
| 2026-01-24 | İlk versiyon oluşturuldu |
| 2026-01-24 | VPS kapasiteleri eklendi |
| 2026-01-24 | Ed25519/Sr25519 fix dokümante edildi |
---
*Bu dosya SessionStart hook ile otomatik yüklenir. Her stage tamamlandığında güncelleyin!*
+63 -60
View File
@@ -1,91 +1,94 @@
# SON OTURUM ÖZETİ
**Tarih:** 2026-01-02
**Oturum:** XCM Teleport Test + Asset Hub RPC Sorunu
**Tarih:** 2026-01-24
**Oturum:** Ed25519/Sr25519 Fix + Public Testnet Planlama
---
## BU OTURUMDA YAPILAN
1. **XCM Teleport Testi (Kısmi Başarı)**
- `xcm_reserve_transfer.rs` örneği oluşturuldu
- Relay Chain → Asset Hub teleport işlemi başarılı
- XCM Sent event alındı, Teyrchain(1000)'e gönderildi
- Fees ödendi: 132,333,009 planck
### 1. Ed25519/Sr25519 Key Scheme Fix (TAMAMLANDI ✅)
2. **Asset Hub RPC Sorunu Tespit Edildi**
- Port 9945 relay chain verisi döndürüyor (teyrchain verisi değil)
- Her iki port aynı finalized block hash döndürüyor
- Collator RPC yapılandırması yanlış olabilir
**Problem Tespit Edildi:**
- `asset-hub-pezkuwichain-local` yanlışlıkla Ed25519 kullanıyordu
- Sebep: `"asset-hub-pezkuwichain".starts_with("asset-hub-pezkuwi")` = TRUE
- Prefix matching sırası yanlıştı
3. **LOCAL network hala çalışıyor**
- Alice + Bob (2 validator) senkronize
- Asset Hub collator blok üretiyor (RPC sorunu var)
**Çözüm Uygulandı:**
- RuntimeResolver'da uzun prefix ÖNCE kontrol ediliyor
- Zombienet SDK'da aynı fix uygulandı
- 3 dosya düzeltildi:
- `pezcumulus/pezkuwi-teyrchain/src/chain_spec/mod.rs`
- `vendor/pezkuwi-zombienet-sdk/.../chain_spec.rs`
- `vendor/pezkuwi-zombienet-sdk/.../spawner.rs`
---
**Commit:** `f52eb30abb`
## XCM TEST SONUCU
### 2. VPS2'de 21 Validator Test (BAŞARILI ✅)
```
═══ STEP 4: Execute XCM Teleport ═══
Transfer amount: 100000000000 TYR (0.1 HEZ)
✓ Transaction finalized on Relay Chain!
- Network spawn edildi
- 21 validator + 4 collator çalıştı
- Relay Chain: Block #21
- Asset Hub: Block #7
- **CannotSign hatası: YOK**
- Kapanma: Metric timeout (fix ile alakasız)
═══ STEP 5: Analyze XCM events ═══
✓ XCM Attempted: Complete { used: Weight { ref_time: 159870000, proof_size: 3593 } }
✓ XCM Sent: Origin: Alice, Destination: Teyrchain(1000)
✓ XCM FeesPaid: 132333009 planck
### 3. VPS Kapasite Analizi (TAMAMLANDI ✅)
═══ TEST RESULTS ═══
RELAY CHAIN (Alice):
Before: 0.9999 HEZ
After: 0.8997 HEZ
Spent: 0.1002 HEZ
| VPS | CPU | RAM | Disk | Max Validator |
|-----|-----|-----|------|---------------|
| VPS1 (37.60.230.9) | 8 | 23GB | 115GB boş | ~8 |
| VPS2 (62.146.235.186) | 16 | 62GB | 520GB boş | ~18 |
⚠ Asset Hub bakiyesi doğrulanamıyor - RPC sorunu
```
**Sonuç:** 2 VPS toplam 21 validator + 4 collator kaldırabilir.
**Çalıştırma komutu:**
```bash
cd /home/mamostehp/pezkuwi-sdk
cargo run --release -p pezkuwi-subxt --example xcm_reserve_transfer
```
### 4. Public Testnet Roadmap (OLUŞTURULDU ✅)
Staged Approach belirlendi:
- **STAGE 1:** Internal Testnet (bizim VPS'ler)
- **STAGE 2:** Public RPC
- **STAGE 3:** Community Validators
Detaylı checklist: `.claude/PUBLIC_TESTNET_ROADMAP.md`
---
## NEREDE KALDIK
**Mevcut Durum:** FAZ 3 - Network Test Aşamaları
- DEV: ✅ TAMAMLANDI
- LOCAL: ✅ TAMAMLANDI
- Token Transfer: ✅ BAŞARILI
- XCM Teleport (Relay tarafı): ✅ BAŞARILI
- XCM Teleport (Asset Hub doğrulama): ⚠️ RPC SORUNU
- ALPHA: BEKLEMEDE
**Mevcut Durum:** STAGE 1 - Internal Testnet (BAŞLAMADI)
**Kritik Sorun: Asset Hub RPC**
- Port 9945'e bağlanıldığında relay chain verisi geliyor
- `system_chain` → "Pezkuwichain Local Testnet" (Asset Hub olmalı)
- `state_getRuntimeVersion` → specName: "pezkuwichain" (asset-hub-pezkuwichain olmalı)
- Tüm portlar aynı finalized block hash döndürüyor
**Sonraki Adım:** STAGE 1.1 - Validator Key Oluşturma
**Sonraki Görevler:**
1. ⚠️ Asset Hub RPC sorununu çöz (pezkuwi-teyrchain collator)
2. XCM testini tamamla (Asset Hub bakiye doğrulama)
3. ALPHA network (4 validator) hazırlığı
**Checklist (STAGE 1):**
- [x] Ed25519/Sr25519 fix
- [x] 21 validator test (local/VPS2)
- [x] VPS kapasite kontrolü
- [ ] Validator key'leri oluştur
- [ ] Chain spec oluştur
- [ ] Systemd service dosyaları
- [ ] VPS deployment
- [ ] Bootnode yapılandırması
- [ ] 24 saat stability test
---
## KRİTİK NOTLAR SONRAKİ CLAUDE İÇİN
1. **pezkuwi-subxt ÇALIŞIYOR** - XCM işlemleri test edilebilir
2. **XCM Teleport ÇALIŞIYOR** - Relay chain tarafında başarılı
3. **Asset Hub RPC SORUNU VAR** - Collator relay chain verisi döndürüyor
4. **Polkadot.js KULLANMA** - Çalışmıyor, pezkuwi-subxt kullan
5. **Network aktif** - zombienet-local.toml ile spawn edilmiş
6. **Metadata dosyaları:**
- `vendor/pezkuwi-subxt/artifacts/pezkuwichain_metadata.scale`
- `vendor/pezkuwi-subxt/artifacts/asset_hub_metadata.scale`
1. **Ed25519/Sr25519 FIX YAPILDI** - Commit f52eb30abb
2. **Zombienet timeout sorunu VAR** - Ama network çalışıyor, sadece monitoring
3. **VPS2'de wasm build sorunu VAR** - Binary kopyalayarak çöz
4. **Config path'leri DİKKAT** - VPS'te `/root/pezkuwi-sdk/...` olmalı
5. **PUBLIC_TESTNET_ROADMAP.md OKU** - Tüm detaylar orada
---
## ÖNEMLİ DOSYALAR
| Dosya | Açıklama |
|-------|----------|
| `.claude/PUBLIC_TESTNET_ROADMAP.md` | Testnet checklist ve plan |
| `zombienet-local-21.toml` | 21 validator config |
| `zombienet-mainnet-21.toml` | Mainnet config template |
---
+1
View File
@@ -7,6 +7,7 @@ Bu dosya her oturumda Claude tarafından okunmalı ve kurallara kesinlikle uyulm
@.claude/PROJECT_STATE.md
@.claude/SESSION_LOG.md
@.claude/MAINNET_ROADMAP.md
@.claude/PUBLIC_TESTNET_ROADMAP.md
---