Ana içeriğe geç

Sahiplik Değişikliklerine Genel Bakış

Bir kurulumun sahipliğini iki işlem değiştirir ve ikisi de tek bir kurulum (setup; bir düğümün tek bir ağdaki dağıtımı) kapsamında çalışır:

İşlemZincirde ne değişirBiçimEndpoint'ler
Düğüm sahipliği değişikliğiKurulum altında dağıtılmış her tokenize varlık düğümün yeni bir cüzdanına devredilir, ardından kurulumun diamond kontratındaki sahip adresi değiştirilirDuraklatılabilen, devam ettirilebilen, yeniden denenebilen ve iptal edilebilen çok adımlı süreç/v2/admin/nodes/{node_id}/change-owner-processes/**
Platform sahibi değişikliğiKurulumun diamond kontratındaki platform sahibi adresiTek bir zincir üstü işlem/v2/admin/nodes/{node_id}/platform-owner-changes

İkisi için de geçerli kurallar​

  • Kurulumu ve cüzdanı çağıran seçer. setup_id ve new_wallet_id zorunlu gövde alanlarıdır. Kurulum path'teki düğüme ait olmalı, cüzdan da kurulumun ağının zincirinde bulunmalıdır. Çağıran adına hiçbir şey çözümlenmez.
  • Değişikliği yalnızca platform sahibi başlatabilir ve yönetebilir. Her yazma işlemi (başlatma, duraklatma, devam ettirme, yeniden deneme, iptal) API anahtarının platform sahibi düğümüne (platform kökü) ait olduğunu kontrol eder. Başka bir anahtar, token'ı route'un iznini taşısa bile 403 ve 10005 kodu alır.
  • Okumalar düğüm hiyerarşisini izler. Listeleme ve okuma, düğümü path'teki düğüm ya da onun bir üst düğümü olan her anahtara açıktır. Bu alt ağacın dışındaki bir düğüm 403 ve 10005 kodu alır.
  • Bir kurulumda aynı anda tek değişiklik. Bir kurulumda started, in_progress veya paused durumunda bir süreç varken ikinci bir düğüm sahipliği değişikliği 20002 ile reddedilir. started veya in_progress durumunda bir değişiklik varken ikinci bir platform sahibi değişikliği 21002 ile reddedilir.

Düğüm sahipliği değişikliği süreci​

Sahiplik Değişikliği Sürecini Başlat adım listesini oluşturur ve süreci started durumunda 201 ile döndürür. Adımlar ardından arka planda, order sırasıyla, birer birer çalışır:

Adım typeKaç taneZincir üstü işlem
transfer_tokenized_assetsKurulum altında dağıtılmış her token için bir tane (token_id token'ı belirtir)Token'ın sahipliğini yeni sahip adresine devreder. Kurulumun düğümünde 36 tipli (TransferTokenizedAssetOwnership) bir düğüm işlemi olarak kaydedilir.
change_node_ownerBir tane, her zaman en sondaKurulumun diamond kontratındaki sahip adresini değiştirir. Platform sahibi düğümünde, kurulumun platform sahibi cüzdanını taşıyan 34 tipli (ChangeNodeOwnerAddress) bir düğüm işlemi olarak kaydedilir.

Her adım zincir üstü bir işlemdir. Bir adım, işlemi onaylandığında completed olur (hash'i transaction_hash alanına yazılır) ve ancak o zaman sonraki adım gönderilir. Dağıtılmış token'ı olmayan bir kurulumun tek bir change_node_owner adımı vardır. Son adım tamamlandığında süreç completed olur ve kurulumun düğüm ücret alıcı cüzdanı yeni cüzdana taşınır.

Süreci izlemek için Sahiplik Değişikliği Sürecini Al uç noktasını yoklayın. Her adımın işlemi Node İşlemlerini ID ile Al listesinde de görünür.

Süreç durumu​

statusAnlamı
startedOluşturuldu; ilk adım henüz gönderilmedi.
in_progressBir adım yürütülüyor.
pausedDurduruldu: ya çağıran duraklattı ya da bir adım başarısız oldu. Devam ettirilene kadar yeni adım gönderilmez.
completedTüm adımlar tamamlandı. Son durum.
failedDurum sözlüğündeki bir son durum. Başarısız olan bir adım bu durumu yazmaz: adım failed, süreç paused olur.
cancelledÇağıran iptal etti. Son durum.

Adım durumu​

statusAnlamı
pendingHenüz gönderilmedi.
in_progressİşlemi gönderildi, henüz sonuçlanmadı.
completedİşlemi onaylandı.
failedİşlemi başarısız oldu ya da gönderilemedi. Nedeni adımın error alanındadır.
skippedSüreç ilerlerken ve progress hesaplanırken completed gibi sayılır.

progress, completed ve skipped adımların oranıdır; 0 ile 100 arasındadır.

Yaşam döngüsü​

İşlemİzin verilen durumEtkisiRet kodu
Duraklatstarted, in_progressSüreç paused olur.20005
Devam ettirpausedSüreç in_progress olur ve current_step_order adımından devam eder; tamamlanmış bir adım yeniden gönderilmez. failed bir adım yeniden çalıştırılmaz: onun için Yeniden Dene'yi kullanın.20003
Yeniden denepaused bir sürecin failed adımıAdım pending durumuna döner, retry_count bir artar ve süreç bu adımdan devam eder. Bir adım max_retries (3) kez yeniden denenebilir.20003, 20004, 20006
İptal etstarted, in_progress, pausedSüreç cancelled olur.20003

Duraklatma ve iptal, sürecin sonraki adımı göndermesini engeller; zaten gönderilmiş bir işlemi geri çekmez. O işlem yine sonuçlanır ve adımı completed ya da failed olarak kaydedilir. Süreç duraklatılmışken son adım onaylanırsa süreç yine completed olur. İptal, tamamlanmış devirleri geri almaz.

Platform sahibi değişikliği​

Platform Sahibi Değişikliğini Başlat, kurulumun diamond kontratındaki platform sahibi adresini değiştiren tek bir işlem gönderir; işlem platform sahibi düğümünde 35 tipli (ChangePlatformOwnerAddress) bir düğüm işlemi olarak kaydedilir. Adımı yoktur; duraklatılamaz, yeniden denenemez ve iptal edilemez.

  • Yeni cüzdan, platform sahibinin kendi cüzdanlarından biri olmalı ve kurulumun zincirinde bulunmalıdır.
  • Kurulum buna izin vermelidir. Platform sahibinin kendi cüzdanını değiştirip değiştiremeyeceği platform_owner_can_change_wallet platform ayarıdır ve her kuruluma, kurulum oluşturulurken kopyalanır (diamond kontratı bu değerle dağıtılır). Başlatma uç noktası kurulumdaki kopyayı okur; bu yüzden ayarı sonradan açmak eski kurulumları etkilemez. Bkz. Platform Sahibinin Cüzdan Değiştirme İznini Güncelle.

Değişiklik in_progress durumuyla yanıtlanır. Platform Sahibi Değişikliklerini Listele uç noktasını değişiklik done (işlem hash'i hash alanındadır ve kurulumun platform sahibi ücret alıcı cüzdanı artık yeni cüzdanı gösterir) ya da error (nedeni error alanındadır) olana kadar yoklayın.