Ethereum Arşiv Düğümü
Son düzenleme: @thebuzagi(opens in a new tab), Invalid DateTime
Bir arşiv düğümü, tüm geçmiş durumların arşivini oluşturacak şekilde inşa edilmiş bir ethereum istemcisi örneğidir. Berlirli kullanım durumlarında kullanışlı bir araçtır, ancak çalıştırmak tam bir düğümü çalıştırmaktan daha zor olabilir.
Arşiv düğümünün önemini kavramak için, "durum" kavramını zihninizde netleştirin Ethereum işlem tabanlı bir durum makinesi olarak adlandırılabilir. Durumlarını değiştiren hesaplar ve uygulamaların işlemlerini yürütmeyi içerir. Tüm hesaplar ve sözleşmeler hakkında bilgi içeren global veriler durum adı verilen trie veritabanında saklanır. Bu, yürütüm katmanı (EL) istemcisi tarafından işlenir ve şunları içerir:
- Hesap bakiyeleri ve nonce'ler
- Sözleşme kodu ve depolama
- Mutabakat ile ilgili veriler, örn. Hisseleme Mevduat Sözleşmesi
Ethereum istemcileri, ağ ile etkileşime girmek, yeni bloklar üretmek ve oluşturmak için, en güncel değişiklikleri (zinricin ucunu) ve dolayısıyla mevcut durumu takip etmelidir. Tam düğüm olarak ayarlanmış yürütüm katmanı istemcileri ağın durumunu doğrular ve takip eder fakat yalnızca birkaç geçmiş durumu önbellekte tutar. Örneğin durum sondaki 128 bloka bağlıdır, böylece yeni zincir düzenlemeleri işlenebilir ve son verilere hızlı erişim sağlanabilir. Son durum, istemcilerin gelen işlemleri doğrulaması ve ağı kullanması için gereken şeydir.
Durumu, bloklardaki anlık bir ağ görüntüsü olarak ve arşivi ise geçmişin tekrarı gibi düşünebilirsiniz.
Daha eski durumlar, ağın çalışması için gerekli olmadığından ve zamanı geçmiş verilerin tutulması istemci için gereksiz ve yararsız olacağından güvenli bir şekilde kaldırılabilir. Belli bir blok öncesine ait bloklar (ör. baştan 128 blok gerisi) verimli bir şekilde atılır. Tam düğümler sadece eski blok zincir verilerini (blokları ve işemleri) ve ara sıra geçmiş görüntüleri tutar böylece istendiğinde eski durumları yeniden yaratabilir. Bunu eski işlemleri EVM'de (Ethereum Sanal Makinesi'nde) tekrar gerçekleştirerek yaparlar ama bu, istenen durum en yakındaki geçmiş görüntüden uzaksa hesaplama açısından maliyetli olabilir.
Ancak bu, tam düğümde eski bir duruma erişmenin yüksek düzeyde hesaplama gerektirdiğini gösterir. İstemcinin tüm işlemleri tekrardan gerçekleştirmesi ve eski bir durumu başlangıç blokundan itibaren hesaplaması gerekebilir. Arşiv düğümleri bu sorunu, en yeni durumlar yerine her blok oluşturulduktan sonra oluşan durumların hepsini depolayarak çözer. Bu daha yüksek saklama alanı gerektiren bir seçimdir.
Şunu belirtmekte fayda vardır ki, ağlar eski verileri saklamak ve sağlamak işin arşiv düğümlerine bağlı değillerdir. Bahsedildiği gibi tüm geçmiş ara durumlar tam düğümden çıkarılabilir. Tüm işlemler her bir tam düğümde saklanır (şimdilik 400 G'den az) ve tüm arşivi inşa etmek için tekrar oynatılabilir.
İşlem göndermek, sözleşme dağıtmak, mutabakat doğrulamak gibi Ethereum'un günlük kullanımları eski verilere erişimi gerektirmez. Kullanıcılar bu standart etkileşimler için arşiv düğümlerine ulaşmaya ihtiyaç duymaz.
Durum arşivinin en büyük avantajı, geçmiş durumlarla ilgili sorulara hızlı erişimidir. Örneğin arşiv düğümü aşağıdaki gibi sonuçlar döndürür:
- 0x1337... hesabının blok 15537393'teki ETH bakiyesi neydi?
- Blok 1920000'daki sözleşme 0x'in token 0x bakiyesi nedir?
Yukarıda açıklandığı gibi, tam düğümler bu verileri EVM (Ethereum Sanal Makinesi) uygulaması ile üretir ve bu CPU ve zaman gerektirir. Arşiv düğümleri bunlara disk üzerinden erişir ve anında yanıt verir. Bu altyapının belirli bölümleri için kullanışlıdır, örneğin:
- Blok arayıcıları gibi servis sağlayıcılar
- Araştırmacılar
- Güvenlik analistleri
- Merkezisyetsiz uygulama geliştiricileri
- Denetim ve uyum
Eski verilere ulaşmayı sağlayan bazı ücretsiz hizmetler vardır. Arşiv düğümlerini çalıştırmak daha maliyetli olduğu için bu hizmetlere erişim genellikle sınırlıdır ve sürekli değildir. Eğer projeniz geçmiş verilere sürekli erişim gerektiriyorsa, kendiniz bir tane çalıştırmayı düşünmelisiniz.
Bu bağlamda arşiv düğümleri, durum veritabanı işlerken ve JSON-RPC uç noktaları sağlarken kullanıcılara bakan yürütüm katmanı tarafından sağlanan veri anlamına gelir. Yapılandırma seçenekleri, senkronizasyon süresi ve veritabanı boyutu istemciye göre değişebilir. Detaylar için lütfen istemci tarafından sağlanan dökümanları referans alın.
Kendi arşiv düğümünüzü başlatmadan önce, istemciler arasındaki farklar hakkında bilgi sahibi olun, özellikle çeşitli donanım gereklilikleri hakkında. Pek çok istemci bu özellik için optimize edilmemiştir ve arşivleri 12 TB'den daha fazla alan gerektirir. Buna karşın Erigon gibi uygulamalar aynı veriyi 3 TB altında saklayabilir. Dolayısıyla bu uygulamalar arşiv düğümü çalıştırmanın en verimli yolu haline gelir.
Bir düğümü çalıştırmak için genel tavsiye edilenler dışında, bir arşiv düğümü donanım ve bakım açısından zahmetli olabilir. Erigon'un ana özellikleri(opens in a new tab) düşünüldüğünde en pratik bakış açısı Erigon istemci ugulamasının kullanılmasıdır.
Belirli bir mod için donanım gereksinimlerini müşteri dökümanlarında doğruladığınızdan her zaman emin olun. Arşiv düğümleri için en büyük gereklilik disk alanıdır. İstemciye bağlı olarak 3 TB ile 12 TB arasında değişir. Daha büyük miktardaki veriler için HDD daha iyi bir çözüm olarak düşünülse bile, senkronize etmek ve zincirin başını sürekli güncellemek SSD sürücülerini gerektirir. SATA(opens in a new tab) sürücüleri yeterlidi fakat güvenilir kalitede, en az TLC'de(opens in a new tab) olmalıdırlar. Diskler yeterli yuvaya sahip bir masaüstü bilgisayara veya sunucuya yerleştirilebilir. Bunun gibi özel cihazlar, yüksek çalışma süresi gerektiren düğümleri çalıştırmak için idealdir. Bir dizüstü bilgisayarda çalıştırmak tamamıyla mümkün, ancak taşıması ek bir maliyete tabi olacaktır.
Tüm veri bir hacme sığmalıdır, bu yüzden diskler bağlı olmalıdır, örneğin RAID0(opens in a new tab) veya LVM(opens in a new tab) ile. Verilerin herhangi bir düşük seviyeli hata olmadan doğru bir şekilde diske yazılmasını sağlayan "Yazma sırasında kopyalama" özelliğini desteklediği için ZFS(opens in a new tab) kullanmayı da düşünmek faydalı olabilir.
Kazara gerçekleşebilecek veritabanı bozulmalarını daha kararlı ve güvenli bir şekilde önlemek için, özellikle profesyonel kurulumlarda sisteminiz destekliyorsa ECC memory(opens in a new tab) kullanmayı düşünebilirsiniz. RAM boyutunun genellikle bir tam düğümle aynı olması tavsiye edilir, ancak daha fazla RAM senkronizasyonu hızlandırmaya yardımcı olabilir.
İlk senronizasyon sırasında arşiv modundaki istemciler başlangıç blokundan itibaren tüm işlemleri yeniden gerçekleştirir. Yürütme hızı çoğunlukla CPU tarafından sınırlanır, bu nedenle daha hızlı bir CPU, ilk senkronizasyon süresine yardımcı olabilir. Ortalama bir tüketici bilgisayarında, ilk senkronizasyon bir aya yakın sürebilir.
- Ethereum Tam Düğümü - Arşiv Düğümü(opens in a new tab) - QuickNode, Eylül 2022
- Kendi Ethereum Arşiv Düğümünü İnşa Et(opens in a new tab) - Thomas Jay Rush, Ağustos 2021
- Erigon, Erigon'un RPC (Uzaktan Prosedür Çağrısı) ve TrueBlocks (scrape ve API) hizmet olarak nasıl kurulur(opens in a new tab) – Magnus Hansson, Eylül 2022'de güncellendi