Ana içeriğe geç

Düğümler ve istemciler

Son düzenleme: , Invalid DateTime

Ethereum, blokları ve işlem verilerini doğrulayabilen yazılım (düğümler olarak bilinir) çalıştıran dağıtılmış bir bilgisayar ağıdır. Bir düğümü "çalıştırmak" için bilgisayarınızda istemci olarak bilinen bir uygulamaya ihtiyacınız var.

Ön koşullar

Daha derine dalmadan ve kendi Ethereum istemci örneğinizi çalıştırmadan önce, eşler arası ağ kavramını ve EVM'nin temellerini anlamalısınız. Ethereum'a giriş yazımıza bir göz atın.

Eğer düğümler konusunda acemiyseniz, ilk olarak bir Ethereum düğümü çalıştırmak üzerine kullanıcı dostu öğreticimize göz atmanızı öneririz.

Düğümler ve istemciler nedir?

"Düğüm", çalışan bir istemci yazılımı parçasını ifade eder. İstemci, her bloktaki tüm işlemleri doğrulayan, ağı güvenli ve verileri doğru tutan bir Ethereum uygulamasıdır.

Bu düğüm haritasına(opens in a new tab) bakarak Ethereum ağının gerçek zamanlı görünümünü görebilirsiniz.

Go, Rust, JavaScript, Typescript, Python, C# .NET, Nim ve Java gibi çeşitli programlama dillerinde birçok Ethereum istemcisi mevcuttur. Bu uygulamaların ortak noktası, hepsinin resmi bir şartnameyi takip etmesidir (başlangıçta Ethereum Sarı Kağıdı(opens in a new tab)). Bu şartname, Ethereum ağının ve blok zincirinin nasıl çalıştığını belirler.

Yürütüm istemcisi (opens in a new tab) Ethereum istemcisinin özelliklerinin basitleştirilmiş diyagramı.

Düğüm türleri

Kendi düğümünüzü çalıştırmak istiyorsanız, farklı şekilde veri tüketen farklı düğüm türleri olduğunu bilmeniz gerekir. İstemciler aslında 3 farklı düğüm türü çalıştırabilir: hafif, tam ve arşiv. Daha hızlı senkronizasyon süresi sağlayan farklı senkronizasyon stratejileri seçenekleri de vardır. Senkronizasyon, Ethereum'un durumu hakkında en güncel bilgileri ne kadar hızlı alabileceğini ifade eder.

Tam düğüm

  • Tam blok zinciri verilerini depolar.
  • Blok doğrulamaya katılır, tüm blokları ve durumları doğrular.
  • Tüm durumlar tam bir düğümden türetilebilir.
  • Ağa hizmet eder ve talep üzerine veri sağlar.

Hafif düğüm

  • Başlık zincirini saklar ve diğer her şeyi talep eder.
  • Blok başlıklarındaki durum köklerine karşı verilerin geçerliliğini doğrulayabilir.
  • Gigabaytlarca blok zinciri verisini depolamaya gücü yetmeyen gömülü cihazlar veya cep telefonları gibi düşük kapasiteli cihazlar için kullanışlıdır.

Arşiv düğümü

İstemcileri arşiv dışındaki herhangi bir modda senkronize etmek, budanmış blok zinciri verileriyle sonuçlanacaktır. Bu, tüm tarihsel durumların bir arşivinin olmadığı ancak tam düğümün talep üzerine bunları oluşturabileceği anlamına gelir.

Neden bir Ethereum düğümü çalıştırmalıyım?

Bir düğüm çalıştırmak, ekosistemi desteklerken Ethereum'u kimseye güvenmek zorunda kalmadan ve özel olarak kullanmanıza olanak tanır.

Size faydaları

