Raspberry Pi 4'ünüzü sadece MicroSD kartı flaşlayarak bir düğüme nasıl dönüştürebilirsiniz
Kısacası: Raspberry Pi 4'ünüzü flaşlayın, bir ethernet kablosu takın, SSD diskini bağlayın ve Raspberry Pi 4'ü yürütüm katmanını veya mutabakat katmanını (İşaret Zinciri/doğrulayıcı) çalıştıran tam bir Ethereum düğümüne dönüştürmek için cihazı çalıştırın
Ethereum yükseltmeleri hakkında bilgi edinin
Önce biraz arka plan bilgisi verelim. Bildiğiniz gibi, Raspbian işletim sistemi hâlâ 32 bit [2] (en azından kullanıcı alanı) üzerinde olduğundan, [1]Raspberry Pi 4 görüntüsüyle ilgili bazı bellek sorunlarıyla karşılaşıyoruz. Resmi işletim sistemine bağlı kalmayı tercih ederken, bu sorunları çözmek için yerel 64 bit işletim sistemine geçmemiz gerektiği sonucuna vardık
Ayrıca, mutabakat istemcileri 32 bit ikili dosyaları desteklemez, bu nedenle Raspbian kullanmak, Raspberry Pi 4'ün bir mutabakat katmanı düğümü çalıştırmasını (ve stake etme olasılığını) hariç tutar.
Bu nedenle, birkaç testten sonra şimdi Ubuntu 20.04 64bit [3] tabanlı 2 farklı sürücü yayınlıyoruz: yürütüm katmanı ve mutabakat katmanı sürümleri.
Temel olarak, her ikisi de aynı sürücüdür ve Raspbian tabanlı sürücülerin aynı özelliklerini içerir. Ancak varsayılan olarak yürütüm katmanı veya mutabakat katmanı yazılımlarını çalıştırmak için ayarlanmıştır.
Sürücüler, ortamın kurulmasından ve SSD diskinin biçimlendirilmesinden Ethereum yazılımını kurup çalıştırmaya ve ayrıca blok zinciri senkronizasyonunu başlatmaya kadar gerekli tüm adımların üstesinden gelir.
Ana özellikler
- Ubuntu 20.04 64bit temelli
- Otomatik USB disk bölümleme ve formatlama
- Armbian çalışmasına dayalı takas belleği (ZRAM çekirdek modülü + bir takas dosyası) ekler[7]
- MAC hash değerine dayalı olarak ana bilgisayar adını "ethnode-e2a3e6fe" gibi bir şeyle değiştirir
- Yazılımı bir systemd hizmeti olarak çalıştırır ve Blok Zincirini senkronize etmeye başlar
- Ethereum yazılımını kurmak ve yükseltmek için bir APT deposu içerir
- Grafana/Prometheus'a dayalı bir izleme gösterge paneli içerir
Mevcut yazılım
Her iki sürücü de aynı paketleri içerir: Aralarındaki tek fark, yürütüm sürümünün varsayılan olarak Geth'i çalıştırması ve mutabakat sürümünün varsayılan olarak Prysm işaret zincirini çalıştırmasıdır.
Yürütüm istemcileri
- Geth [8]: 1.9.13 (resmi ikili)
- Parity [9]: 2.7.2 (çapraz derlenmiş)
- Nethermind [10]: 1.8.28 (çapraz derlenmiş)
- Hyperledger Besu [11]: 1.4.4 (derlenmiş)
Mutabakat istemcileri
Ethereum çerçevesi
- Swarm [14]: 0.5.7 (resmi ikili)
- Raiden Network [15]: 0.200.0~rc1 (resmi ikili)
- IPFS [16]: 0.5.0 (resmi ikili)
- Statusd [17]: 0.52.3 (derlenmiş)
- Vipnode [18]: 2.3.3 (resmi ikili)
Kurulum rehberi ve kullanım
Önerilen donanım ve kurulum
- Raspberry 4 (model B) - 4GB
- MicroSD Kartı (minimum 16 GB Class 10)
- SSD USB 3.0 diski (depolama bölümüne bakın)
- Güç kaynağı
- Ethernet kablosu
- 30303 Port yönlendirme (yürütüm katmanı) ve 13000 port yönlendirme (mutabakat katmanı)[4]
- Soğutucu ve fanlı bir kasa (isteğe bağlıdır ancak şiddetle tavsiye edilir)
- USB klavye, Monitör ve HDMI kablosu (mikro HDMI) (isteğe bağlı)
Depolama
Ethereum istemcilerini çalıştırmak için bir SSD'ye ihtiyacınız olacak (SSD sürücüsü olmadan Ethereum blok zincirini senkronize etme şansınız kesinlikle yoktur). İki seçenek bulunmaktadır:
- Samsung T5 Portable SSD gibi bir taşınabilir USB SSD diski kullanın.
- SSD Diskli bir USB 3.0 External Hard Drive Case kullanın. Biz, bir Inateck 2.5 Hard Drive Enclosure FE2011 kullandık. Özellikle JMicron (JMS567 veya JMS578) veya ASMedia (ASM1153E) olmak üzere UAS uyumlu çipli bir kasa satın aldığınızdan emin olun.
Her iki durumda da, düşük kaliteli SSD diskleri almaktan kaçının çünkü bu, düğümünüzün önemli bir bileşenidir ve performansı (ve senkronizasyon sürelerini) büyük ölçüde etkileyebilir.
Diski bir USB 3.0 portuna (mavi) takmanız gerektiğini unutmayın
Sürücü indirme ve kurulumu
1. Yürütüm ve mutabakat katmanı sürücülerini indirin
Yürütüm katmanı sürücüsünü indir(opens in a new tab)sha256 7fa9370d13857dd6abcc8fde637c7a9a7e3a66b307d5c28b0c0d29a09c73c55c
Mutabakat katmanı sürücüsünü indir(opens in a new tab)sha256 74c0c15b708720e5ae5cac324f1afded6316537fb17166109326755232cd316e
2. Sürücüyü flaşlayın
MicroSD'yi Masaüstünüze/Dizüstü bilgisayarınıza takın ve dosyayı indirin (örneğin yürütüm katmanı):
wget https://ethraspbian.com/downloads/ubuntu-20.04-preinstalled-server-arm64+raspi-eth1.img.zip
Not: Eğer komut satırı ile rahat değilseniz veya Windows çalıştırıyorsanız, Etcher(opens in a new tab) kullanabilirsiniz
Bir terminal açın ve çalışan MicroSD cihaz adınızı kontrol edin:
sudo fdisk -l
mmcblk0 veya sdd adında bir cihaz görmelisiniz. Sürücüyü unzip'leyin ve flaşlayın:
unzip ubuntu-20.04-preinstalled-server-arm64+raspi-eth1.img.zipsudo dd bs=1M if=ubuntu-20.04-preinstalled-server-arm64+raspi-eth1.img of=/dev/mmcblk0 && sync
3. MicroSD'yi Raspberry Pi 4'e takın. Bir Ethernet kablosu bağlayın ve USB SSD diskini takın (mavi bir port kullandığınızdan emin olun).
4. Cihazı çalıştırın
Ubuntu İşletim Sistemi bir dakikadan daha kısa sürede açılacaktır ancak komut dosyasının cihazı bir Ethereum düğümüne dönüştürmek ve Raspberry'yi yeniden başlatmak için gerekli görevleri gerçekleştirmesine izin vermek için yaklaşık 10 dakika beklemeniz gerekecek.
Sürücüye bağlı olarak şunları çalıştıracaksınız:
- Yürütüm istemcisi: Blok zincirini senkronize eden varsayılan istemci olarak Geth
- Mutabakat istemcisi: İşaret zincirini senkronize eden varsayılan istemci olarak Prysm (Goerli testnet)
5. Giriş yapın
SSH üzerinden veya konsolu kullanarak oturum açabilirsiniz (bağlı bir monitörünüz ve klavyeniz varsa)
User: ethereumPassword: ethereum
İlk girişte şifreyi değiştirmeniz istenecek, bu yüzden iki kez giriş yapmanız gerekecek.
6. Prysm işaret zinciri çalıştırıyorsanız 13000 ve Geth için 30303 portunu açın. Bunu nasıl yapacağınızı bilmiyorsanız, yönlendirici modeliniz ile birlikte “port yönlendirme” kelimelerini google'layın.
7. Konsol çıktısı alın
Yazarak arka planda neler olduğunu görebilirsiniz:
sudo tail -f /var/log/syslog
Tebrikler. Artık Raspberry Pi 4'ünüzde tam bir Ethereum düğümü çalıştırıyorsunuz.
İşaret zincirini senkronize etmek
Şimdi blok zincirinin senkronize edilmesini beklemeniz gerekiyor. Yürütüm katmanı söz konusu olduğunda, bu birkaç faktöre bağlı olarak birkaç gün sürebilir, ancak yaklaşık 5-7 güne kadar bekleyebilirsiniz.
Mutabakat katmanı Goerli test ağını çalıştırıyorsanız, 1-2 günlük İşaret zinciri senkronizasyon süresi bekleyebilirsiniz. Stake sürecini başlatmak için doğrulayıcıyı daha sonra kurmanız gerekeceğini unutmayın. Mutabakat katmanı doğrulayıcı nasıl çalıştırılır
İzleme gösterge panoları
Bu ilk sürüm için, düğümü ve istemci verilerini (Geth ve Besu) izlemek için Prometheus[5]/Grafana [6] temelli 3 izleme gösterge panosu ekledik. Web tarayıcınız üzerinden erişebilirsiniz:
URL: http://your_raspberrypi_IP:3000User: adminPassword: ethereum
İstemcileri değiştirme
Tüm istemciler bir systemd hizmeti olarak çalışır. Sistem, bir sorun ortaya çıkarsa süreci otomatik olarak yeniden başlatacağı için bu önemlidir.
Geth ve Prysm işaret zinciri varsayılan olarak çalışır (ne senkronize ettiğinize, yürütüm katmanına veya mutabakat katmanına bağlı olarak), bu nedenle, diğer istemcilere geçmek istiyorsanız (örneğin Geth'ten Nethermind'e), önce Geth'i durdurup devre dışı bırakmanız ve ardından diğer istemciyi etkinleştirip başlatmanız gerekir:
sudo systemctl stop geth && sudo systemctl disable geth
Her yürütüm istemcisini etkinleştirme ve başlatma komutları:
sudo systemctl enable besu && sudo systemctl start besusudo systemctl enable nethermind && sudo systemctl start nethermindsudo systemctl enable parity && sudo systemctl start parity
Mutabakat istemcileri:
sudo systemctl stop prysm-beacon && sudo systemctl disable prysm-beaconsudo systemctl start lighthouse && sudo systemctl enable lighthouse
Parametreleri değiştirme
İstemcilerin yapılandırma dosyaları /etc/ethereum/ dizininde bulunur. Değişikliklerin etkili olması için bu dosyaları düzenleyebilir ve systemd hizmetini yeniden başlatabilirsiniz. Tek istisna, ayrıca burada bulunan bir Mainnet yapılandırma dosyasına sahip olan Nethermind'dır:
/etc/nethermind/configs/mainnet.cfg
Blok zinciri istemcilerinin verileri, Ethereum ana hesabında aşağıdaki şekilde saklanır (dizin adından önceki noktaya dikkat edin):
Yürütüm katmanı
/home/ethereum/.geth/home/ethereum/.parity/home/ethereum/.besu/home/ethereum/.nethermind
Mutabakat katmanı
/home/ethereum/.eth2/home/ethereum/.eth2validators/home/ethereum/.lighthouse
Nethermind ve Hyperledger Besu
Bu 2 harika yürütüm istemcisi, Geth ve Parity'ye harika bir alternatif hâline geldi. Ağdaki çeşitlilik ne kadar fazlaysa o kadar iyidir, bu yüzden onları deneyebilir ve ağ sağlığına katkıda bulunabilirsiniz.
Her ikisinin de daha fazla teste ihtiyacı var, bu yüzden onlarla deney yapmaktan çekinmeyin ve geri bildiriminizi gönderin.
Mutabakat doğrulayıcı nasıl çalıştırılır (stake etmek)
Goerli test ağı işaret zinciri senkronize edildikten sonra aynı cihazda bir doğrulayıcı çalıştırabilirsiniz. Bu katılım adımlarını(opens in a new tab) takip etmeniz gerekecek.
İlk sefer için, “doğrulayıcı” ikili dosyasını çalıştırarak manuel olarak bir hesap oluşturmanız ve bir şifre belirlemeniz gerekir. Bu adımı tamamladıktan sonra parolayı /etc/ethereum/prysm-validator.conf
dizinine ekleyebilir ve doğrulayıcıyı bir systemd hizmeti olarak başlatabilirsiniz.
Geri bildirim faydalı olur
Bu cihazın devasa kullanıcı tabanının ağ üzerinde çok olumlu bir etkisi olabileceğini bildiğimizden dolayı Raspberry Pi 4'ü tam bir Ethereum düğümü olarak kurmak için çok uğraştık.
Lütfen bunun Ubuntu 20.04 temelli ilk sürücü olduğunu dikkate alın, bu nedenle bazı hatalar olabilir. Eğer varsa, GitHub(opens in a new tab) üzerinde bir konu açın veya bize Twitter(opens in a new tab) üzerinden ulaşın.
Referanslar
- geth, SIGSEGV ile sürekli çöküyor(opens in a new tab)
- https://github.com/diglos/ethereumonarm(opens in a new tab)
- https://ubuntu.com/download/raspberry-pi(opens in a new tab)
- https://wikipedia.org/wiki/Port_forwarding(opens in a new tab)
- https://prometheus.io(opens in a new tab)
- https://grafana.com(opens in a new tab)
- https://forum.armbian.com/topic/5565-zram-vs-swap/(opens in a new tab)
- https://geth.ethereum.org(opens in a new tab)
- https://github.com/openethereum/openethereum(opens in a new tab) * OpenEthereum'un kullanımdan kaldırıldığını(opens in a new tab) ve artık sürdürülmediğini unutmayın. Dikkatli kullanın ve tercihen başka bir istemci uygulamasına geçin.
- https://nethermind.io(opens in a new tab)
- https://www.hyperledger.org/projects/besu(opens in a new tab)
- https://github.com/prysmaticlabs/prysm(opens in a new tab)
- https://lighthouse.sigmaprime.io(opens in a new tab)
- https://ethersphere.github.io/swarm-home(opens in a new tab)
- https://raiden.network(opens in a new tab)
- https://ipfs.io(opens in a new tab)
- https://status.im(opens in a new tab)
- https://vipnode.org(opens in a new tab)