Přeskočit na hlavní obsah

Spuštění uzlu Etherea na Raspberry Pi 4

klienti
exekuční vrstva
konsensuální vrstva
uzly
Středně pokročilý
EthereumOnArm
10. června 2022
7 minuta čtení

Ethereum on Arm je vlastní obraz systému Linux, který může z Raspberry Pi udělat uzel Etherea.

Pro použití Etherea na Arm a přeměnu Raspberry Pi na uzel Etherea se doporučuje následující hardware:

  • Deska Raspberry 4 (model B 8GB), Odroid M1 nebo Rock 5B (8GB/16GB RAM)
  • MicroSD karta (minimálně 16 GB, třída 10)
  • Minimálně 2TB disk SSD USB 3.0 nebo SSD s pouzdrem USB na SATA.
  • Zdroj napájení
  • Ethernetový kabel
  • Přesměrování portů (další informace najdete u klientů)
  • Pouzdro s chladičem a ventilátorem
  • USB klávesnice, monitor a kabel HDMI (micro-HDMI) (volitelně)

Proč provozovat Ethereum na ARM?

Desky ARM jsou velmi cenově dostupné, flexibilní a malé počítače. Jsou dobrou volbou pro provozování uzlů Etherea, protože je lze levně koupit, nakonfigurovat tak, aby se všechny jejich zdroje soustředily pouze na uzel, což je činí efektivními, spotřebovávají málo energie a jsou fyzicky malé, takže se nenápadně vejdou do každé domácnosti. Je také velmi snadné zprovoznit uzly, protože MicroSD kartu Raspberry Pi lze jednoduše flashnout předpřipraveným obrazem, aniž by bylo nutné stahovat nebo sestavovat software.

Jak to funguje?

Paměťová karta Raspberry Pi se flashne předpřipraveným obrazem. Tento obraz obsahuje vše potřebné pro spuštění uzlu Etherea. S flashnutou kartou stačí uživateli pouze zapnout Raspberry Pi. Všechny procesy potřebné ke spuštění uzlu se spustí automaticky. Funguje to proto, že paměťová karta obsahuje operační systém (OS) na bázi Linuxu, na kterém se automaticky spouštějí procesy na úrovni systému, které z jednotky udělají uzel Etherea.

Ethereum nelze provozovat pomocí oblíbeného OS pro Raspberry Pi „Raspbian“, protože Raspbian stále používá 32bitovou architekturu, což způsobuje uživatelům Etherea problémy s pamětí, a konsensuální klienti nepodporují 32bitové binární soubory. Aby se to překonalo, tým Ethereum on Arm přešel na nativní 64bitový OS s názvem „Armbian“.

Obrazy se postarají o všechny nezbytné kroky, od nastavení prostředí a formátování disku SSD až po instalaci a spuštění softwaru Etherea a zahájení synchronizace blockchainu.

Poznámka k exekučním a konsensuálním klientům

Obraz Ethereum on Arm zahrnuje předpřipravené exekuční a konsensuální klienty jako služby. Uzel Etherea vyžaduje, aby byli oba klienti synchronizováni a spuštěni. Stačí si pouze stáhnout a flashnout obraz a poté spustit služby. V obrazu jsou předinstalováni následující exekuční klienti:

  • Geth
  • Nethermind
  • Besu

a následující konsensuální klienti:

  • Lighthouse
  • Nimbus
  • Prysm
  • Teku

Měli byste si vybrat po jednom z každého typu – všichni exekuční klienti jsou kompatibilní se všemi konsensuálními klienty. Pokud si klienta explicitně nevyberete, uzel se vrátí ke svým výchozím hodnotám – Geth a Lighthouse – a spustí je automaticky po zapnutí desky. Na routeru musíte otevřít port 30303, aby Geth mohl najít peery a připojit se k nim.

Stažení obrazu

Obraz Ethereum pro Raspberry Pi 4 je obraz typu „plug and play“, který automaticky nainstaluje a nastaví exekuční i konsensuální klienty, nakonfiguruje je pro vzájemnou komunikaci a připojení k síti Ethereum. Uživatel musí pouze spustit jejich procesy pomocí jednoduchého příkazu.