Kendi düğümünüzü çalıştırmak, Ethereum'u gerçekten özel, kendi kendine yeterli ve kimseye güvenmeniz gerekmeyen bir şekilde kullanmanızı sağlar. Verileri istemcinizle kendiniz doğrulayabileceğiniz için ağa güvenmeniz gerekmez. "Güvenme, doğrula." popüler bir blok zinciri deyimidir.

  • Düğümünüz, tüm işlemleri ve blokları mutabakat kurallarına karşı kendi başına doğrular. Yani ağdaki diğer düğümlere bağlı olmanız veya onlara tamamen güvenmeniz gerekmez.
  • Adreslerinizi ve bakiyelerinizi rastgele düğümlere sızdırmak zorunda kalmayacaksınız. Her şey kendi istemcinizle kontrol edilebilir.
  • Kendi düğümünüzü kullanırsanız dapp'niz daha güvenli ve özel olabilir. MetaMask(opens in a new tab), MyEtherWallet(opens in a new tab) ve diğer bazı cüzdanlar kolayca kendi yerel düğümünüze yönlendirilebilir.
  • Kendi özel RPC uç noktalarınızı programlayabilirsiniz.
  • Süreçler Arası İletişim (IPC) kullanarak düğümünüze bağlanabilir veya programınızı bir eklenti olarak yüklemek için düğümü yeniden yazabilirsiniz. Bu, işlemlerinizi olabildiğince hızlı bir şekilde değiştirmek için gereken düşük gecikme süresi sağlar (yani ön çalıştırma).

Uygulamanız ve düğümleriniz aracılığıyla Ethereum'a erişim (opens in a new tab)

Ağ avantajları

Ethereum'un sağlığı, güvenliği ve operasyonel esnekliği için çeşitli düğümler bulunması önemlidir.

  • Buna bağlı hafif istemciler için blok zinciri verilerine erişim sağlarlar. Yüksek kullanım zirvelerinde, hafif düğümlerin senkronize olmasına yardımcı olmak için yeterli sayıda tam düğüm olması gerekir. Hafif düğümler tüm blok zincirini saklamazlar, bunun yerine verileri blok başlıklarındaki durum kökleri aracılığıyla doğrularlar. İhtiyaç duymaları hâlinde bloklardan daha fazla bilgi talep edebilirler.
  • Tam düğümler, iş ispatı mutabakat kurallarını uygular, böylece onları takip etmeyen blokları kabul etmeleri için kandırılamazlar. Bu, ağda ekstra güvenlik sağlar: Tüm düğümler tam doğrulama yapmayan hafif düğümler olsaydı, madenciler ağa saldırabilir ve örneğin daha yüksek ödüllü bloklar oluşturabilirlerdi.

Tam bir düğüm çalıştırırsanız, tüm Ethereum ağı bundan yararlanır.

Kendi düğümünüzü çalıştırma

Kendi Ethereum istemcinizi çalıştırmayı mı düşünüyorsunuz?

Daha acemi dostu bir giriş istiyorsanız, daha fazlasını öğrenmek için bir düğüm çalıştır sayfamızı ziyaret edin.

Eğer daha teknik bir kullanıcıysanız, komut satırı ile nasıl kendi düğümünüzü çalıştıracağınızı öğrenin!

Projeler

Bir istemci seçin ve talimatları takip edin

ethnode - Yerel geliştirme için bir Ethereum düğümü (Geth veya OpenEthereum) çalıştırın.

DAppNode - Ethereum ve işaret zinciri dahil, Web3 düğümlerini özel bir makinede çalıştırmak için bir işletim sistemi grafiksel kullanıcı arayüzü.

Kaynaklar

Alternatifler

Kendi düğümünüzü çalıştırmak zor olabilir ve her zaman kendinizinkini çalıştırmanız gerekmez. Bu durumda Infura(opens in a new tab), Alchemy(opens in a new tab) veya QuikNode(opens in a new tab) gibi bir üçüncü taraf API sağlayıcısı kullanabilirsiniz. Alternatif olarak ArchiveNode(opens in a new tab), Ethereum blok zincirindeki arşiv verilerini, başka türlü karşılayamayacak olan bağımsız geliştiricilere ulaştırmayı uman, topluluk tarafından finanse edilen bir Arşiv düğümüdür. Bu hizmetlerin kullanımına ilişkin bir genel bakış için hizmet olarak düğümler makalesine bakın.

Birisi topluluğunuzda açık bir API'ye sahip bir Ethereum düğümü çalıştırırsa, Özel RPC aracılığıyla(opens in a new tab) hafif cüzdanlarınızı (MetaMask gibi) bir topluluk düğümüne yönlendirebilirsiniz ve bazı rastgele güvenilir üçüncü taraflara kıyasla daha fazla gizlilik elde edersiniz.

