Bitcoin, işlemleri ve blokları yaymak için basit bir yayın ağı kullanır. Buna Bitcoin ağı denir. Tüm iletişimler TCP üzerinden yapılır. Bitcoin, -port parametresi ile 8333 dışındaki portların tamamını kullanabilir. IPv6, Bitcoind/Bitcoin-Qt v0.7 ile desteklenir.
Daha fazla bilgi ve kapsamlı teknik bilgi protokol açıklamasında bulunmaktadır.
Bir eşe (peer) bağlanmak için, versiyon numaranızı, blok sayınızı ve geçerli saatinizi içeren bir sürüm mesajı (version) gönderirsiniz. Uzaktaki eş, versiyonunuzdan bağlantı kabul ediyorsa, bir verack mesajı ve kendi sürüm mesajını geri gönderir. Onun versiyonundan bağlantıları kabul ederseniz, kendi verack mesajınız ile cevap vereceksiniz.
Eşlerinizden gelen zaman verileri toplanır ve medyan değer, Bitcoin tarafından saati kullanan tüm ağ görevleri için kullanılır (diğer sürüm mesajları hariç).
Ardından, bilmediğiniz tüm adresleri saklayan getaddr ve addr iletilerini takas edersiniz. addr mesajları genellikle yalnızca bir adres içerir, ancak bazen 1000’e kadar çıkabilir. Bu, bir takasın başında en yaygın olan şeydir.
Birisi bir işlem gönderdiğinde, onu içeren bir inv mesajı tüm eşlere gönderilir. Eşleri, getdata ile tam işlem talep ederler. İşlemi aldıktan sonra geçerli olduğunu düşünürlerse, hareketi tüm akranlarına bir inv ile yayınlar ve bu böyle devam eder. Eşler yalnızca işlem yapmıyorlarsa, işlemleri aktarırlar. Bir eş, halihazırda bildiği bir işlemi tekrar yayınlamayacaktır, ancak bir süre sonra herhangi bloka girmemesi durumunda o işlem unutulacaktır. Ancak, işlemin göndereni ve alıcısı yeniden aynı işlemi yayınlanacaktır.
Oluşturan herhangi biri, geçerli alınan işlemleri toplayacak ve bunları bir blokta dahil etmeye çalışacaktır. Birisi bir blok bulursa, onu içeren bir inv‘i yukarıda belirtildiği gibi tüm eşlerine gönderir. İşlemlerde de aynı şekilde çalışır.
Herkes her 24 saatte bir kendi IP adresini içeren bir addr yayınlar. Nodlar, bu mesajları bir çift eşine iletir ve kendilerine yeni olan bu adresi bir yerde saklarlar. Bu sistem sayesinde, herkes şu anda ağa hangi IP’lerin bağlı olduğunu makul derecede net bir şekilde görür. Ağa bağlandıktan sonra, başlangıç adresiniz olması nedeniyle neredeyse anında herkesin adres veritabanına eklenirsiniz.
Ağ uyarıları alert mesajları ile yayınlanır. Inv benzeri bir sistem kullanılmaz; bunlar tüm uyarıyı içerir. Alınan bir uyarı geçerliyse (özel anahtarlı kişiler tarafından imzalanmış olarak), tüm eşlere iletilir. Bir uyarı hala geçerli olduğu sürece, her yeni bağlantının başında yeniden yayınlanır.
Bir bağlantının başında, bildiğiniz en son blok hash’ini içeren bir getblocks mesajı gönderirsiniz. Eş, bunun en yeni blok olduğunu düşünmezse, listelediğinizden en fazla 500 blok içeren bir inv gönderir. Ardından, getdata ile tüm bu blokları istersiniz ve eş bunları block mesajlarıyla gönderecektir. Tüm bu blokları indirdikten ve işledikten sonra, tüm blokları buluncaya kadar başka bir getblocks göndereceksiniz ve böyle devam edecektir.
BIP 0037, Basit Ödeme Doğrulaması yoluyla ince veya hafif istemcilere destek sağladı. SPV istemcilerinin blok zincirindeki fonların varlığını doğrulamak için tam blok içeriğini indirmeleri gerekmez, ancak diğer nodlardan ihtiyaç duydukları verileri elde etmek için blok başlıkları ve bloom filtreleri zincirine güvenirler. Bu istemci iletişimi yöntemi, tam nodlarla yüksek güvenliği sağlayan güvenilir iletişim sağlar, ancak eşler hangi SPV istemcisinin hangi adresleri aradığını çıkarabileceği için gizlilik noktasında dikkat edilmesi gerekir.
MultiBit ve Bitcoin Cüzdan, temel olarak bitcoinj kütüphanesini kullanarak bu şekilde çalışır.
Adresinizi en son gördüğünüz zamandan bu yana adres veritabanınızı sıralayarak hangi arkadaşlarınızın bağlanacağını seçebilir ve ardından biraz rastgele ekleme yapabilirsiniz.
Bitcoin’in eşleri (peer) bulmak için üç yöntemi vardır.
Yukarıda açıkladığımız addr mesajları, IRC önyükleme sıkıştırma yöntemine benzer bir efekt yaratır. Bir eş katıldığı zaman makul derecede hızlı bir şekilde bilirsiniz, ancak ayrıldıklarında bir süre bunu bilmezsiniz.
Bitcoin, “tohum nodları” (seed nodes) olarak bilinen adreslerin bir listesi ile birlikte gelir. IRC’ye bağlanamıyorsanız ve daha önce hiç ağa bağlanmadıysanız, müşteri bu listedeki nodlardan birine bağlanarak adres veritabanını güncelleştirecektir.
-Addnode komut satırı seçeneği manuel bir şekilde nod eklemek için kullanılabilir. -connect seçeneği, bitcoin’i yalnızca belirli bir noda bağlamaya zorlayabilir.
Bitcoin, birkaç ana bilgisayar adının IP Adreslerini arar ve bunları potansiyel adresler listesine ekler. V0.6.x ve sonrası itibariyle varsayılan tohumlama (seeding) mekanizması budur.
Bitcoin istemcisinin 0.6.x sürümünden itibaren, IRC önyükleme artık varsayılan olarak etkinleştirilmemiştir. Aşağıdaki bilgiler, önceki sürümlerin çoğu için doğrudur.
Bitcoin irc.lfnet.org üzerinde # bitcoin00 ve # bitcoin99 arasındaki rasgele bir kanala katılır. Nickiniz, IP adresinizin kodlanmış bir formuna ayarlanır. Kanaldaki tüm kullanıcıların tüm kanallarını çözerek, Bitcoin’e bağlı olan tüm IP adreslerinin bir listesini alırsınız.
6667 numaralı port’a giden bağlantıları sağlayamayan ana makineler için, lfnet sunucuları da 7777 numaralı port’u dinler.
İstemci mesaj gönderdikten sonra otuz dakika veya daha fazla süre geçtiğinde, eş noda olan bağlantıyı canlı tutmak için bir mesaj gönderecektir.
Bir eş nodunun herhangi bir iletiyi iletmesinin üzerinden doksan dakika geçtiyse, istemci bu bağlantının kapalı olduğunu varsayacaktır.
blokzincir.info Yayında! Türkiye'nin İlk ve Tek Ücretsiz Kripto Analiz Platformu!
Kripto paraların en önemli özelliklerinden ikisi bir merkezi yapıya sahip olmaması ve bütün işlemlerin herkes…
Sanal kripto para ya da teknik adıyla Bitcoin (BTC) özellikle 2016 yılından itibaren adını sıklıkla…
Kripto sanal para olgusu her ne kadar dünya üzerinde 2000’li yıllardan beri düşünülmüş ve tartışılmış…
Günlük hayatta yaptığımız birçok işlem içerisinde mobil teknolojiler yer almaya başladıkça internet ve internet tabanlı…
Blockchain teknolojisi ve alternatif kripto para birimleri dünyada fırtına estirdi. Ancak, yüksek volatilite ve açık…