The easy way to run a full Ethereum node on Raspberry Pi 4
Ethbian = Raspbian + Geth + Grafana
Lastest version: v0.6
Homepage: https://ethbian.org
Already prepared sd-card image can be found here
ethbian image file | sha 256 checksum |
---|---|
ethbian-v0.6-2020-02-16.img.gz | 7f8fd9d7003cc7d80eabf95dd3a934b8be9b86df164e30652d9b196bc1d62ae9 |
To verify the checksum of a downloaded file:
system | command |
---|---|
Mac | shasum -a 256 filename |
Linux | sha256sum filename |
- download & install Raspbian Buster Lite
- login (user: pi/pass: raspberry) and execute:
wget https://raw.githubusercontent.com/ethbian/ethbian/master/ethbian_install.sh && bash ethbian_install.sh
- restart the box
- login again (user: pi/pass: ethbian)
- register (free) for a MaxMind account and obtain a license key in order to download GeoLite2 database (free)
Visit MaxMind page to register, download the GeoLite2City db and
save the file as /usr/local/lib/collectd/geolite_city.mmdb
default user: pi
defualt pass: ethbian
- swap is disabled
- wifi is disabled
- IPv6 is disabled
- bluetooth is disabled
- sound card is disabled
- camera modules are disabled
- unnecessary services are disabled
You can use a simple ethbian-net.sh script to configure network.
You can also use standard raspi-config tool to do the same.
Remember that wifi is disabled - use wired connection instead:
lower latency, reliable connection, speed.
You can use the ethbian-ssd-init.sh script to initialize a new disk drive
or remount your partition after upgrading Ethbian.
If you prefer to do this manually - SSD should be mounted to the /mnt/ssd directory
with datadir subdirectory created within (user eth should be the owner).
Because of memory allocation problem with the latest Raspbian and RPi4
you should switch to 64bit kernel - by executing the ethbian-64bit.sh script.
If you don't - when fully synced, geth will crash every couple of minutes/hours
causing your Pi to hang eventually.
The "ethbian-geth-admin.sh -u" will upgrade your geth to the latest version.
Ethbian monitoring:
- collectd (collects system/geth data)
- geth_peers_geo2influx.py script (geolocation, eth's crontab)
- eth_price2influx.py script (eth price, eth's crontab)
- influx database (data storage)
- grafana (data visualization)
Use the ethbian-monitoring.sh command do disable/enable these services
or check their status.
When monitoring services are running you can monitor RPi temperature, system load
and memory usage and some basic geth stats with a web browser:
Grafana is running on port 3000 with default user admin and password admin.
Just launch Firefox/Chrome/Safari and enter the following URL:
http://pi's_IP_address:3000, eg. http://192.168.1.33:3000
With network configured and disk mounted you are ready to go.
sudo systemctl start geth will start geth.
sudo systemctl enable geth will make it start automatically on boot.
/lib/systemd/system/geth.service :geth settings
/usr/local/bin/geth/geth :geth binary.
/usr/local/sbin :admin scripts
temp :shows CPU temperature
gat :attach to geth console
gsync :shows geth synchronization progress
/var/log/geth.log :geth logs
For more details visit https://ethbian.org