Öte yandan, bir istemci çalıştırırsanız bu istemciyi, ihtiyacı olabilecek arkadaşlarınızla paylaşabilirsiniz.

Yürütüm istemcileri (eskiden "Eth1 istemcileri")

Ethereum topluluğu, farklı programlama dilleri kullanan farklı ekipler tarafından geliştirilen birden çok açık kaynaklı yürütüm istemcisini (eskiden "Eth1 istemcileri" veya yalnızca "Ethereum istemcileri" olarak biliniyordu) yürütür. Bu, ağı daha güçlü ve daha çeşitli hâle getirir. İdeal hedef, herhangi bir istemcinin çoğunluk sağlamadığı bir çeşitlilik elde ederek tüm tek başarısızlık noktalarını azaltmaktır.

Bu tablo, farklı istemcileri özetlemektedir. Hepsi istemci testlerini(opens in a new tab) başarıyla geçer ve ağ yükseltmeleriyle güncel kalmak için aktif olarak bakıma tabi tutulur.

İstemciDilİşletim sistemleriAğlarSenkronizasyon stratejileriDurum budaması
Geth(opens in a new tab)GoLinux, Windows, macOSMainnet, Görli, Rinkeby, RopstenSnap, FullArchive, Pruned
Nethermind(opens in a new tab)C#, .NETLinux, Windows, macOSMainnet, Görli, Ropsten, Rinkeby ve dahasıFast, Beam, ArchiveArchive, Pruned
Besu(opens in a new tab)JavaLinux, Windows, macOSMainnet, Rinkeby, Ropsten, Görli ve dahasıFast, FullArchive, Pruned
Erigon(opens in a new tab)GoLinux, Windows, macOSMainnet, Görli, Rinkeby, RopstenFullArchive, Pruned
OpenEthereum (Kullanımdan kaldırıldı)(opens in a new tab)RustLinux, Windows, macOSMainnet, Kovan, Ropsten ve dahasıWarp, FullArchive, Pruned

OpenEthereum'un kullanımdan kaldırıldığını(opens in a new tab) ve artık bakıma tabi olmadığını unutmayın. Dikkatli kullanın ve tercihen başka bir istemci uygulamasına geçin.

Desteklenen ağlar hakkında daha fazla bilgi için Ethereum ağları hakkında bilgi edinin.

Farklı uygulamaların avantajları

Her istemcinin benzersiz kullanım durumları ve avantajları vardır, bu nedenle kendi tercihlerinize göre birini seçmelisiniz. Çeşitlilik, uygulamaların farklı özelliklere ve kullanıcı kitlelerine odaklanmasına olanak tanır. Özelliklere, desteğe, programlama diline veya lisanslara göre bir istemci seçmek isteyebilirsiniz.

Go Ethereum

Go Ethereum (kısaca Geth), Ethereum protokolünün orijinal uygulamalarından biridir. Şu anda, kullanıcılar ve geliştiriciler için en büyük kullanıcı tabanına ve en çeşitli araçlara sahip en yaygın istemcidir. Go ile yazılmıştır, tamamen açık kaynak kodludur ve GNU LGPL v3 altında lisanslanmıştır.

OpenEthereum

OpenEthereum hızlı, zengin özelliklere sahip ve gelişmiş bir CLI tabanlı Ethereum istemcisidir. Hızlı senkronizasyon ve maksimum çalışma süresi gerektiren hızlı ve güvenilir hizmetler için gerekli altyapıyı sağlamak üzere inşa edilmiştir. OpenEthereum'un hedefi en hızlı, en hafif ve en güvenli Ethereum istemcisi olmaktır. Aşağıdakiler için temiz ve modüler bir kod tabanı sağlar:

  • kolay özelleştirme.
  • hizmetlere veya ürünlere hafif entegrasyon.
  • minimum bellek ve depolama alanı.

OpenEthereum, son teknoloji Rust programlama dili kullanılarak geliştirilmiştir ve GPLv3 kapsamında lisanslanmıştır.