Stáhněte si obraz Raspberry Pi z Ethereum on Armopens in a new tab a ověřte haš SHA256:

1# Z adresáře obsahujícího stažený obraz
2shasum -a 256 ethonarm_22.04.00.img.zip
3# Haš by měl mít výstup: fb497e8f8a7388b62d6e1efbc406b9558bee7ef46ec7e53083630029c117444f

Upozorňujeme, že obrazy pro desky Rock 5B a Odroid M1 jsou k dispozici na stránce pro staženíopens in a new tab Ethereum-on-Arm.

Flashování MicroSD

MicroSD karta, která bude použita pro Raspberry Pi, by měla být nejprve vložena do stolního počítače nebo notebooku, aby mohla být flashnuta. Poté následující příkazy v terminálu flashnou stažený obraz na SD kartu:

1# zkontrolujte název MicroSD karty
2sudo fdisk -l
3
4>> sdxxx

Je opravdu důležité zadat správný název, protože další příkaz obsahuje dd, který před nahráním obrazu na kartu zcela vymaže její stávající obsah. Chcete-li pokračovat, přejděte do adresáře obsahujícího zazipovaný obraz:

1# rozbalte a flashněte obraz
2unzip ethonarm_22.04.00.img.zip
3sudo dd bs=1M if=ethonarm_22.04.00.img of=/dev/<sdxx> conv=fdatasync status=progress

Karta je nyní flashnutá, takže ji lze vložit do Raspberry Pi.

Spuštění uzlu

S SD kartou vloženou do Raspberry Pi připojte ethernetový kabel a SSD a poté zapněte napájení. OS se spustí a automaticky začne provádět předkonfigurované úlohy, které z Raspberry Pi udělají uzel Etherea, včetně instalace a sestavení klientského softwaru. To bude pravděpodobně trvat 10-15 minut.

Jakmile je vše nainstalováno a nakonfigurováno, přihlaste se k zařízení přes ssh připojení nebo přímo pomocí terminálu, pokud je k desce připojen monitor a klávesnice. Pro přihlášení použijte účet ethereum, protože má oprávnění potřebná ke spuštění uzlu.

1Uživatel: ethereum
2Heslo: ethereum

Výchozí exekuční klient, Geth, se spustí automaticky. To můžete potvrdit kontrolou protokolů pomocí následujícího příkazu v terminálu:

1sudo journalctl -u geth -f

Konsensuální klient je třeba spustit explicitně. Chcete-li to provést, nejprve na routeru otevřete port 9000, aby Lighthouse mohl najít peery a připojit se k nim. Poté povolte a spusťte službu lighthouse:

1sudo systemctl enable lighthouse-beacon
2sudo systemctl start lighthouse-beacon

Zkontrolujte klienta pomocí protokolů:

1sudo journalctl -u lighthouse-beacon

Všimněte si, že konsensuální klient se synchronizuje během několika minut, protože používá synchronizaci z kontrolního bodu. Exekučnímu klientovi to bude trvat déle – potenciálně několik hodin, a nespustí se, dokud se konsensuální klient nedosynchronizuje (je to proto, že exekuční klient potřebuje cíl, se kterým se synchronizuje, a ten mu poskytne synchronizovaný konsensuální klient).

Se spuštěnými a synchronizovanými službami Geth a Lighthouse je vaše Raspberry Pi nyní uzlem Etherea! Nejběžnější způsob interakce se sítí Ethereum je pomocí javascriptové konzole Geth, kterou lze připojit ke klientovi Geth na portu 8545. Je také možné odesílat příkazy formátované jako objekty JSON pomocí nástroje pro požadavky, jako je Curl. Více informací naleznete v dokumentaci Gethopens in a new tab.

Geth je předkonfigurován tak, aby hlásil metriky na řídicí panel Grafana, který lze zobrazit v prohlížeči. Pokročilejší uživatelé mohou chtít tuto funkci využít ke sledování stavu svého uzlu přechodem na ipaddress:3000 a zadáním user: admin a passwd: ethereum.

Validátoři

