Solidus Bridge testnet ağında çalışıyor. Burada görünen her şey test verisidir, parasal değeri yoktur.

Bir veren bir kimlik belgesini iptal ettiği an ile başka bir zincirdeki bir sözleşmenin onu reddettiği an arasında ne olur

Bir veren, Solidus'ta bir kimlik belgesini iptal eder. Sepolia'daki bir sözleşme, aynası aksini duyana kadar "geçerli" cevabını vermeye devam eder. Bu sayfa o boşluğu izler: Solidus neyi kuyruğa alır, bir hedef onunla ne yapar ve bu arada bir kapı ne cevap verir. Kimlik belgesi durumu köprüsü nedir sayfası genel bakışı verir, bir kimlik belgesini aktarın sayfası bir önceki adımı kapsar.

Tetikleyici

Tek bir olay her şeyi başlatır: verenin iptal işlemi. Solidus, kimlik belgesi bilinmiyorsa, zaten iptal edilmişse ya da gönderen onu veren değilse işlemi reddeder. Reddedilen bir iptal belgeyi olduğu gibi bırakır ve hiçbir şeyi kuyruğa almaz.

İptal başarılı olduğunda zincir belgeyi iptal edilmiş olarak işaretler ve aynı yürütme içinde köprü dağıtımını (fan-out) çalıştırır: bir değişikliği onu duyması gereken her hedefe kopyalayan adım.

Neyin ve kimin için kuyruğa alındığı

Dağıtım, belgenin aktarımlarını gezer. Durumu etkin olan her aktarım için, o aktarımın hedefine, iptalle aynı Solidus bloğunda, durum 2 (iptal edilmiş) taşıyan bir durum mesajı kuyruğa alır. Her mesaj, hedefi için bir sonraki sıra numarasını alır.

Birim, zincir değil aktarımdır. Bir aktarım kimliği hedefi içerir; bu yüzden hem Sepolia'ya hem Fuji'ye aktarılmış bir belgenin iki kimliği vardır ve iki mesaj alır.

Belgenin hiç aktarımı yoksa ya da her aktarım zaten bağlı değilse (unbound) hiçbir şey kuyruğa alınmaz. Bağı kaldırılmış bir aktarım zaten geri alınmıştır, bu yüzden hiçbir şey duymaz.

Bir yetki belgesinin iptali ikinci bir durumdur. Yetki belgesi, bir verenin yetkili sayılmasını sağlayan şeydir. Onu iptal etmek, kayıtlı her hedef için "yetkili değil" diyen bir veren durum mesajı kuyruğa alır. Uygulandıktan sonra bir kapı, o verenin belgeleri için 3 numaralı gerekçeyi (ISSUER_NOT_ACCREDITED) verir; daha önceki bir denetim önce başarısız olmazsa.

Sonra ne olur

  1. İmzala. Blok kesinleştikten sonra her doğrulayıcı her mesajı imzalar. API, 2026-10-08 tarihinde 4 doğrulayıcı ve 3 eşik bildirdi.
  2. İlet. Ağ geçidi imzaları toplar ve aynada sırayla submit çağırır. Başkası da çağırabilir.
  3. Uygula. Ayna tek bir işlemde sırayı ve imzaları denetler, sonra aktarımın kaydını 2 durumuyla yeniden yazar.
  4. Bildir. API, o hedef blok kesinleştikten sonra mesajı uygulanmış olarak işaretler.

Doğrulayıcıların nasıl imzaladığı ve ağ geçidinin nasıl ilettiği sayfasında işleyiş var. delivered ve applied zamanları gözlemdir, bu yüzden bloğun gerisinde kalır. Bir Sepolia kalp atışı (iptal değil) 2026-10-08 tarihinde 16:45:36Z anında blok olarak işlendi ve 16:59:13Z anında uygulanmış olarak kaydedildi.

Bir sözleşme beklerken ne görür

Ayna bir durumu sayı olarak saklar: 1 etkin, 2 iptal edilmiş, 3 süresi dolmuş, 4 bağı kaldırılmış. Yalnızca uygulanmış olanı saklar ve bekleyen bir durumu yoktur; bu yüzden bir sözleşme kuyruktaki bir iptali göremez. Yeni durum uygulanana kadar eski durum kalır.

An Aynadaki durum Bir kapı şunu cevaplar
İptalden önce 1 OK, diğer denetimler geçtiği sürece
Solidus'ta iptal bloğu, mesaj kuyruğa alındı 1 OK
İmzalanırken, iletilirken ya da daha önceki bir mesajın arkasında beklerken 1 OK, sonra son kalp atışı maxAge değerinden eskiyse STALE (5)
Uygulama işleminden sonraki her çağrı 2 NOT_ACTIVE (2)

Uygulamadan sonra köprü sessizleşse bile kapı 2 cevabını vermeye devam eder, çünkü durumu bayatlıktan önce denetler.