OpenEthereum'un kullanımdan kaldırıldığını(opens in a new tab) ve artık bakıma tabi olmadığını unutmayın. Dikkatli kullanın ve tercihen başka bir istemci uygulamasına geçin.

Nethermind

Nethermind, ARM dahil tüm büyük platformlarda çalışan C# .NET teknoloji yığınıyla oluşturulmuş bir Ethereum uygulamasıdır. Aşağıdakilerle harika performans sunar:

  • optimize edilmiş bir sanal makine
  • durum erişimi
  • prometheus/Grafana gösterge panelleri, sıralı kurumsal kayıt desteği, JSON RPC izleme ve analiz eklentileri gibi ağ iletişimi ve zengin özellikler.

Nethermind ayrıca premium kullanıcılar için ayrıntılı belgeler(opens in a new tab), güçlü geliştirici desteği, çevrimiçi bir topluluk ve 7/24 desteğe sahiptir.

Besu

Hyperledger Besu, genel ve izin verilen ağlar için kurumsal düzeyde bir Ethereum istemcisidir. Kapsamlı izleme özelliğinden GraphQL'yi takip etmeye kadar tüm Ethereum Mainnet özelliklerini çalıştırır, ve hem açık topluluk kanallarında hem de işletmeler için ticari SLA'lar aracılığıyla ConsenSys tarafından desteklenir. Java ile yazılmıştır ve Apache 2.0 lisanslıdır.

Erigon

Eskiden Erigon olarak bilinen Erigon, hız ve disk alanı verimliliğine yönelik bir Go Ethereum çatalıdır. Erigon, şu anda Go'da yazılmış, ancak diğer dillerde uygulanması planlanan Ethereum'un tamamen yeniden tasarlanmış bir uygulamasıdır. Erigon'un amacı, Ethereum'un daha hızlı, daha modüler ve daha optimize edilmiş bir uygulamasını sağlamaktır. 3 günden kısa bir sürede 2 Tb'den daha az disk alanı kullanarak tam bir arşiv düğümü senkronizasyonu gerçekleştirebilir

Senkronizasyon modları

Ağdaki mevcut verileri takip etmek ve doğrulamak için Ethereum istemcisinin en son ağ durumuyla senkronize olması gerekir. Bu, eşlerden veri indirerek, bütünlüklerini kriptografik olarak doğrulayarak ve yerel bir blok zinciri veri tabanı oluşturarak yapılır.

Senkronizasyon modları, çeşitli değiş tokuşlarla bu sürece farklı yaklaşımları temsil eder. İstemciler, eşitleme algoritmalarının uygulanmasında da farklılık gösterir. Uygulamaya ilişkin ayrıntılar için her zaman seçtiğiniz istemcinin resmi belgelerine bakın.

Stratejilere genel bakış

Mainnet'e hazır istemcilerde kullanılan senkronizasyon yaklaşımlarına genel bakış:

Full senkronizasyon

Full senkronizasyon, tüm blokları (başlıklar, işlemler ve makbuzlar dahil) indirir ve her bloğu başlangıçtan yürüterek aşamalı olarak blok zincirinin durumunu oluşturur.

  • Her işlemi doğrulayarak güven ihtiyacını en aza indirir ve en yüksek güvenliği sunar.
  • Artan sayıda işlemle, tüm işlemlerin işlenmesi günler ila haftalar alabilir.
Fast senkronizasyon

Fast senkronizasyon, tüm blokları (başlıklar, işlemler ve makbuzlar dahil) indirir, tüm başlıkları doğrular, durumu indirir ve başlıklara göre doğrular.

  • Mutabakat mekanizmasının güvenliğine dayanır.
  • Senkronizasyon yalnızca birkaç saat sürer.
Light senkronizasyon

Light istemci modu, tüm blok başlıklarını indirir, verileri bloklar ve bazılarını rastgele doğrular. Zincirin yalnızca ucunu güvenilen kontrol noktasından eşitler.

  • Geliştiricilere ve mutabakat mekanizmasına güvenerek yalnızca en son durumu alır.
  • İstemci birkaç dakika içinde mevcut ağ durumuyla kullanıma hazır.

Light istemciler hakkında daha fazlası(opens in a new tab)

