From a654d2a66e6435360a3d5755de82dcc035352186 Mon Sep 17 00:00:00 2001 From: Kurdistan Tech Ministry Date: Sat, 21 Feb 2026 04:55:14 +0300 Subject: [PATCH] fix(xcm): correct MintLocation for AH migration (RC 1_020_007, AH 1_020_006) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Relay Chain no longer has mint authority — teleport tracking set to None. Asset Hub is now the canonical minter with MintLocation::Local tracking. RC: LocalCheckAccount → TeleportTracking = None AH: () → TeleportTracking = Some((CheckingAccount, MintLocation::Local)) --- .claude/CRITICAL_STATE.md | 230 ------------------ .../assets/asset-hub-pezkuwichain/src/lib.rs | 2 +- .../asset-hub-pezkuwichain/src/xcm_config.rs | 8 +- pezkuwi/runtime/pezkuwichain/src/lib.rs | 2 +- .../runtime/pezkuwichain/src/xcm_config.rs | 6 +- 5 files changed, 10 insertions(+), 238 deletions(-) delete mode 100644 .claude/CRITICAL_STATE.md diff --git a/.claude/CRITICAL_STATE.md b/.claude/CRITICAL_STATE.md deleted file mode 100644 index cd228bd3..00000000 --- a/.claude/CRITICAL_STATE.md +++ /dev/null @@ -1,230 +0,0 @@ -# PEZKUWI MAİNNET KRİTİK DURUM - -**Son Guncelleme:** 2026-02-20 UTC -**Bu dosyayi her oturum basinda OKU!** - ---- - -## 1. VPS ERİŞİMİ - -**BAĞLANTI:** `ssh root@` - Tum VPS'lere root erisimi var. -**Toplam:** 18 VPS | 21 Validator (mainnet) + 4 Validator (zagros) | 4 Collator (mainnet) + 2 Collator (zagros) - -| VPS | IP | Rol | Calisan Node'lar | -|-----|-----|-----|------------------| -| VPS1 | 37.60.230.9 | Web + CI | Landing page + transfer service + CI runner | -| VPS2 | 62.146.235.186 | Merkez | mainnet val [5,6,7,21] + telemetry + CI runner | -| **VPS3** | **217.77.6.126** | **Ana Sunucu (94GB)** | mainnet val [1,2,3,4] + mainnet col [Azad(AH), Erin(People)] + zagros val [1,2,3,4] + zagros col [Azad(AH), Erin(People)] | -| VPS-A | 217.77.15.51 | Validator | mainnet val [14] | -| VPS-B | 161.97.183.44 | Validator | mainnet val [13] | -| VPS-C | 161.97.185.100 | Validator | mainnet val [12] | -| VPS-D | 109.123.229.159 | Validator | mainnet val [16] | -| VPS-E | 161.97.116.241 | Validator | mainnet val [17] | -| VPS-F | 46.250.241.121 | Validator | mainnet val [18] | -| VPS-G | 164.68.121.181 | Validator | mainnet val [19] | -| VPS-H | 158.220.93.23 | Validator | mainnet val [20] | -| VPS-I | 207.180.194.103 | Validator | mainnet val [11] | -| VPS-J | 173.249.57.228 | Collator | mainnet col [Beritan(AH), Firaz(People)] | -| VPS-K | 173.249.48.125 | Bos | BOS (binary var, kurulmamis) | -| VPS-L | 167.86.70.241 | Validator | mainnet val [10] | -| VPS-M | 167.86.108.190 | Validator | mainnet val [9] | -| VPS-N | 207.180.233.147 | Validator | mainnet val [8] | -| VPS-O | 178.18.252.120 | Validator | mainnet val [15] | - -**NOT:** Zagros testnet artik SADECE VPS3'te calisiyor. Diger VPS'lerdeki zagros servisleri ve verileri 2026-02-15'te temizlendi (~68GB bos alan kazanildi). - ---- - -## 2. MEVCUT NETWORK DURUMU - -### 2.1 Mainnet (PezkuwiChain) - -#### Relay Chain -- **Durum:** CALISIYOR -- **spec_version:** 1_020_005 -- **Block:** ~81,500+ (20 Subat 2026) -- **Peers:** 24 -- **Validator Sayisi:** 21 -- **StakingAhClient:** Active (Mode=2) -- **Bootnode:** `/ip4/217.77.6.126/tcp/30333/p2p/12D3KooWHY3k8ksTjT7izsUTbns1QLs8TraFVMcANtYhYKB4N69P` -- **RPC:** VPS3 port 9944 - -#### Teyrchains -| Para ID | Isim | Durum | spec_version | Block | Peers | -|---------|------|-------|-------------|-------|-------| -| 1000 | Asset Hub | CALISIYOR | 1_020_005 | ~80,400+ (ActiveEra=4) | 1 | -| 1004 | People Chain | CALISIYOR | 1_020_008 | ~80,400+ | 1 | - -#### Mainnet Servis Isimleri (VPS3) -- `pez-mainnet-validator-1` ... `pez-mainnet-validator-4` -- `pez-mainnet-azad` (Asset Hub collator) -- `pez-mainnet-erin` (People Chain collator) - -### 2.2 Zagros Testnet (Eski Mainnet) - -**Genesis Hash:** `0xbb4a61ab...` - -#### Relay Chain -- **Durum:** CALISIYOR -- **spec_version:** 1_020_004 -- **Block:** ~224,955 (15 Subat 2026) -- **Peers:** 5 -- **Validator Sayisi:** 4 (21'den dusuruldu, 2026-02-15) -- **RPC:** VPS3 port 9948 - -#### Teyrchains -| Para ID | Isim | Durum | spec_version | Block | Peers | -|---------|------|-------|-------------|-------|-------| -| 1000 | Asset Hub | CALISIYOR | 1_020_003 | ~222,233 | 0 | -| 1004 | People Chain | CALISIYOR | 1_020_003 | ~222,606 | 0 | - -#### Zagros Servis Isimleri (VPS3) -- `zagros-validator-1` ... `zagros-validator-4` -- `zagros-azad` (Asset Hub collator) -- `zagros-erin` (People Chain collator) - -#### Zagros Validator Azaltma (2026-02-15) -- Onceki: 21 validator (tum VPS'lerde dagitilmis) -- Sonraki: 4 validator (sadece VPS3) -- Yontem: `sudo(system.setStorage)` ile `ValidatorsToRetire` storage'a 17 validator yazildi -- Session 376'da GRANDPA 21→4 degisti -- `deregister_validators` subxt encoding hatasi nedeniyle calismadi, `system.setStorage` kullanildi - ---- - -## 3. COLLATOR KEY'LERİ - -### Asset Hub Collator'lari -``` -Azad: - public: 0x7c8c6f463d124a601fbc7d425daad82651193f35730957982519dbcff6d55f71 - ss58: 5Et1WgtNjUdMxyvHjAKGN8Nq1ivhUyANYjwKpCL8a46D8mCp - -Beritan: - public: 0x845fd9541c46c3dc4325ddcbae06596382771d943f49d9659bdbbed4abd4eb09 - ss58: 5F4GeiJE2oBcPdxfeYfWL4bu4iJfduzJk4aHhttemwhpscpQ -``` - -### People Chain Collator'lari -``` -Erin: - public: 0xb0f474e2f94868485e7269e503d6b327af392449c0878670021365ac7e173206 - ss58: 5G4iuN7MvkhdwN4ikZd9uijBzxV78LUWQro3rc9HrfWWzeuS - -Firaz: - public: 0x7244ec68c6f873e386ef8039ad6e9436e5e97c0d28bab4499090b9443034eb04 - ss58: 5EeXnoiPoXko3Hqggy74oSgxCFKpkNoppqTcV9MWUQAtmZHj -``` - ---- - -## 4. SUDO KEY (FOUNDER) - -``` -Address: 5CyuFfbF95rzBxru7c9yEsX4XmQXUxpLUcbj9RLg9K1cGiiF -Scheme: sr25519 -``` - ---- - -## 4.1 TEST WALLET - -``` -Address: 5DXv3Dc5xELckTgcYa2dm1TSZPgqDPxVDW3Cid4ALWpVjY3w -Note: Mnemonic stored locally, NOT in repo. Check /home/mamostehp/res/ -``` - ---- - -## 5. SONRAKİ ADIMLAR (YAPILMASI GEREKEN) - -### Tamamlanan Isler -- [x] Runtime upgrade 1_020_002 → 1_020_003 (uc chain) -- [x] Runtime upgrade 1_020_003 → 1_020_004 (uc chain) -- [x] NominationPoolsApi - Asset Hub runtime'a eklendi ve deploy edildi -- [x] StakingApi - Asset Hub runtime'a eklendi ve deploy edildi -- [x] Trust Score sistemi migration'lari (People Chain) -- [x] MinJoinBond/MinCreateBond sudo ile ayarlandi (Asset Hub) -- [x] Tiki pallet Collection 0 olusturuldu (XCM ile) -- [x] Zagros validator sayisi 21→4 dusuruldu -- [x] Zagros gereksiz validator servisleri temizlendi (~68GB kazanildi) -- [x] Zagros collator'lara --rpc-cors all eklendi -- [x] Zagros nginx Host header duzeltildi -- [x] Noter delegasyonu ile staking score sistemi (People Chain spec 1_020_007) -- [x] 21 validatore Noter tikisi verildi (XCM batch_all ile, 2026-02-16) -- [x] Relay Chain'den pezpallet_staking_score kaldirildi (sonraki relay upgrade icin hazir) -- [x] AH staking-async era rotation dogrulandi: ActiveEra 1→2 gecisi basarili (block 28805, session 8, 2026-02-17) -- [x] Runtime upgrade RC 1_020_004 → 1_020_005 (StakingAhClient index 67, pezpallet_staking_score kaldirildi, 2026-02-20) -- [x] Runtime upgrade AH 1_020_004 → 1_020_005 (2026-02-20) -- [x] Runtime upgrade People 1_020_007 → 1_020_008 (MinTrust degerleri duzeltildi, 2026-02-20) -- [x] StakingAhClient Mode → Active ayarlandi (sudo ile, 2026-02-20) -- [x] Post-upgrade dogrulama: Nfts Collection 0, Noter tikileri, StakingAhClient hepsi OK (2026-02-20) - -### Bekleyen Isler -1. [ ] Nova Wallet uyumluluk testi (NominationPoolsApi eklenince) -2. [ ] Zagros teyrchain'leri 1_020_004'e upgrade et (relay zaten 1_020_004) -3. [ ] Public RPC endpointlerini test et ve dokumanla -4. [x] People Chain runtime upgrade 1_020_006 → 1_020_007 (noter delegasyonu deploy) -5. [x] Relay Chain: pezpallet_staking_score runtime'dan cikarildi (kod temizlendi, sonraki build'de aktif) -6. [ ] Bot + noter workflow gelistir (staking verisi toplama ve People Chain'e gonderme) -7. [x] People Chain runtime upgrade 1_020_007 → 1_020_008 (MinTrust degerleri duzeltildi, deploy edildi 2026-02-20) -8. [x] Relay Chain runtime upgrade: `pezpallet_staking_async_ah_client` index 67'ye eklendi (RC 1_020_005 ile, 2026-02-20) -9. [ ] RC 1_020_006 upgrade: `RemovePallet` migration (eski staking pallet'i RC'den cikar) - ---- - -## 6. MAINNET WALLETS DOSYASI - -**Konum:** `/home/mamostehp/res/MAINNET_WALLETS_20260128_235407.json` - ---- - -## 7. RPC BAGLANTILARI - -### Mainnet (Direkt) -| Chain | Endpoint | -|-------|----------| -| Relay | `ws://217.77.6.126:9944` | -| Asset Hub | `ws://217.77.6.126:40944` | -| People Chain | `ws://217.77.6.126:41944` | -| Public RPC | `wss://rpc.pezkuwichain.io` | - -### Zagros Testnet (Direkt) -| Chain | Endpoint | -|-------|----------| -| Relay | `ws://217.77.6.126:9948` | -| Asset Hub | `ws://217.77.6.126:40948` | -| People Chain | `ws://217.77.6.126:41948` | - -### Zagros Testnet (Public) -| Chain | Endpoint | -|-------|----------| -| Relay | `wss://zagros-rpc.pezkuwichain.io` | -| Asset Hub | `wss://zagros-asset-hub-rpc.pezkuwichain.io` | -| People Chain | `wss://zagros-people-rpc.pezkuwichain.io` | - ---- - -## 8. ONEMLI ARACLAR - -### Runtime Upgrade Tool -**Konum:** `/home/mamostehp/pezkuwi-sdk/tools/runtime-upgrade/` -**Kullanim:** `cargo run --release -p runtime-upgrade -- relay --rpc ws://... --wasm path/to/wasm` - -### Teyrchain Registration Script -**Konum:** `/home/mamostehp/pezkuwi-sdk/vendor/pezkuwi-subxt/subxt/examples/register_teyrchain.rs` - -### Zagros SetStorage Script -**Konum:** `/home/mamostehp/pezkuwi-sdk/vendor/pezkuwi-subxt/subxt/examples/zagros_set_retire.rs` -**Not:** subxt `deregister_validators` dynamic API encoding hatali. `system.setStorage` ile direkt raw SCALE bytes yazilmali. - -### Storage Key'ler -| Pallet | Storage | Key (hex) | -|--------|---------|-----------| -| ValidatorManager | Prefix | `084e7f70a295a190e2e33fd3f8cdfcc2` | -| ValidatorManager | ValidatorsToRetire | `084e7f70a295a190e2e33fd3f8cdfcc2b664fa73499821e43a617aa0e82b17b1` | -| Session | QueuedKeys | `cec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903` | - ---- - -*Bu dosya her oturum basinda okunmali ve her onemli degisiklikte guncellenmelidir.* diff --git a/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/lib.rs b/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/lib.rs index 345caebf..52dc3a75 100644 --- a/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/lib.rs +++ b/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/lib.rs @@ -138,7 +138,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: alloc::borrow::Cow::Borrowed("asset-hub-pezkuwichain"), impl_name: alloc::borrow::Cow::Borrowed("asset-hub-pezkuwichain"), authoring_version: 1, - spec_version: 1_020_005, + spec_version: 1_020_006, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 16, diff --git a/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/xcm_config.rs b/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/xcm_config.rs index 77e93517..1a3a4e86 100644 --- a/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/xcm_config.rs +++ b/pezcumulus/teyrchains/runtimes/assets/asset-hub-pezkuwichain/src/xcm_config.rs @@ -58,7 +58,7 @@ use xcm_builder::{ DenyRecursively, DenyReserveTransferToRelayChain, DenyThenTry, DescribeAllTerminal, DescribeFamily, EnsureXcmOrigin, ExternalConsensusLocationsConverterFor, FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, HashedDescription, IsConcrete, - LocalMint, MatchInClassInstances, MatchedConvertedConcreteId, NetworkExportTableItem, + LocalMint, MatchInClassInstances, MatchedConvertedConcreteId, MintLocation, NetworkExportTableItem, NoChecking, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SendXcmFeeToAccount, SiblingTeyrchainAsNative, SiblingTeyrchainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SingleAssetExchangeAdapter, SovereignPaidRemoteExporter, @@ -91,6 +91,8 @@ parameter_types! { pub UniquesPalletLocation: Location = PalletInstance(::index() as u8).into(); pub CheckingAccount: AccountId = PezkuwiXcm::check_account(); + /// Asset Hub has mint authority since the Asset Hub migration. + pub TeleportTracking: Option<(AccountId, MintLocation)> = Some((CheckingAccount::get(), MintLocation::Local)); pub const GovernanceLocation: Location = Location::parent(); pub StakingPot: AccountId = CollatorSelection::account_id(); pub TreasuryAccount: AccountId = TREASURY_PALLET_ID.into_account_truncating(); @@ -123,8 +125,8 @@ pub type FungibleTransactor = FungibleAdapter< LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, - // We don't track any teleports of `Balances`. - (), + // Teleports tracking — Asset Hub is the canonical minter post-migration. + TeleportTracking, >; /// `AssetId`/`Balance` converter for `TrustBackedAssets`. diff --git a/pezkuwi/runtime/pezkuwichain/src/lib.rs b/pezkuwi/runtime/pezkuwichain/src/lib.rs index 6edaef74..1ac47849 100644 --- a/pezkuwi/runtime/pezkuwichain/src/lib.rs +++ b/pezkuwi/runtime/pezkuwichain/src/lib.rs @@ -174,7 +174,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: alloc::borrow::Cow::Borrowed("pezkuwichain"), impl_name: alloc::borrow::Cow::Borrowed("parity-pezkuwichain"), authoring_version: 0, - spec_version: 1_020_006, + spec_version: 1_020_007, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 26, diff --git a/pezkuwi/runtime/pezkuwichain/src/xcm_config.rs b/pezkuwi/runtime/pezkuwichain/src/xcm_config.rs index 03675230..9c320e17 100644 --- a/pezkuwi/runtime/pezkuwichain/src/xcm_config.rs +++ b/pezkuwi/runtime/pezkuwichain/src/xcm_config.rs @@ -55,7 +55,8 @@ parameter_types! { pub const ThisNetwork: NetworkId = NetworkId::ByGenesis(PEZKUWICHAIN_GENESIS_HASH); pub UniversalLocation: InteriorLocation = ThisNetwork::get().into(); pub CheckAccount: AccountId = XcmPallet::check_account(); - pub LocalCheckAccount: (AccountId, MintLocation) = (CheckAccount::get(), MintLocation::Local); + /// Pezkuwi relay does not have mint authority anymore after the Asset Hub migration. + pub TeleportTracking: Option<(AccountId, MintLocation)> = None; pub TreasuryAccount: AccountId = Treasury::account_id(); } @@ -81,8 +82,7 @@ pub type LocalAssetTransactor = FungibleAdapter< LocationConverter, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, - // We track our teleports in/out to keep total issuance correct. - LocalCheckAccount, + TeleportTracking, >; /// The means that we convert the XCM message origin location into a local dispatch origin.