

Full node, bir blokzincir ağının işlem ve blok verilerini indirip saklayan, her yeni bloğu ağın konsensüs kurallarına göre bağımsız şekilde doğrulayan bir yazılımdır. Full node çalıştıran bir bilgisayar başka bir sunucuya güvenmeden zincirin geçerli halini kendi başına belirler. Bitcoin ve Ethereum gibi ağlarda güvenliğin ve merkeziyetsizliğin temelini oluşturur.
Bitcoin ağında tahmini olarak on binlerce full node çalışır ve her biri kendi kopyasını tutarak her bloğu tek tek kontrol eder. Full node, bir madenciden veya bir borsadan gelen bilgiyi sorgusuz kabul etmez.
Full node nasıl çalışır?
Full node çalışırken ağa gelen her yeni bloğu ve işlemi indirir. İmzaları, çifte harcama durumunu ve arz kurallarını protokole göre kontrol eder. Kurallara uymayan blokları anında reddeder, geçerli olanları ise yerel kopyasına ekleyip diğer node’lara iletir.
Onaylanmamış işlemler full node’un mempool adı verilen bekleme alanında tutulur. Bir işlem mempool’a girmeden önce full node onu imza geçerliliği, bakiye yeterliliği ve format kuralları açısından denetler. Kurallara uymayan işlemler mempool’a bile alınmaz.
Bitcoin ağında bu denetim UTXO seti üzerinden yapılır. Her full node hangi çıktıların harcanmamış olduğunu kendi veritabanında tutar. Full node’lar ağda temel olarak iki işlev üstlenir. Bunlar blokları ve işlemleri diğer node’lara aktarmak ve kullanıcı sorgularını yanıtlamaktır.
Yeni bir blok geldiğinde full node bu bloğu doğrular, kendi zincirine ekler ve ağdaki diğer düğümlere aktarır. Bir madencinin ürettiği blok kurallara aykırıysa ağın çoğunluğu onaylasa bile full node bu bloğu kabul etmez.
Full node’lar birbirine doğrudan değil, eşler arası (P2P) bir ağ üzerinden bağlanır. Her full node genellikle onlarca farklı düğümle bağlantı kurar ve doğruladığı veriyi bu bağlantılar üzerinden komşularına iletir. Bu yapı sayesinde tek bir sunucu çökse bile ağ çalışmaya devam eder.
Full node türleri nelerdir?
Full node’lar sakladıkları geçmiş veri miktarına göre archival full node ve pruned full node olarak ikiye ayrılır. Archival full node genesis bloğundan bu yana tüm veriyi diskte tutarken pruned full node doğrulamayı tamamladıktan sonra eski blok verilerini silerek disk alanından tasarruf eder.
Archival full node; blokzincirin tamamını, genesis bloğundan güncel bloğa kadar saklar. Geçmişe dönük her sorguyu yerel diskten yanıtlayabilir. Pruned full node ise her bloğu aynı doğrulukla kontrol eder ancak doğrulama tamamlandıktan sonra eski blok verilerini siler. Disk alanı çok daha azdır ancak doğrulama yetkisi tamdır.
Pruned full node tam anlamıyla bir full node’dur çünkü konsensüs kurallarını eksiksiz uygular. Fark yalnızca sakladığı geçmiş veri miktarındadır. Ethereum ağında ise archive node adı verilen ayrı bir kategori bulunur. Bu düğüm türü her bloktaki tüm hesap ve kontrat durumunu saklar. Bu nedenle çok daha fazla depolama alanı ister.
Full node ile light node arasındaki fark nedir?
Light node yalnızca blok başlıklarını indirir ve işlemlerin doğruluğunu full node’lara sorarak kontrol eder. Full node ise her bloğu ve işlemi kendi başına doğrular. Bu yüzden light node çok daha az depolama ve bant genişliği kullanır ama başka bir düğüme güvenmek zorunda kalır.
Mobil cüzdanların çoğu light node mantığıyla çalışır çünkü telefon donanımı tüm blokzinciri indirmeye uygun değildir. Bu yaklaşım kullanıcı deneyimini kolaylaştırır ancak bağımsız doğrulama açısından full node’a göre daha zayıf bir konumdadır.
Full node ile madenci ve validator arasındaki fark nedir?
Full node ağ kurallarına uygunluğu denetler. Yeni blok üretmez. Madenci Proof-of-Work (PoW) ağlarında hesaplama gücüyle yeni blok üretmeye çalışır. Validator ise Proof-of-Stake (PoS) ağlarında kripto varlığını stake ederek konsensüse doğrudan katılır.
Her madenci aslında bir full node çalıştırır çünkü ürettiği bloğun geçerli olduğundan emin olmalıdır. Ancak her full node bir madenci değildir. Aynı mantık validator için de geçerlidir. Validator olmak stake gerektirirken sıradan full node çalıştırmak için herhangi bir kilitleme şart değildir.
Full node çalıştırmak için neler gerekir?
Bitcoin Core belgelerine göre bir full node çalıştırmak için en az 7 gigabayt boş disk alanı, 2 gigabayt RAM ve saniyede en az 50 kilobayt yükleme hızına sahip bir internet bağlantısı gerekir. İlk senkronizasyon sırasında yaklaşık 740 gigabayt veri indirilir. Bu nedenle günümüzde 1 terabaytlık bir SSD önerilir. Full node, pruned modda çalıştırılırsa bu miktar yaklaşık 7 gigabayta kadar düşebilir.
Ethereum ağında ise gereksinimler biraz daha yüksektir. Yaygın kullanılan istemcilerde bir full node için en az 1 terabayt SSD alanı, hızlı bir işlemci ve 16 gigabayt civarında RAM önerilir. Archive node çalıştırmak isteyenler ise istemciye göre birkaç terabayttan 12 terabayta kadar depolama alanı ayırır.