Tablodaki 3. satır kalp atışıyla sınırlıdır. Ayna mesajları sıkı sırayla uygular, bu yüzden takılmış bir iptal, sonraki her kalp atışını geride tutar. Kapı o zaman, son uygulanan kalp atışı maxAge değerinden eskiyene kadar OK, sonrasında STALE cevabını verir. Sessizlik kapıyı kapatır sayfası maxAge seçimini kapsar.

GET /v1/credentials/{exportId} (API başvurusu) köprünün Solidus'tan okuduğu en yeni mesajı izler; bu yüzden ayna daha uygulamadan revoked diyebilir. Bir sözleşme aynayı okur. Aynanın uygulayıp uygulamadığını görmek için lastMessageId ile adı verilen mesajın durumunu okuyun.

Neyin değişmediği

  • Bağı kaldırılmış bir aktarım. Bağı kaldırılmış (4) kalır ve sonraki bir iptal onun için hiçbir şey kuyruğa almaz. Geri dönemez, çünkü Solidus iptal edilmiş bir belgeyi aktarmayı reddeder. Kapı, iptal edilmiş ve bağı kaldırılmış için aynı şekilde 2 cevabını verir; ikisini ayırt etmek için exportOf okuyun.
  • Bir son kullanma zamanı. İptal mesajı aktarımın validUntil değerini yineler ve iptal onu oynatmaz. Hiçbir Solidus yolu 3 durumunu yazmaz: bir kapı validUntil değerini hedefin blok zamanıyla karşılaştırarak EXPIRED bildirir ve iptal edilmiş bir kayıt önce 2 cevabını verir.
  • Farklı bir kimlik belgesi. Bir iptal tek bir belgenin aktarımlarına dokunur. Ayna bir sahibin aktarımını bir işaretçi olan latestExport ile bulur; anahtarı sahip, tür hash'i ve veren hash'idir. İşaretçi yalnızca etkin bir durum uygulandığında hareket eder.

Aynı verenden aynı türde, aynı zincirde aynı sahibe aktarılmış iki kimlik belgesi alın. Aynı anahtarı paylaşırlar. Önce uygulanan aktarımı iptal edin: işaretçi hâlâ sonrakini gösterir, bu yüzden kapı açık kalır. Sonrakini iptal edin: işaretçi geri dönmez. Kapı sonraki kaydı okur, iptal edilmiş bulur ve ilk aktarım etkin olsa bile 2 cevabını verir; anahtar için yeni bir etkin durum uygulanana kadar. Solana devnet programı aynı kuralı kullanır.

Tek komutla görün

Bu okumalar bir iptali değil, cevapların biçimini gösterir. Aşağıdaki aktarım kimliği, Sepolia'da bir yer tutucu kimlik belgesi ve sahipten hesaplanmıştır ve hiçbir aktarıma ait değildir.

RPC=https://ethereum-sepolia-rpc.publicnode.com
MIRROR=0x0a5a0d19206f436d67B7b87BF4c889d5b769517A

CRED=$(cast from-utf8 'urn:solidus:credential:EXAMPLE')
HOLDER=$(cast pad --left --len 32 0x00000000000000000000000000000000000000a1)
ID=$(cast keccak $(cast concat-hex $CRED 0x00aa36a7 $HOLDER))
echo $ID
# 0x8da5482e9a5c68cebb3ccd317e11aac90ccd35845fbdb1a612bd25cae58887c0

cast call $MIRROR 'exportOf(bytes32)((bytes32,bytes32,bytes32,uint8,uint64,uint64))' $ID --rpc-url $RPC
# (0x0000...0000, 0x0000...0000, 0x0000...0000, 0, 0, 0)

curl -sL -A 'Mozilla/5.0' -w '\nHTTP %{http_code} %{content_type}\n' https://bridge.solidus.network/v1/credentials/$ID
# {"type":"about:blank","title":"export not found","status":404,"code":"export_not_found","detail":"no export 0x8da5482e9a5c68cebb3ccd317e11aac90ccd35845fbdb1a612bd25cae58887c0"}
# HTTP 404 application/problem+json; charset=utf-8

2026-10-08 tarihinde çalıştırıldı, sıfır kelimeleri kısaltılmış olarak. 0x00aa36a7 Sepolia alanıdır, 11155111, dört bayt olarak. Fuji'de (alan 43113) aynı girdiler farklı bir kimliğe hash'lenir: 0x8c3ffed8...6253.

Ayna bilinmeyen bir kimlik için sıfırlar döndürür ve geri almaz. Saklanmış bir kaydın durumu hiçbir zaman 0 değildir, bu yüzden 0 kayıt yok demektir. Ayna sözleşmesini okuyun sayfası bir kapı anahtarının nasıl kurulacağını, veriyi görmeden bir koşulu denetleyin sayfası kapının gerekçelerini listeler. Canlı iletim sağlığı durum sayfasında, güven modeli güvenlik sayfasında.

Okumaya devam edin