the easy way to run a full Ethereum node on RPi4


I'm behind a firewall...

   - set a static IP address to your RPi
   - forward the following port to the address: 30303 (TCP/UDP)

I want to use wifi...

   No, you don't - wired connection offers lower latency, higher speed and is more reliable.
   But... if you really really have to - just edit the /boot/config.txt file and remove (or comment out) the following line: dtoverlay=disable-wifi. Next - install the wpasupplicant package (sudo apt-get install wpasupplicant). After restarting your RPi you should be able to configure your wifi card with the raspi-config tool or command line.

My SSD seems to be slow...

   Even if it doesn't - take a look at this.

geth synchro got stuck at 99.999%

   After about 24 hours the difference between the mainnet and your geth will be
between 50 and 200 blocks (run the gsync command to check it). It will stay
at that level for the next 5 to 7 days (screenshot). Just be patient.
Detailed explanation can be found here.

It's getting hot in here

   Latest firmware updates can significantly reduce power consumption:
   sudo apt update
   sudo apt full-upgrade
   ...and restart the box.

What are and how do I control monitoring services?

    Grafana - is what shows you the data (listening on port 3000)
    collectd - is what collects the data
    InfluxDB - is what stores the data
    OK, additionally there are two cron jobs running as the eth user.

    You can enable/disable/check their status with the tool.

Which ports are open/listening by default?

   - 22 tcp (SSH)
   - 30303 tcp/udp (geth)
   - 3000 tcp (Grafana)

   ...and additionally 8086 and 8088 on localhost (InfluxDB).

How do I enable firewall?

    Here we go:
       sudo apt-get install ufw
       sudo ufw default deny incoming
       sudo ufw default allow outgoing
       sudo ufw allow 22/tcp
       sudo ufw allow 30303/tcp
       sudo ufw allow 30303/udp
       sudo ufw allow 3000/tcp
       sudo ufw enable

    You can check status with: sudo ufw status or sudo ufw status verbose.

How can I get in touch with you?

    - pull requests are more than welcome if you're fixing something
    - by dropping an email to ethbian (at) protonmail (dot) com