问题描述
我正在尝试使用this tutorial在RaspBerry Pi 4上设置Medalla测试网络验证程序,区别在于我已经拉过ARM64 Ethereum package from here.
我正在运行Ubuntu v20.04(LTS)x64
今天早上我设法同步了testnet,但是只能使用/ var / library / goethereum --datadir。显然,鉴于为区块链的最终大小建议使用500GB的存储空间,这不会长期有效。
我在Pi的蓝色USB(即USB 3.0)中安装了Samsung T5 SSD。
当我尝试使用--datadir / mnt / t5 / goethereum /
写入ssd时两种行为是不同的。日志报告:
8月16日13:37:21 ethnode-f4f1e111d geth [7435]:致命:错误启动 协议栈:监听Unix /mnt/t5/goethereum/geth.ipc:绑定: 输入/输出错误8月16日13:37:21 ethnode-f4f1e111d systemd 1: geth.service:主进程已退出,代码已退出,状态为1 / FAILURE 8月 16 13:37:21 ethnode-f4f1e111d systemd 1:geth.service:失败于 结果为“退出代码”。
当我尝试使用来附加geth时
geth attach ipc:/mnt/t5/goethereum/geth.ipc
我明白了
致命:无法连接到远程geth:拨打unix /mnt/t5/goethereum/geth.ipc:连接:连接被拒绝
我正在以用户身份运行geth,并以该用户拥有的身份安装了T5。
/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
/ mnt / t5中的权限是:
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
知道我在做什么错吗?
解决方法
As Karslabe mentioned in this comment,您不能将geth.ipc文件托管在非unix卷上。但是幸运的是,您可以为数据和geth.ipc文件指定不同的目录。
答案是这样编辑我的/etc/systemd/system/geth.service:
if self.shape == ShapeMethod.circle