İçeriğe geçin
buybitcoinsmart

Sözlük / Geliştirici başvuru kaynağı

RPC bayt sırası

RPC bayt sırası nedir?
RPC bayt sırası, Bitcoin yazılımının 32 baytlık hash'leri görüntülerken kullandığı ters sıradır ve bir cüzdandan ya da blok gezgininden kopyaladığınız her işlem kimliğinin biçimidir.

Cüzdanınızın işlem kimliği dediği 64 karakterlik dizi, o baytların başka hiçbir yerde aldığı sıra değildir. Bitcoin Core bir hash'i, onu en anlamlı bayt önce gelecek şekilde yazdıran bir türde tutar, her gezgin bu alışkanlığı kopyaladı ve bu gelenek artık kalıcıdır. Bir kimliği arama kutusuna yapıştırdığınızda zararsızdır, koda yapıştırdığınızda pahalıya mal olur.

Nasıl çalışır

RPC bayt sırası, bir düğümden çıkışta uygulanan bir görüntüleme dönüşümüdür, farklı bir hash değildir.

Bir özet SHA-256 işleminden 32 bayt olarak çıkar ve doğal bir yönü yoktur. Bitcoin Core onu, bu baytları tek ve çok büyük bir sayı olarak modelleyen bir kapta tutar ve bir sayıyı yazdırmak en anlamlı kısmı sola koyar, bu da diziyi ters çevirir. Bir bloğu ya da işlemi adlandıran her JSON alanı bu biçimde çıkar: getblockhash yanıtındaki hash, getrawtransaction yanıtındaki txid, getblock yanıtındaki merkleroot, bir bloğu üst bloğuna bağlayan previousblockhash.

Bunun bir sonucu her gezginin ana sayfasında görünür. İş kanıtı, bu yazdırma yönünde uzun bir sıfır dizisiyle başlayan özetler üretir. O sıfırlar ham baytların en öbür ucundadır. Madencilik hedefleri hakkında yazdırılan biçimde akıl yürütmek daha kolaydır; geleneğin düzeltilmek yerine sürmesinin bir nedeni de budur.

Ters çevirme yalnızca hash'ler için geçerlidir. Genel anahtarlar, imzalar, script'ler ve witness öğelerinin hepsi gerçek sıralarında yazdırılır; bu yüzden decodescript ile alınan bir script ham işlemle doğrudan karşılaştırılabilirken bir txid karşılaştırılamaz. Çalışan kodun genellikle bozulduğu yer bu iki kuralın karıştırılmasıdır.

Tek bir yanıt üstelik iki geleneği birden içerebilir. Ayrıntılı çıktıyla bir işlem istediğinizde txid alanı terstir, hemen yanındaki hex alanı ise aynı hash'i diğer yönde taşıyan dokunulmamış serileştirmedir.

Nerede görülür

RPC bayt sırası, çoğu insanın eline geçen tek hash biçimidir.

Bir borsanın para çekme onay e-postasına koyduğu şey, bir blok gezgininin URL'de beklediği şey, bir destek temsilcisinin sizden göndermenizi istediği şey ve Bitcoin-cli programının yazdırdığı şey budur. Bir düğümden getblockhash 0 ile en ilk bloğu istemek 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f değerini döndürür ve bu dizeyi herhangi bir gezgine yapıştırmak 3 Ocak 2009 tarihinde çıkarılan bloğa götürür.

Hata biçimi dardır ve tutarlıdır. Birisi kendi işlem kimliğini hesaplar, serileştirmeyi SHA-256 ile iki kez hash'ler, sonucu bir gezginle karşılaştırır ve hiçbir benzerlik bulamaz. İki dize de aynı 32 bayttır ve birinin ters çevrilmesi gerekir. Bir script ham girdiden bir txid çıkarıp onu bir API'den toplanmış kimlik tablosunda aradığında da aynı düzeltme geçerlidir.

Benimsemeye değer iki saniyelik bir alışkanlık var. Birinin size gönderdiği hash hiçbir yere çıkmıyorsa, işlemin var olmadığı sonucuna varmadan önce ters yönde deneyin. Destek konuları, cüzdandan değil ham veriden kopyalanmış hash'lerle doludur ve bunlar ters çevrilene kadar tamamen geçerli görünür.

Karıştırılmaması gerekenler

Sık sorulan sorular

Borsamın bana verdiği işlem kimliği RPC bayt sırasında mı?

Evet. Her cüzdan, borsa ve gezgin hash'leri bu ters görüntüleme sırasında gösterir, bu yüzden size verilen dize hiçbir dönüşüm yapılmadan doğrudan bir blok gezginine yapıştırılabilir.

Hesapladığım txid gezgininkiyle eşleşmiyor. Nerede hata yaptım?

Neredeyse kesinlikle bayt sırasından başka bir sorun yok. Serileştirilmiş bir işlemi SHA-256 ile iki kez hash'lemek özeti iç sırada verir ve bir düğümün ya da gezginin yazdırdığı herhangi bir şeyle karşılaştırmadan önce 32 baytı ters çevirmeniz gerekir.

İlgili terimler

Daha fazlası: Geliştirici başvuru kaynağı

Bu sayfayı İngilizce okuyun