Перейти до основного контенту

Запустіть вузол Ethereum на Raspberry Pi 4

клієнти
шар виконання
шар консенсусу
вузли
Середнячок
EthereumOnArm
10 червня 2022 р.
7 читається за хвилину

Ethereum on Arm — це спеціальний образ Linux, який може перетворити Raspberry Pi на вузол Ethereum.

Щоб використовувати Ethereum on Arm для перетворення Raspberry Pi на вузол Ethereum, рекомендується таке обладнання:

  • Плата Raspberry 4 (модель B 8 ГБ), Odroid M1 або Rock 5B (8 ГБ/16 ГБ ОЗП)
  • Карта MicroSD (мінімум 16 ГБ, клас 10)
  • SSD-диск USB 3.0 обсягом щонайменше 2 ТБ або SSD-диск у корпусі з перехідником USB-SATA.
  • Блок живлення
  • Кабель Ethernet
  • Переадресація портів (докладнішу інформацію див. у розділі про клієнти)
  • Корпус із радіатором і вентилятором
  • USB-клавіатура, монітор і кабель HDMI (micro-HDMI) (необов’язково)

Навіщо запускати Ethereum на ARM?

Плати ARM — це дуже доступні, гнучкі, невеликі комп’ютери. Це чудовий варіант для запуску вузлів Ethereum, тому що їх можна дешево придбати, їх можна налаштувати так, щоб усі їхні ресурси були спрямовані лише на вузол, що робить їх ефективними, вони споживають мало енергії і мають невеликий розмір, тому їх можна непомітно розмістити в будь-якому будинку. Також дуже легко розгорнути вузли, оскільки карту MicroSD Raspberry Pi можна просто прошити готовим образом, не вимагаючи завантаження чи створення програмного забезпечення.

Як це працює?

Карта пам’яті Raspberry Pi прошивається готовим образом. Цей образ містить усе необхідне для запуску вузла Ethereum. Маючи прошиту карту, користувачеві достатньо лише увімкнути Raspberry Pi. Усі процеси, необхідні для роботи вузла, запускаються автоматично. Це працює, оскільки карта пам’яті містить операційну систему (ОС) на базі Linux, поверх якої автоматично запускаються процеси системного рівня, що перетворюють пристрій на вузол Ethereum.

Ethereum не можна запустити за допомогою популярної ОС "Raspbian" для Raspberry Pi на базі Linux, тому що Raspbian усе ще використовує 32-розрядну архітектуру, через що користувачі Ethereum стикаються з проблемами пам’яті, а консенсус-клієнти не підтримують 32-розрядні двійкові файли. Щоб вирішити цю проблему, команда Ethereum on Arm перейшла на нативну 64-розрядну ОС під назвою "Armbian".

Образи виконують усі необхідні кроки: від налаштування середовища та форматування SSD-диска до встановлення та запуску програмного забезпечення Ethereum, а також запуску синхронізації блокчейну.

Примітка щодо клієнтів виконання та консенсус-клієнтів

Образ Ethereum on Arm містить готові клієнти виконання та консенсус-клієнти у вигляді служб. Для роботи вузла Ethereum необхідно, щоб обидва клієнти були синхронізовані та запущені. Вам потрібно лише завантажити та прошити образ, а потім запустити служби. В образ попередньо завантажено такі клієнти виконання:

  • Geth
  • Nethermind
  • Besu

та такі консенсус-клієнти:

  • Lighthouse
  • Nimbus
  • Prysm
  • Teku

Вам слід вибрати для запуску по одному клієнту кожного типу — усі клієнти виконання сумісні з усіма консенсус-клієнтами. Якщо ви не виберете клієнта явно, вузол повернеться до налаштувань за замовчуванням — Geth та Lighthouse — і запустить їх автоматично, коли плата увімкнеться. Ви повинні відкрити порт 30303 на вашому маршрутизаторі, щоб Geth міг знаходити піри та підключатися до них.

Завантаження образу

Образ Ethereum для Raspberry Pi 4 — це образ типу «підключи і працюй», який автоматично встановлює та налаштовує як клієнти виконання, так і консенсус-клієнти, налаштовуючи їх для взаємодії між собою та підключення до мережі Ethereum. Усе, що потрібно зробити користувачеві, — це запустити процеси за допомогою простої команди.

Завантажте образ Raspberry Pi з Ethereum on Armopens in a new tab і перевірте хеш SHA256:

1# З каталогу, що містить завантажений образ
2shasum -a 256 ethonarm_22.04.00.img.zip
3# Хеш має вивести: fb497e8f8a7388b62d6e1efbc406b9558bee7ef46ec7e53083630029c117444f

Зауважте, що образи для плат Rock 5B і Odroid M1 доступні на сторінці завантаженьopens in a new tab Ethereum-on-Arm.

Прошивка MicroSD

Карту MicroSD, яка використовуватиметься для Raspberry Pi, слід спочатку вставити в настільний комп’ютер або ноутбук, щоб її можна було прошити. Потім, щоб прошити завантажений образ на SD-карту, виконайте такі команди в терміналі:

1# перевірте назву карти MicroSD
2sudo fdisk -l
3
4>> sdxxx

Дуже важливо вказати правильну назву, оскільки наступна команда містить dd, яка повністю стирає наявний вміст карти перед тим, як записати на неї образ. Щоб продовжити, перейдіть до каталогу, що містить zip-архів з образом:

1# розпакуйте та прошийте образ
2unzip ethonarm_22.04.00.img.zip
3sudo dd bs=1M if=ethonarm_22.04.00.img of=/dev/<sdxx> conv=fdatasync status=progress

Тепер карта прошита, тому її можна вставити в Raspberry Pi.