Snap senkronizasyonu

Geth tarafından uygulandı. Eşler tarafından sunulan dinamik anlık görüntüleri kullanarak, ara ağaç düğümlerini indirmeden tüm hesap ve depolama verilerini alır ve ardından Merkle ağacını yerel olarak yeniden yapılandırır.

  • Geth tarafından geliştirilen en hızlı senkronizasyon stratejisi, şu anda varsayılandır
  • Güvenlikten ödün vermeden çok fazla disk kullanımı ve ağ bant genişliği tasarrufu sağlar.

Snap hakkında daha fazla bilgi(opens in a new tab)

Warp senkronizasyonu

OpenEthereum tarafından uygulanmaktadır. Düğümler düzenli olarak mutabakat açısından kritik bir durum anlık görüntüsü oluşturur ve herhangi bir eş bu anlık görüntüleri ağ üzerinden alabilir ve bu noktadan itibaren hızlı bir senkronizasyon sağlar.

  • OpenEthereum'un en hızlı ve varsayılan senkronizasyon modu, eşler tarafından sunulan statik anlık görüntülere dayanır.
  • Belirli güvenlik avantajları olmayan "anlık senkronizasyon" (snap sync) ile benzer bir strateji.

Warp hakkında daha fazla bilgi(opens in a new tab)

Beam senkronizasyonu

Nethermind ve Trinity tarafından uygulandı. Hızlı senkronizasyon gibi çalışır, ancak aynı zamanda en son blokları yürütmek için gereken verileri indirerek, zinciri başlattıktan sonraki ilk birkaç dakika içinde sorgulamanıza olanak tanır.

  • Önce durumu eşitler ve RPC'yi birkaç dakika içinde sorgulamanıza olanak tanır.
  • Hâlâ geliştirme aşamasında ve tam olarak güvenilir değil, arka planda senkronizasyon yavaşlar ve RPC yanıtları başarısız olabilir.

Beam hakkında daha fazla bilgi(opens in a new tab)

İstemcide kurulum

İstemciler, ihtiyaçlarınıza uygun zengin yapılandırma seçenekleri sunar. Güvenlik düzeyine, mevcut verilere ve maliyete göre size en uygun olanı seçin. Senkronizasyon algoritmasının yanı sıra, farklı türdeki eski verilerin budanmasını da ayarlayabilirsiniz. Budama, örneğin son bloklardan erişilemeyen durum ağaç düğümlerini kaldırma gibi eski verilerin silinmesini sağlar.

Hangi senkronizasyon modunun varsayılan olduğunu öğrenmek için istemcinin belgelerine veya yardım sayfasına dikkat edin. Kurulum sırasında tercih ettiğiniz senkronizasyon türünü şu şekilde tanımlayabilirsiniz:

GETH(opens in a new tab) veya ERIGON(opens in a new tab)'da light senkronizasyonunu ayarlama

geth --syncmode "light"

Daha fazla ayrıntı için Geth light düğümünü çalıştırma hakkındaki öğreticiye bakın.

Besu(opens in a new tab)'da arşivle full senkronizasyonu ayarlama

besu --sync-mode=FULL

Diğer tüm yapılandırmalar gibi, başlangıç bayrağıyla veya yapılandırma dosyasında tanımlanabilir. Başka bir örnek, ilk başlatma sırasında bir yapılandırma seçmenizi isteyen ve bir yapılandırma dosyası oluşturan Nethermind(opens in a new tab)'dır.

Mutabakat istemcileri (eski adıyla "Eth2" istemcileri)

Mutabakat yükseltmelerini desteklemek için birden fazla mutabakat istemcisi (eskiden "Eth2" istemcisi olarak biliniyordu) vardır. İşaret Zincirini çalıştırırlar ve Birleştirmeden sonra yürütüm istemcilerine hisse ispatı mutabakat mekanizması sağlayacaklar.

İstemciDilİşletim sistemleriAğlar
Teku(opens in a new tab)JavaLinux, Windows, macOSİşaret Zinciri, Goerli
Nimbus(opens in a new tab)NimLinux, Windows, macOSİşaret Zinciri, Goerli
Lighthouse(opens in a new tab)RustLinux, Windows, macOSİşaret Zinciri, Goerli, Pyrmont
Lodestar(opens in a new tab)TypeScriptLinux, Windows, macOSİşaret Zinciri, Goerli
Prysm(opens in a new tab)GoLinux, Windows, macOSİşaret Zinciri, Gnosis, Goerli, Pyrmont