K konsensuálnímu klientovi lze volitelně přidat také validátor. Software validátoru umožňuje vašemu uzlu aktivně se podílet na konsensu a poskytuje síti kryptoekonomickou bezpečnost. Za tuto práci dostanete odměnu v ETH. Abyste mohli spustit validátor, musíte mít nejprve 32 ETH, které musí být vloženy do vkladové smlouvy. Vklad lze provést podle podrobného průvodce na Launchpaduopens in a new tab. Udělejte to na stolním počítači/notebooku, ale negenerujte klíče — to lze provést přímo na Raspberry Pi.

Otevřete terminál na Raspberry Pi a spuštěním následujícího příkazu vygenerujte vkladové klíče:

1sudo apt-get update
2sudo apt-get install staking-deposit-cli
3cd && deposit new-mnemonic --num_validators 1

(Nebo si stáhněte staking-deposit-cliopens in a new tab pro spuštění na air-gapped zařízení a spusťte příkaz deposit new-mnemnonic)

Uchovejte mnemotechnickou frázi v bezpečí! Výše uvedený příkaz vygeneroval v úložišti klíčů uzlu dva soubory: klíče validátoru a soubor s daty vkladu. Data vkladu je třeba nahrát do Launchpadu, takže je nutné je zkopírovat z Raspberry Pi do stolního počítače/notebooku. To lze provést pomocí ssh připojení nebo jakoukoli jinou metodou kopírování a vkládání.

Jakmile je soubor s daty vkladu k dispozici na počítači, na kterém běží Launchpad, lze jej přetáhnout na + na obrazovce Launchpadu. Podle pokynů na obrazovce odešlete transakci do vkladové smlouvy.

Zpět na Raspberry Pi lze spustit validátor. To vyžaduje import klíčů validátoru, nastavení adresy pro sběr odměn a následné spuštění předkonfigurovaného procesu validátoru. Níže uvedený příklad je pro Lighthouse – pokyny pro ostatní konsensuální klienti jsou k dispozici v dokumentaci Ethereum on Armopens in a new tab:

1# importujte klíče validátoru
2lighthouse account validator import --directory=/home/ethereum/validator_keys
3
4# nastavte adresu pro odměny
5sudo sed -i 's/<ETH_ADDRESS>' /etc/ethereum/lighthouse-validator.conf
6
7# spusťte validátor
8sudo systemctl start lighthouse-validator

Gratulujeme, nyní máte na Raspberry Pi spuštěný plnohodnotný uzel Etherea a validátor!

Další podrobnosti

Tato stránka poskytla přehled o tom, jak nastavit uzel a validátor Geth-Lighthouse pomocí Raspberry Pi. Podrobnější pokyny jsou k dispozici na webu Ethereum-on-Armopens in a new tab.

Zpětná vazba je vítána

Víme, že Raspberry Pi má obrovskou uživatelskou základnu, která by mohla mít velmi pozitivní dopad na zdraví sítě Ethereum. Projděte si prosím podrobnosti v tomto návodu, vyzkoušejte spuštění na testnetech, podívejte se na GitHubu na Ethereum on Arm, poskytněte zpětnou vazbu, nahlašujte problémy a posílejte pull requesty a pomozte tak posunout technologii a dokumentaci!

Odkazy

  1. https://ubuntu.com/download/raspberry-piopens in a new tab
  2. https://wikipedia.org/wiki/Port_forwardingopens in a new tab
  3. https://prometheus.ioopens in a new tab
  4. https://grafana.comopens in a new tab
  5. https://forum.armbian.com/topic/5565-zram-vs-swap/opens in a new tab
  6. https://geth.ethereum.orgopens in a new tab
  7. https://nethermind.ioopens in a new tab
  8. https://www.hyperledger.org/projects/besuopens in a new tab
  9. https://github.com/prysmaticlabs/prysmopens in a new tab
  10. https://lighthouse.sigmaprime.ioopens in a new tab
  11. https://ethersphere.github.io/swarm-homeopens in a new tab
  12. https://raiden.networkopens in a new tab
  13. https://ipfs.ioopens in a new tab
  14. https://status.imopens in a new tab
  15. https://vipnode.orgopens in a new tab

Stránka naposledy aktualizována: 25. srpna 2025

Byl tento tutoriál užitečný?