Coming soon - Get a detailed view of why an account is flagged as spam!
view details

This post has been de-listed

It is no longer included in search results and normal feeds (front page, hot posts, subreddit posts, etc). It remains visible only via the author's post history.

236
Ethereum on ARM. New image for the Raspberry Pi 4. Turn the RP4 into a full Ethereum node just by flashing the MicroSD card.
Post Body

TL;DR Flash the MicroSD with the EthRaspbian Image. Plug an USB 3.0 SSD disk (blue port), connect an ethernet cable and power up the Raspberry Pi 4. You are now running a full Ethereum node.

EthRaspbian (ARM7) [1] is a custom Linux image for the Raspberry Pi 4 [2] that runs Geth or Parity Ethereum clients as a boot service and automatically turns the device into a full Ethereum node. The image includes other components of the Ethereum ecosystem such as Trinity, Status.im, Raiden, IPFS, Swarm and Vipnode as well as initial support for Eth2.0 clients.

It also runs on the Raspberry Pi 2/3 but due to hardware limitations these devices are not capable of syncing the blockchain. However, you can run Geth or Parity as light clients or support the Ethereum network by running other key software such as Status.im, Raiden, IPFS or Swarm.

For running a full Ethereum node on ARM64 devices (currently NanoPC-T4 [3] and Rockpro64 [4]), please see the EthArmbian project [5]

Features

EthRaspbian Image takes care of everything, from setting up the environment to installing and running the Ethereum software as well as synchronizing the blockchain.

These are the main features:

  • Based on Raspbian [6] Debian Buster
  • Automatically resizes the SD card
  • Partitions and formats the USB SSD drive (in case is detected) and mount it as /home for storing the Ethereum blockchain
  • Creates an Ethereum user account
  • Changes the hostname to something like “ethnode-e2a3e6fe” (HEX chunk based on MAC hash)
  • Enables SSH
  • Automatically reboots once for hostname change, new /home mount point and MicroSD resize to take effect
  • Runs Geth by default as a Systemd service and starts syncing the Blockchain. Systemd monitors the Ethereum client binary and respawns it in case it gets killed or something unexpected happens (such as a reboot)
  • Includes Parity Ethereum client as well so you can switch between both clients
  • Includes other components of the Ethereum framework such as Status.im, Raiden, IPFS and Swarm
  • Includes an APT repository for upgrading Ethereum packages by running apt-get install command (e.g. sudo apt-get install geth)

Ethereum software installed

  • Geth: 1.9.6 (official binary)
  • Parity: 2.5.9 (cross compiled)
  • Swarm: 0.5.2 (official binary)
  • Raiden Network: 0.200.0~rc1 (official binary)
  • IPFS: 0.4.22 (official binary)
  • Status.im: 0.34.0~beta3 (cross compiled)
  • Vipnode: 2.3 (official binary)

Requirements

  • Raspberry Pi 4 model B (4GB)
  • Micro SD Card
  • SSD disk with USB 3.0 (See USB SSD disk section)
  • Power Supply
  • Ethernet cable
  • (Optional but strongly recommended) Case with a heatsink and a fan.
  • (Optional but strongly recommended) 30303 Port forwarding
  • (Optional) USB keyboard, Monitor and HDMI cable (micro-HDMI)

Download and install instructions

Download Raspberry Pi 4 image

https://ethraspbian.com/downloads/image_2019-10-26-EthRaspbian2.0-lite.zip

md5sum 172dd37c30e4ae734ff39b45f5e5a33c

Flashing the MicroSD (Linux command line)

unzip image_2019-10-26-EthRaspbian2.0-lite.zip
sudo dd bs=1M if=2019-10-26-EthRaspbian2.0-lite.img of=/dev/mmcblk0 conv=fdatasync status=progress

Once flashed, insert de MicroSD, connect the SSD USB disk (blue port), the ethernet cable and power up the Raspberry.

Disclaimer: Keep in mind that your entire USB disk will be wiped out.

Login info

  • User: ethereum
  • Password: ethereum

For security reasons, you will be prompted to change the password on first login.

For further info regarding installation and usage please visit Ethereum on ARM Github page [1]

USB SSD disk

There are 2 options for the SSD storage:

Use a USB portable SSD disk such as the Samsung T5 Portable SSD (as seen on this fantastic step-by-step guide to run a full node on the RPi4 by Grégoire Jeanmart) [7]

Use a USB 3.0 External Hard Drive Case with a SSD Disk. In my case I used a Inateck 2.5 Hard Drive Enclosure FE2011 [8] with a Kingston SSD A400 (480 GB) [9]. Be sure to buy a case with an UAS compliant chip, particularly, one of these: JMicron (JMS567 or JMS578) or ASMedia (ASM1153E)

Keep in mind that you need to plug the disk to a USB 3.0 port (blue)

Fast Sync data

These are the numbers of the Raspberry Pi 4 Fast sync:

  • Sync time: 4 days and 2 hours
  • Total state entries downloaded: 391M
  • Total DB size: 178 GB

Other considerations

30303 port forwarding is a must, otherwise, the sync process will be far more slow.

Try to get a case with a fan and a heatsink to prevent CPU throttle (during sync, the temperature can go over 80 ºC without a cooling system). There are lots of cases out there (like this one [10]).

The 2Gb model may work but you probably need to tweak Geth memory usage (I'm a little skeptical here, though). Try to reduce the --cache value in /etc/ethereum/geth.conf file. The swap memory config is in /etc/dphys-swapfile. Feel free to report here your feedback.

Take into account that fast sync depends on several factors: Disk throughput, network bandwidth, RAM memory, disk cache... so total sync time may differ between users. For the Raspberry Pi 4, expect between 3-5 days for the sync process to complete.

It seems that there may be an issue with memory management [11]. I got some errors during the sync process related to RAM (though it doesn't stop the sync as systemd respawns the process). It turns out that Geth can't handle 512MB of cache in the RP4 (it is set now to 256MB) while ARM64 devices (with 4GB of RAM as well) run with more than 1GB of cache with no problem whatsoever. In you run into this, please, report here or in Github your feedback.

Finally. A few days ago, at Devcon 5, Joseph Lubin set a goal of 1M developers working on the Ethereum ecosystem by Devcon 6. If this is achievable (I think it is), can we get a fraction of these users to run a full node? It just takes a MicroSD flash...

References

[1] https://github.com/diglos/pi-gen

[2] https://www.raspberrypi.org

[3] https://www.friendlyarm.com/index.php?route=product/product&product_id=225

[4] https://store.pine64.org/?product=rockpro64-4gb-single-board-computer

[5] https://github.com/diglos/userpatches

[6] https://www.raspbian.org

[7] https://kauri.io/article/9695fcca217f46feb355245275835fc0

[8] https://www.amazon.com/Inateck-Aluminum-External-Enclosure-Optimised/dp/B0739KPPFF

[9] https://www.amazon.com/Kingston-480GB-Solid-SA400S37-480G/dp/B01N0TQPQB

[10] https://www.youtube.com/watch?v=K2UecGfLPKI

[11] https://github.com/ethereum/go-ethereum/issues/20190

Duplicate Posts
2 posts with the exact same title by 1 other authors
View Details
Author
Account Strength
90%
Account Age
9 years
Verified Email
Yes
Verified Flair
No
Total Karma
2,933
Link Karma
2,320
Comment Karma
488
Profile updated: 5 days ago

Subreddit

Post Details

We try to extract some basic information from the post title. This is not always successful or accurate, please use your best judgement and compare these values to the post title and body for confirmation.
Posted
5 years ago