Запуск вузла

Вставивши SD-карту в Raspberry Pi, підключіть кабель Ethernet і SSD, а потім увімкніть живлення. ОС завантажиться й автоматично почне виконувати попередньо налаштовані завдання, які перетворюють Raspberry Pi на вузол Ethereum, зокрема встановлення та збірку клієнтського програмного забезпечення. Це, ймовірно, займе 10-15 хвилин.

Після того, як усе буде встановлено та налаштовано, увійдіть у пристрій через ssh-з’єднання або безпосередньо через термінал, якщо до плати підключено монітор і клавіатуру. Для входу використовуйте обліковий запис ethereum, оскільки він має дозволи, необхідні для запуску вузла.

1Користувач: ethereum
2Пароль: ethereum

Клієнт виконання за замовчуванням, Geth, запуститься автоматично. Ви можете перевірити це, переглянувши журнали за допомогою такої команди терміналу:

1sudo journalctl -u geth -f

Консенсус-клієнт потрібно запускати явно. Для цього спочатку відкрийте порт 9000 на своєму маршрутизаторі, щоб Lighthouse міг знаходити піри та підключатися до них. Потім увімкніть і запустіть службу Lighthouse:

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

Перевірте клієнт за допомогою журналів:

1sudo journalctl -u lighthouse-beacon

Зауважте, що консенсус-клієнт синхронізується за кілька хвилин, оскільки він використовує синхронізацію за контрольними точками. Синхронізація клієнта виконання триватиме довше — потенційно кілька годин, і вона не почнеться, доки консенсус-клієнт не завершить синхронізацію (це тому, що клієнту виконання потрібна ціль для синхронізації, яку надає синхронізований консенсус-клієнт).

Коли служби Geth і Lighthouse запущені та синхронізовані, ваш Raspberry Pi стає вузлом Ethereum! Найчастіше з мережею Ethereum взаємодіють за допомогою Javascript-консолі Geth, яку можна підключити до клієнта Geth через порт 8545. Також можна надсилати команди, відформатовані як об’єкти JSON, за допомогою інструменту для запитів, наприклад Curl. Докладніше див. у документації Gethopens in a new tab.

Geth попередньо налаштований для передачі показників на панель Grafana, яку можна переглянути в браузері. Досвідченіші користувачі можуть захотіти використовувати цю функцію для моніторингу працездатності свого вузла, перейшовши за адресою ipaddress:3000 і ввівши користувач: admin та пароль: ethereum.

Валідатори

До консенсус-клієнта також можна за бажанням додати валідатор. Програмне забезпечення валідатора дозволяє вашому вузлу брати активну участь у досягненні консенсусу і забезпечує мережі криптоекономічну безпеку. За цю роботу ви отримуєте винагороду в ETH. Щоб запустити валідатор, ви повинні спочатку мати 32 ETH, які необхідно внести на депозитний контракт. Депозит можна зробити, дотримуючись покрокової інструкції на Launchpadopens in a new tab. Зробіть це на настільному комп’ютері/ноутбуці, але не генеруйте ключі — це можна зробити безпосередньо на Raspberry Pi.

Відкрийте термінал на Raspberry Pi і виконайте таку команду, щоб згенерувати ключі для депозиту:

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

(Або завантажте staking-deposit-cliopens in a new tab для запуску на ізольованому від мережі комп’ютері та виконайте команду deposit new-mnemnonic)

Зберігайте мнемонічну фразу в безпеці! Наведена вище команда згенерувала два файли у сховищі ключів вузла: ключі валідатора та файл даних депозиту. Дані депозиту потрібно завантажити на Launchpad, тому їх потрібно скопіювати з Raspberry Pi на настільний комп’ютер/ноутбук. Це можна зробити за допомогою ssh-з’єднання або будь-яким іншим способом копіювання/вставки.

Коли файл даних депозиту стане доступним на комп’ютері, де запущено Launchpad, його можна перетягнути на + на екрані Launchpad. Дотримуйтеся вказівок на екрані, щоб надіслати транзакцію на депозитний контракт.

Повернувшись до Raspberry Pi, можна запустити валідатор. Для цього потрібно імпортувати ключі валідатора, встановити адресу для збору винагород, а потім запустити попередньо налаштований процес валідатора. Наведений нижче приклад стосується Lighthouse — інструкції для інших консенсус-клієнтів доступні в документації Ethereum on Armopens in a new tab:

1# імпортуйте ключі валідатора
2lighthouse account validator import --directory=/home/ethereum/validator_keys
3
4# встановіть адресу для винагород
5sudo sed -i 's/<ETH_ADDRESS>' /etc/ethereum/lighthouse-validator.conf
6
7# запустіть валідатор
8sudo systemctl start lighthouse-validator

Вітаємо, тепер у вас є повноцінний вузол і валідатор Ethereum, що працюють на Raspberry Pi!

Докладніше

На цій сторінці наведено огляд того, як налаштувати вузол Geth-Lighthouse і валідатор за допомогою Raspberry Pi. Докладніші інструкції доступні на вебсайті Ethereum-on-Armopens in a new tab.

Будемо вдячні за відгуки

Ми знаємо, що Raspberry Pi має величезну базу користувачів, яка може дуже позитивно вплинути на працездатність мережі Ethereum. Будь ласка, заглибтеся в деталі цього посібника, спробуйте запустити на тестових мережах, перегляньте GitHub Ethereum on Arm, залишайте відгуки, повідомляйте про проблеми та створюйте pull-запити, а також допомагайте вдосконалювати технологію та документацію!

Джерела

  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

Останні оновлення сторінки: 14 лютого 2026 р.

Чи була ця інструкція корисною?