Sözlük / Düğümler ve yazılım
Addrv2
- Addrv2 nedir?
- Addrv2, Bitcoin düğümlerinin eski addr mesajının ifade edemediği eş adreslerini yaymak için kullandığı eşler arası mesajdır; her adres Tor v3, I2P veya Cjdns için bir baytlık ağ kimliğiyle etiketlenir.
Tanımlandığı belge: BIP-155.
Eski addr mesajı sabit 16 baytlık bir adres alanı taşır; bu alan 32 baytlık bir Tor v3 onion adresini barındıramaz. BIP-155, bu alanı bir baytlık ağ kimliği ve en fazla 512 bayt uzunluğunda bir adresle değiştirir; mesaj başına en fazla 1.000 giriş sınırı vardır. Varlıklarınızı ev IP adresinizden uzak tutmak için düğümünüzü Tor üzerinden çalıştırın; addrv2, diğer düğümlerin onun var olduğunu öğrenme yoludur.
Nasıl çalışır
Addrv2, yerini aldığı mesajın biçimini korur ve tek bir alanı yeniden yazar.
Her giriş beş şey taşır: o düğümün en son ne zaman bağlı görüldüğüne dair bir Unix zaman damgası, artık her zaman sekiz bayta mal olmaması için CompactSize kodlamasına taşınan bir hizmet biti alanı, bir baytlık ağ kimliği, adresin kendisi ve ağın portu yoksa sıfır olması gereken 16 bitlik bir port. BIP-155 yedi kimlik ayırır: 4 baytla 0x01 IPv4, 16 baytla 0x02 IPv6, 10 baytla 0x03 Tor v2, 32 baytla 0x04 Tor v3, 32 baytla 0x05 I2P, 16 baytla 0x06 Cjdns ve 16 baytla 0x07 Yggdrasil. 1.000 girişten fazlasını taşıyan bir mesaj, 512 bayttan uzun bir adres veya uzunluğu kimliğiyle uyuşmayan bir adres reddedilmelidir.
Bu kimliklerden ikisi bir dipnot gerektirir. Tor v2 çalışmayı bıraktı: 2025-10-01 tarihli BIP'in 2.0.0 sürümü, istemcilerin artık 0x03 kimliğini yaymaması ve iletmemesi, alındığında yok sayması gerektiğini kaydeder; Bitcoin Core ise numarayı enum'unda tutarken TORV2'yi artık desteklenmiyor olarak belgeler. Core yedinci kimliği hiç uygulamaz; çünkü src/netaddress.h dosyasındaki BIP155Network enum'u IPV4 = 1 ile CJDNS = 6 arasında çalışır ve orada durur; MAX_ADDRV2_SIZE ise şartnamenin belirttiği aynı 512 bayta ayarlıdır.
Destek varsayılmaz, müzakere edilir. Bir düğüm bunu sendaddrv2 göndererek duyurur ve zamanlama katıdır: yalnızca eşin version mesajından sonra ve verack'ten önce; Core, geç gönderen bir eşin bağlantısını keserek bunu uygular. Hiç göndermezseniz eş eski biçimi kullanmaya devam eder ve eski alanın ifade edemediği her adres türünü sessizce düşürür. 2026-08-03 tarihli 2.1.0 sürümü, ilgili bir boşluğu, IPv6 içine sarılmış IPv4 adreslerinin, yani ::ffff:0:0/96 aralığının IPv6 kimliği altında taşınmaması gerektiğine karar vererek kapattı; çünkü iki kimlik altında gelen tek bir makine iki ayrı eş olarak sayılır.
Nerede görülür
Addrv2, Bitcoin Core içinde doğrudan okuduğunuz bir şey olarak değil, bir ağ etiketi olarak görünür.
getpeerinfo çağrısı her bağlantıyı bir ağ adıyla etiketler ve getnodeaddresses birini argüman olarak alır: src/rpc/net.cpp dosyasındaki yardım metni örnek olarak getnodeaddresses 4 "i2p" ve -named getnodeaddresses network=onion count=12 kullanır. getaddrmaninfo çağrısı daha ileri gider ve saklanan adres havuzunu, all_networks toplamını eklemeden önce ağ başına new, tried ve total sayılarıyla döker. ipv4 ve ipv6 dışındaki satırlar, hiçbir addr mesajının kodlayamayacağı adresler barındırır; düğümünüz onları ilk kez nasıl duymuş olursa olsun.
Onion örneği, gerçekte ne kadar az verinin yolculuk ettiğini gösterir. Bir Tor v3 adresi, .onion sonekinden önce 56 base32 karakterdir ve 32 baytlık bir ed25519 genel anahtarını, iki baytlık bir SHA3-256 sağlama toplamını ve bir baytlık bir sürümü kodlar. Ağ üzerinden yalnızca genel anahtar gider; alan düğüm gerisini yeniden kurar, çünkü sürüm her zaman 3 ve sağlama toplamı, elinde zaten olanın bir fonksiyonudur.
Bir varlık sahibi için bu, tek görünür sonucu olan bir altyapı işidir. Her şeyi varsayılan olarak Tor üzerinden yönlendiren cüzdanlar, bunlar arasında Wasabi, ve kendi düğümünüze Tor üzerinden ulaşan cüzdanlar, örneğin Blockstream Green, hepsi onion eşlerin en başta bulunabilir olmasına bağlıdır.
Addrv2 vs Bitcoin adresi
Bir Bitcoin adresi ile bir addrv2 adresi üç harfi paylaşır, başka hiçbir şeyi değil. Bir addrv2 girişi bir ağ üzerindeki konumdur, bir makinenin nerede durduğunun cevabıdır ve ne kadarı olursa olsun Bitcoin alamaz. Bir onion adresini bir cüzdanın gönderme alanına yapıştırırsanız biçimi bozuk olduğu için reddedilir; doğru sonuç da budur.