İçeriğe geçin
buybitcoinsmart

Sözlük / Düğümler ve yazılım

Başlangıç dizesi

Diğer adları: Ağ sihirli baytları.

Başlangıç dizesi nedir?
Başlangıç dizesi, her Bitcoin ağı mesajının başında yer alan dört baytlık önektir ve başka hiçbir şey okunmadan önce göndericinin hangi ağda olduğunu belirtir.

Dört bayt, Bitcoin'in paralel ağlarının yanlışlıkla birbiriyle konuşmasını engeller. Mainnet f9beb4d9 kullanır, regtest ise fabfb5da kullanır; beklenmeyen bir değer okuyan bir düğüm mesajı ve genellikle onunla birlikte bağlantıyı da atar. Bu kontrol saldırganları değil, yanlış yapılandırmayı yakalar, çünkü doğru dört baytı herkes gönderebilir.

Nasıl çalışır

Başlangıç dizesi bir mesajın sıfırdan üçe kadar olan baytlarını kaplar ve düğüm, kendisinden sonra gelen herhangi bir şey için bellek ayırmadan önce bu dize kontrol edilir.

Bitcoin Core her zincir için tek bir değeri sabit olarak kodlar. Mainnet 0xf9beb4d9'dur. Testnet3 0x0b110907'dir. BIP94 ile birlikte Bitcoin Core 28.0 sürümünde eklenen testnet4 0x1c163f28'dir. Regtest 0xfabfb5da'dır. Signet ilginç durumdur: bir sabit yerine dört baytı, o signet'in bloklarını kimin imzalayabileceğini tanımlayan meydan okuma betiğinin hashlenmesiyle türetilir, böylece herkese açık varsayılan signet ile test için oluşturduğunuz özel bir signet otomatik olarak birbiriyle konuşmayı reddeder.

Değerler güzel görünsün diye seçilmedi. Bunlar sıradan akış verisinde görünmesi olası olmayan bayt dizileridir, bu nedenle bozulmuş veya eşitlemesi kaymış bir TCP akışını okuyan bir istemci, her şeyi bırakmak yerine deseni yeniden bulana kadar ileri tarayabilir ve o noktadan devam edebilir.

Aynı dört bayt diske de yazılır. Ham blokları tutan blk00000.dat dosyalarının içinde her saklanan blok, kendi ağının başlangıç dizesi ve dört baytlık bir uzunlukla başlar. Bu çerçeveleme sayesinde bir düğüm, yazmayı bitirmediği bir blok dosyasında ilerleyebilir, kayıtlar arasındaki sınırı bulabilir ve dosyanın tamamı yerine yalnızca kesik kuyruğu atabilir.

Nerede görülür

Başlangıç dizesi, Bitcoin trafiği basitçe kullanılmak yerine incelendiğinde ortaya çıkar.

8333 numaralı bağlantı noktasında bir paket yakalama açın ve konuşmadaki her çerçeve f9 be b4 d9 ile başlayacaktır. Protokol çözümleyicileri trafiği etiketlemek için tam da bu imzayı temel alır. Kod tabanını çatallayan her proje, ilk işlerinden biri olarak dört baytı değiştirdi; bu yüzden çatallar el sıkışmaları başka yönden aynı olsa da birbirine bağlanamaz.

Sıradan bir kullanıcı için bu, bir kez, pek işe yaramayan bir sessizlik olarak ortaya çıkar. Testnet için yapılandırılmış bir cüzdanı bir mainnet düğümüne yönlendirin; hata, ret bildirimi, bağlantı almazsınız: düğüm tanımadığı dört baytı okur, mesajı atar ve sonunda eşi düşürür. Bir düğüm ile bir cüzdan birbirini görmeyi reddettiğinde ilk kontrol edilecek şey, iki tarafın da aynı ağda olduğunu doğrulamaktır.

Başlangıç dizesi vs mesaj başlığı

Başlangıç dizesi tek bir alandır; mesaj başlığı ise dördünün tamamıdır. Bir başlık 24 bayttır ve başlangıç dizesinden, ardından ASCII olarak on iki baytlık bir komut adından, ardından dört baytlık bir yük uzunluğundan, ardından dört baytlık bir sağlama toplamından oluşur. Başlangıç dizesi hangi ağ, komut ne tür bir mesaj, uzunluk ise daha ne kadar okunacağı sorusunu yanıtlar. İnsanlar başlığı kastettiklerinde bu iki adı birbirinin yerine kullanır, bu da bir hex dökümünde bayt konumlarını saymaya başladığınız anda gerçekten kafa karıştırıcı hale gelir.

Karıştırılmaması gerekenler

Sık sorulan sorular

Bitcoin'in ağ sihirli baytları nedir?

Mainnet 0xf9beb4d9 kullanır, testnet3 0x0b110907 kullanır, testnet4 0x1c163f28 kullanır ve regtest 0xfabfb5da kullanır. Signet'in sabit bir değeri yoktur: dört baytı, o signet'in bloklarını kimin imzalayabileceğini tanımlayan meydan okuma betiğinin bir hashinden türetilir.

Cüzdanım neden düğümüme sessizce bağlanamıyor?

Çoğu zaman ikisi farklı ağlarda olduğu için. Beklenmeyen bir başlangıç dizesi okuyan bir düğüm, hata göndermeden mesajı atar; bu yüzden bir mainnet düğümüne yönlendirilmiş bir testnet cüzdanı uyarı yerine sessizlik üretir.

İlgili terimler

Daha fazlası: Düğümler ve yazılım

Bu sayfayı İngilizce okuyun