İçeriğe geçin
buybitcoinsmart

Sözlük / Lightning ve katman 2

Kısa kanal ID'si

Diğer adları: scid.

Kısa kanal ID'si nedir?
Kısa kanal ID'si, Lightning'in bir kanalı adlandırmak için kullandığı 8 baytlık işaretçidir; finanse eden işlemin blok yüksekliğini, o blok içindeki sırasını ve çıktı sırasını tek bir değerde toplar.

Lightning bir genel kanalı, finanse eden çıktısının blok zincirinde nerede durduğuna göre adlandırır, keyfi bir etiketle değil. Üç bayt blok yüksekliğini, üç bayt işlem sırasını, iki bayt da çıktı sırasını taşır; toplamda 64 bit eder ve insanlar için 539268x845x1 biçiminde yazılır. Cüzdanınızın yönlendirdiği bir kanalı, kimsenin panosuna güvenmeden zincire karşı doğrulamanızı sağlayan şey bu koordinattır.

Nasıl çalışır

Kısa kanal ID'sinin üç bileşeni en anlamlıdan başlanarak art arda eklenir: finanse eden işlemin blok yüksekliği, o işlemin blok içindeki sırası ve kanalı fonlayan çıktının sırası. Sabit genişlikler yükseklik ile işlem sırasını 16.777.215, çıktı sırasını ise 65.535 ile sınırlar.

Bir kişi için yazıldığında sayılar ondalık olarak basılır ve aralarına küçük harf x konur; böylece yüksekliği 539.268 olan blokta sırası 845 olan işlemin 1 numaralı çıktısındaki bir kanal 539268x845x1 olur. Şartnamenin gerekçeleri şunlardır: çoğu yazı tipinde küçük harf x bir rakamdan gözle görülür biçimde küçüktür, böylece göz parçaları ayırır, ve tek bir çift tıklama tanımlayıcının tamamını seçer.

Paketlendiğinde düz bir 64 bitlik sayıdır ve BOLT 11 test vektörü bunu gösterir: 66051x263430x1800 yol ipucu (route hint), sırasıyla 01 02 03 04 05 06 07 08 bayt dizisidir, çünkü 66051 0x010203, 263430 0x040506 ve 1800 0x0708'dir.

Kısa kanal ID'si bir hash değil bir konum olduğundan, adlandırdığı blok değişirse geçerliliğini yitirir. Bu yüzden bir kanal, finanse eden işlemi en az 6 onay alana kadar duyurulmaz; bu yüzden de bir düğüm, çıktısı daha az onaya sahip bir duyuruyu yok saymalıdır. Splice işlemi tanımlayıcıyı da değiştirir: splice edilmiş bir kanal, splice işleminin kısa kanal ID'si altında yeniden duyurulur; düğümlerse hâlâ eski tanımlayıcıyı kullanan ödemeleri iletmeye devam eder.

Kimsenin duyurmadığı bir kanalın genel tanımlayıcısı yoktur, bunun yerine eşler birbirine bir takma ad verir; böyle bir ad taşıyan güncelleme dont_forward bayrağını ayarlamalı ve gizlilik için asla iletilmemelidir.

Nerede görülür

Kısa kanal ID'leri Lightning dedikodusunun adresleme katmanıdır ve belirli bir kanalla ilgili her mesajda görünürler.

259 numaralı mesaj türü announcement_signatures, iki eş kanallarını yayımlamayı kabul ettiğinde bir tane taşır. 256 numaralı tür channel_announcement, diğer tüm düğümlerin finanse eden çıktıyı zincirde bulmak için kullandığı tanımlayıcıyı taşır. 258 numaralı tür channel_update, her ücret veya sona erme değişikliğinde onu yineler, her yön için bir kez. 261 numaralı tür query_short_channel_ids, bir eşten bir dizi kısa kanal ID'sinin arkasındaki duyuruları ister; bunlar 0 kodlama baytı altında artan sıralı bir dizi olarak gönderilir; 1 kodlama baytı bir zamanlar zlib sıkıştırması anlamına gelirdi ve artık tamamen yasaktır. Bir düğüm, her iki yöndeki en yeni güncellemesi iki haftadan, yani 1.209.600 saniyeden eski olan herhangi bir kanalı budayabilir.

Sıradan bir kullanıcının bunlardan biriyle karşılaştığı tek yer bir ödeme talebidir: BOLT 11 faturasının r alanı yol ipuçları taşır ve her atlama bir düğüm genel anahtarı, 64 bitlik bir kısa kanal ID'si, iki ücret değeri ve bir sona erme farkıdır. Şartnamenin çözümlü örneği 589390x3312x1'e işaret eder.

Kısa kanal ID'si vs outpoint

Kısa kanal ID'si ile outpoint ikisi de tek bir işlem çıktısını adlandırır ve bunu birbirine zıt yönlerden yapar. Outpoint 36 bayttır; 32 baytlık bir işlem kimliği ardından 4 baytlık bir sıra numarası gelir ve çıktıyı onu oluşturan işlemle adlandırır; kısa kanal ID'si ise 8 bayttır ve aynı çıktıyı nereye yerleştiğiyle adlandırır.

Buradaki değiş tokuş, boyut ile kararlılık arasındadır. Bir outpoint, işlem var olduğu anda geçerlidir, onaysız olanlar dahil, ve asla değişmez. Kısa kanal ID'si ise işlem bir bloğa girene kadar yoktur ve işlemi farklı bir yükseklikte ya da konumda yeniden çıkaran bir yeniden düzenleme, aynı kanal için farklı bir tanımlayıcı doğurur. Lightning bunu kabul eder, çünkü koordinat aynı zamanda çıktıyı bulma talimatı olarak iş görür ve bir kanalın 8 bayt üzerinden dedikoduyla yayılması, 36 bayta göre çok daha ucuzdur.

Karıştırılmaması gerekenler

Sık sorulan sorular

Bir Lightning kanalını kısa kanal ID'sinden blok gezgininde arayabilir miyim?

Evet. Tanımlayıcıyı her x harfinde ayırın: ilk sayı blok yüksekliğidir, ikincisi işlemin o blok içindeki sırasıdır, üçüncüsü de kanalı fonlayan çıktının sırasıdır. Bu üç sayı, bir bloğun işlemlerini sırayla listeleyen herhangi bir gezginde sizi finanse eden işleme götürür.

Bir kanalın kısa kanal ID'si neden değişti?

Neredeyse her zaman kanal splice edildiği için. Bir splice, eski finanse eden çıktıyı yeni bir çıktıya harcar ve kanal, splice işleminin kısa kanal ID'si altında yeniden duyurulur; düğümlerse hâlâ eski tanımlayıcıyı kullanan ödemeleri iletmeye devam eder. Finanse eden işlemi başka bir yerde yeniden çıkaran bir blok zinciri yeniden düzenlemesi de onu değiştirirdi.

Kısa kanal ID'si ile kanal ID'si aynı şey mi?

Hayır. Bunlar iki ayrı alandır ve BOLT 7 içindeki announcement_signatures mesajı ikisini yan yana taşır. Yalnızca kısa kanal ID'si blok zincirinde bir koordinattır.

Sıradaki okuma

İlgili terimler

Daha fazlası: Lightning ve katman 2

Bu sayfayı İngilizce okuyun