İçeriğe geçin
buybitcoinsmart

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

MSG_TX

MSG_TX nedir?
MSG_TX, bir envanter kaydını işlem olarak işaretler, tür kodu 1, ve onaylanmamış ödemenizin, hiçbir eş henüz içeriğini görmeden önce eşlere duyurulması bu şekilde olur.

Bitcoin'in duyuru protokolünde bir ödemeyi bir bloktan ayıran tek bir sayı vardır ve o sayı 1. İşlemin 32 baytlık tanımlayıcısıyla birlikte, toplam 36 bayt olarak taşınır ve göndereni hiçbir şeye bağlamaz: baytlar yalnızca bir eş getdata ile yanıt verdiğinde hareket eder. Bitcoin Core 0.21.0 sürümünden beri çoğu eş tamamen farklı bir kodla duyuru yapar.

Nasıl çalışır

MSG_TX bir işlemi txid'siyle, yani tanık verisi hariç tutularak hesaplanan tanımlayıcıyla adlandırır.

Ödemenizi mempool'una kabul eden bir düğüm, eşlerine bu hash'in var olduğunu söyler. Ona sahip olmayan her eş bunu ister ve içerik ancak o zaman bir tx mesajıyla gönderilir. Düğümün artık elinde tutmadığı bir şeyi isteyen eş notfound alır; bu olağan bir durumdur: mempool'lar baskı altında işlemleri dışarı atar ve bir düğüm, zaten düşürdüğü bir işlemin kopyasını kimseye borçlu değildir.

Sunum kasten isteksizdir. Bitcoin Core, bir işlemi hiç duyurmadığı bir eşe, o işlem mempool'da birkaç dakika bekleyene kadar vermez. Bu gecikme olmasaydı, bir yabancı bağlanıp getdata ile düğümünüzün belirli ödemeleri bilip bilmediğini sınayabilirdi; bu da her düğümü kendi mempool'u için bir sorgu arayüzüne çevirir ve bir ödemenin ilk nerede ortaya çıktığını bulmayı çok daha kolay hale getirirdi.

1 türü eski serileştirme kuralını da beraberinde taşır. Ona yanıt olarak sunulan bir işlem, tanık verisi olmadan yazılır; 2017 öncesinde var olan ve bir segwit harcamasında imzaları atlayan biçim budur. Bu yüzden segwit'i tanıyan eşler tanıklı varyantı ister ve BIP339, Ocak 2021'de Bitcoin Core 0.21.0 sürümüyle yayımlandığından beri normalde onun yerine 5 türüyle duyuru yaparlar; işlemleri tanık hash'iyle adlandırırlar, böylece bozulmuş bir tanık artık bilinmeyen bir işlem gibi görünmez.

Nerede görürsünüz

MSG_TX, “işlem yayınlandı” ifadesinin arkasındaki mekanizmadır ve yayınlanmadığı ortaya çıkan durumların da arkasındadır.

Tek bir düğüme bağlı bir cüzdan imzalı bir işlem teslim eder, o düğüm hash'i duyurur ve bir eş onu isteyene kadar başka hiçbir şey olmaz. Hiçbir eş istemezse, ödeme tek bir makinede oturur ve hiçbir madenci onu görmez. Bitcoin Core, hiçbir eşin henüz istemediği kendi cüzdan işlemlerini izler ve biri isteyene kadar onları yeniden duyurur. Bu yüzden güvenlik duvarı arkasındaki bir ev ağında, giden bağlantısı olmayan bir düğüm, hiçbir şey binadan çıkmamışken bir ödemeyi gönderildi olarak bildirebilir.

Borsa para çekme toplu işlemleri de burada karşımıza çıkar. Borsa tek bir hash duyurur, tek bir istek aynı anda düzinelerce müşteriye ödeme yapan bir işlemi iletir ve para çekme işleminizin txid'sinde yabancılara ait çıktıların bulunmasının nedeni budur.

MSG_TX vs tx P2P mesajı

MSG_TX bir işlemi adlandırır, tx mesajı ise bir işlem içerir. Bunları karıştırmak protokol günlüklerini okunamaz hale getirir, çünkü inv ve getdata satırları yalnızca tür kodları ve hash'lerden oluşur, gerçek baytlar ise yalnızca tx satırlarında görünür. Bu ayrım en çok yayılımı hata ayıklarken önemlidir. Hash'inizin bir inv içinde dışarı çıktığını görmek, düğümünüzün birine söylediğini kanıtlar. Ardından bir tx mesajının geldiğini görmek, birinin onu gerçekten istediğini kanıtlar.

Karıştırılmaması gerekenler

Sık sorulan sorular

İşlemimin gerçekten ağa ulaştığını nasıl anlarım?

Hash'i duyurmak tek başına yeterli değildir. Yayınladıktan bir dakika sonra iki bağımsız blok gezgininde kontrol edin, çünkü kontrol etmediğiniz bir düğümde onu görmek, bir eşin onu istediğini ve kabul ettiğini kanıtlar.

Modern düğümler neden işlemleri bunun yerine 5 türüyle duyurur?

Çünkü BIP339 aktarımı işlemleri txid yerine tanık hash'iyle tanımlar. Bu, tanık baytlarını da kapsar, böylece bir eş, tanığı aktarım sırasında değiştirilmiş bir işlemi hiç görmediği bir şeyle karıştırmaz.

İlgili terimler

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

Bu sayfayı İngilizce okuyun