Bir İşlemin Anatomisi: Gerçek ve Başarısız Tek Bir Transfer, Uçtan Uca Okundu
Düzeltme, bu sayfanın yazıldığı gün yapıldı. Önce zincirin "blok üretmediğini" söylüyordu, çünkü uç on dokuz dakikalık bir gözlem boyunca kıpırdamamıştı. Bu yanlıştı. Gözlem sessiz bir dönemin içine denk gelmişti.
İkinci düzeltme, 2026-08-02, ve birincinin rakamlarının yerini alıyor. Bu sayfa sonra zincirin "yaklaşık bir saniye içinde üç blok ürettiğini, sonra yirmi ya da otuz dakika sustuğunu" söylüyor ve bundan yükseklik başına bir oran türetiyordu. İki rakam da yanlış dizini saymanın eseriydi.
Bu zincirde ardışık üç blok tek bir yükseklik değerini paylaşır, dolayısıyla yükseklikle saymak üç blokta birini görür ve üç aralığı bire çökertir. Kanonik sırayla yeniden ölçüldüğünde sessizlik yapılandırılmış bir on dakikalık kalp atışıdır: teklif eden olay güdümlüdür ve iş yokken, yorumu bunu söyleyen adı konmuş bir sabitten, her on dakikada bir boş blok üretir. Ardışık sekiz aralık altı yüz saniyede geldi, her biri ondan birkaç saniye içinde.
Yani zincir, bu sayfanın kastettiği anlamda kesintili değildi. Boştaydı ve burada boşta olmanın tasarlanmış bir kadansı var. Tam anlatım kesinlik sayfasında. Geçmiş baştan sona okunabilir, ki bu sayfanın kullandığı şey odur, ve buradaki hiçbir şey ağın herhangi bir gündeki hızı hakkında kanıt sayılmamalıdır.
Üç çağrı, bir değil
Bir blok işlemlerini içermez. Bir sayım ve bir özet dizisi taşır.
Yani bir işlemi okumak üç çağrı alır: bloğu çekin, ondan bir özet alın, işlemi çekin ve makbuzunu ayrıca çekin.
Bu, buna karşı bir şey inşa eden herkes için önemlidir. Bir blok okuması size kaç işlem olduğunu ve adlarının ne olduğunu söyler. Hiçbirinin ne yaptığını söylemez.
Bulduğumuz işlem
Uçtan geriye tarayarak yirmi beş yükseklik istendi, dokuzu okunabilirdi ve bunlardan tam olarak biri bir işlem taşıyordu.
Gövdesi adlandırmaya değer üç şey taşıyor: bir sayaç değeri, türlenmiş bir yük ve gönderenin açık anahtarı.
Yük etiketlenmiş bir çeşittir. Bu bir transferdir, bir tutar ve bir hedef taşır. Bir yük serbest biçimli bir yığın değildir: zincir hangi tür işlemi tuttuğunu bilir, ki ücretinin çalışmadan önce belirlenebilmesinin sebebi budur.
Hedef ve açık anahtar bayt dizileri olarak geliyor, oysa aynı zincirin doğrulayıcı listesi adresleri kısa ve okunabilir dizgiler olarak döndürüyor. Aynı türden şeyin iki temsili, iki yöntemde, ve bir istemcinin hangisini tuttuğunu bilmesi gerekir.
Ve başarısız oldu
Makbuz bunu açıkça söylüyor; sebebi, kaydedildiği yüksekliği, gerçekte ödenen ücreti ve boş bir olay listesini adlandırarak.
Sebep: gönderen transfer ücretini karşılayamadı. Durum iki niceliği de adlandırıyor: hesabın neye sahip olduğunu ve işlemin neye ihtiyaç duyduğunu, ki bu, üzerine hareket edebileceğiniz bir makbuzla tahmin etmek zorunda kaldığınız bir makbuz arasındaki farktır.
Başarısızlığın neden yararlı kısım olduğu
Bu estate ücret kuralını kaynakta okudu: ücretini karşılayamayan bir işlem sıfır ücretli bir makbuz döndürür ve hiçbir durum yazmaz.
Makbuz bunu dışarıdan doğruluyor. Gerçekte ödenen ücret sıfır. Kodda okunan kural ile çalışan zincirin ürettiği eser uyuşuyor, ki bu ikisinin tek başına değerinden fazlasını taşır.
Ve gereken tutar bir transfer için düz çizelgeyle eşleşiyor, dolayısıyla çizelge kuramsal değil: zincirin uyguladığı şey.
Tek bir işlemin size söyleyemedikleri
Olayların hiç doldurulup doldurulmadığı. Bu makbuzun olay listesi boş ve bir boş liste, alanın kullanılmadığının kanıtı değildir.
Başarısızlıkların tipik olup olmadığı. Dört yüz yükseklikte bir işlem, neredeyse hiç trafiği olmayan bir ağda bir örneklemdir ve ondan bir oran inşa etmeyeceğiz.
Yirmi beş yükseklikten on altısının neden null döndürdüğünün artık bir cevabı var, yukarıdaki paragraf düzeltilirken bulundu: okunabilir her yükseklik üçe bölünebiliyor ve aralarındaki yükseklikler hatasız biçimde null döndürüyor. İlk kez açıklanamamış olarak kaydedilmişti; rastgele kayıp değil, tam olarak her üçte ikisi. O yüksekliklerin var olup çekilemediği mi yoksa hiç üretilmediği mi, dışarıdan hâlâ yanıtlanabilir değil.
Kendiniz neyi kontrol edebilirsiniz
solidus_getBlockbir yükseklikle, sonra ondan bir özetlesolidus_getTransaction, sonra aynı özetlesolidus_getReceipt
Boş bloklar bekleyin. Bu ağdaki blokların çoğu hiçbir şey taşımaz, dolayısıyla ucun içinde bir şey olduğunu varsaymak yerine geriye tarayın.
Okumaya devam edin
- Ağ İstatistik Panosunu Okumak: Kilometre Taşları Artık Tutuyor, İki Kutucuk ise Var Olmamalı
- Yeniden Oynatılmış Bir İşlemi Durduran Sayaç: Katı Eşitlik ve Hiçbir Şeye Mal Olmayan Bir Başarısızlık
- Solidus'ta Gaz Ücreti Var mı? Hayır, ve Yalnızca Ücret Çizelgesini Okumak Size Yanlış Cevabı Verir
- Her Bloğun Arkasındaki Yetersayı Sertifikası: İyi Kurulmuş ve Dışarıdan Görünmez

