Reputation: 1919
I'm trying to set up a Medalla test net validator on a Raspberry Pi 4 using this tutorial, with the difference that I've pulled the ARM64 Ethereum package from here.
I'm running Ubuntu v20.04 (LTS) x64
I managed to sync the testnet this morning, but only by using /var/library/goethereum as my --datadir. Obviously, that's not going to work long term given the recommended 500GB storage for the eventual size of the blockchain.
I have a Samsung T5 SSD mounted into a blue USB (i.e. USB 3.0) of the Pi.
When I try writing to my ssd using --datadir /mnt/t5/goethereum/
Two behaviours are different. The log reports:
Aug 16 13:37:21 ethnode-f4f1e111d geth[7435]: Fatal: Error starting protocol stack: listen unix /mnt/t5/goethereum/geth.ipc: bind: input/output error Aug 16 13:37:21 ethnode-f4f1e111d systemd1: geth.service: Main process exited, code=exited, status=1/FAILURE Aug 16 13:37:21 ethnode-f4f1e111d systemd1: geth.service: Failed with result 'exit-code'.
And when I attempt to attach geth using
geth attach ipc:/mnt/t5/goethereum/geth.ipc
I get
Fatal: Unable to attach to remote geth: dial unix /mnt/t5/goethereum/geth.ipc: connect: connection refused
I'm running geth as user goeth, and mounted the T5 as owned by that user.
Contents of /etc/systemd/system/geth.service
[Unit]
Description=Ethereum go client
After=network.target
Wants=network.target
[Service]
User=goeth
Group=goeth
Type=simple
Restart=always
RestartSec=5
ExecStart=geth --goerli --http --datadir /mnt/t5/goethereum/
[Install]
WantedBy=default.target
Permissions in /mnt/t5 are:
drwxrwxrwx 1 goeth goeth 131072 Aug 16 13:48 geth
-rwxrwxrwx 1 goeth goeth 0 Aug 16 13:48 geth.ipc
drwxrwxrwx 1 goeth goeth 131072 Aug 16 13:46 keystore
Any idea what I'm doing wrong?
Upvotes: 0
Views: 740
Reputation: 1919
As Karslabe mentioned in this comment, you can't host your geth.ipc file on a non-unix volume. But fortunately you can specify different directories for your data and your geth.ipc file.
The answer was to edit my /etc/systemd/system/geth.service thus:
[Unit]
Description=Ethereum go client
After=network.target
Wants=network.target
[Service]
User=goeth
Group=goeth
Type=simple
Restart=always
RestartSec=5
ExecStart=geth --goerli --http **--ipcpath /var/lib/goethereum/geth.ipc** --datadir /mnt/t5/goethereum/
[Install]
WantedBy=default.target
Upvotes: 0