Donanım

Donanım gereksinimleri istemciye göre farklılık gösterir, ancak düğümün yalnızca senkronize kalması gerektiğinden bu gereksinimler genellikle pek yüksek değildir. Çok daha fazla bilgi işlem gücü gerektiren madencilikle karıştırmayın. Bununla birlikte, senkronizasyon süresi ve performansı, daha güçlü donanımlarla iyileşir. İhtiyaçlarınıza ve isteklerinize bağlı olarak; Ethereum bilgisayarınızda, ev sunucunuzda, tek kartlı bilgisayarlarda veya buluttaki sanal özel sunucularda çalıştırılabilir.

Kendi düğümünüzü çalıştırmanın kolay bir yolu, DAppNode(opens in a new tab) gibi "tak ve çalıştır" kutularını kullanmaktır. Basit bir kullanıcı arayüzü ile istemcileri ve bunlara bağlı uygulamaları çalıştırmak için donanım sağlar.

Gereksinimler

Herhangi bir istemciyi kurmadan önce, lütfen bilgisayarınızın onu çalıştırmak için yeterli kaynaklara sahip olduğundan emin olun. Minimum ve önerilen gereksinimler aşağıda bulunabilir, ancak en önemli kısım disk alanıdır. Ethereum blok zincirini senkronize etmek yoğun girdi/çıktı kullanır. Katı hâl sürücüsü (SSD) kullanmak en iyisidir. HDD'de bir Ethereum istemcisi çalıştırmak için önbellek olarak kullanmak üzere en az 8 GB RAM'e ihtiyacınız olacaktır.

  • 2+ çekirdekli CPU
  • SSD ile minimum 4 GB RAM, HDD'niz varsa 8 GB+
  • 8 MBit/sn bant genişliği
  • 4+ çekirdekli hızlı CPU
  • 16 GB+ RAM
  • En az 500 GB boş alana sahip hızlı SSD
  • 25+ MBit/sn bant genişliği

Seçtiğiniz senkronizasyon modu, alan gereksinimlerini etkileyecektir ancak aşağıda her istemci için ihtiyaç duyacağınız disk alanına dair tahminler sunduk.

İstemciDisk alanı (fast senkronizasyon)Disk boyutu (full archive)
Geth400 GB+6 TB+
OpenEthereum280 GB+6 TB+
Nethermind200 GB+5 TB+
Besu750 GB+5 TB+
ErigonYok1 TB+
  • Not: Erigon Fast Senkronizasyon yapmaz, ancak Full Pruning mümkündür (yaklaşık 500 GB)

Full senkronizasyon için gereken GB miktarının artışta olduğunu gösteren bir grafik

Archive senkronizasyonu için gereken GB miktarının artışta olduğunu gösteren bir grafik

Bu grafikler, depolama gereksinimlerinin sürekli değişimlerini gösterir. Geth ve OpenEthereum hakkında en güncel veriler için full senkronizasyon verilerine(opens in a new tab) ve archive senkronizasyon verilerine(opens in a new tab) göz atın.

Tek kartlı bir bilgisayarda Ethereum

Ethereum düğümünü çalıştırmanın en uygun ve ucuz yolu, Raspberry Pi gibi ARM mimarisine sahip tek kartlı bir bilgisayar kullanmaktır. ARM üzerinde Ethereum(opens in a new tab); Geth, OpenEthereum, Nethermind ve Besu istemcilerinin görüntülerini sağlar. İşte bir ARM istemcisinin nasıl oluşturulacağı ve kurulacağı hakkında basit bir eğitim.

Bunun gibi küçük, uygun fiyatlı ve verimli cihazlar, evde bir düğüm çalıştırmak için idealdir.

Daha fazla bilgi

İnternette Ethereum istemcileri hakkında birçok bilgi var. İşte size yardımcı olabilecek birkaç kaynak.

Bu makale yararlı oldu mu?