diff --git a/.claude/PUBLIC_TESTNET_ROADMAP.md b/.claude/PUBLIC_TESTNET_ROADMAP.md new file mode 100644 index 00000000..e4564ea1 --- /dev/null +++ b/.claude/PUBLIC_TESTNET_ROADMAP.md @@ -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!* diff --git a/.claude/SESSION_LOG.md b/.claude/SESSION_LOG.md index 27437920..05e8f85e 100644 --- a/.claude/SESSION_LOG.md +++ b/.claude/SESSION_LOG.md @@ -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 | --- diff --git a/CLAUDE.md b/CLAUDE.md index 0dd7cf4e..d412b87d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -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 ---