Невозможно использовать SSD в качестве datadir для geth на PI 4 под управлением ubuntu

Я пытаюсь настроить валидатор тестовой сети Medalla на Raspberry Pi 4, используя это руководство, с той разницей, что я вытащил ARM64 Ethereum отсюда.

Я использую Ubuntu v20.04 (LTS) x64

Сегодня утром мне удалось синхронизировать тестовую сеть, но только с использованием / var / library / goethereum в качестве моего --datadir. Очевидно, что это не сработает в долгосрочной перспективе, учитывая рекомендуемый объем хранилища 500 ГБ для возможного размера блокчейна.

У меня есть SSD Samsung T5, установленный в синий USB (например, USB 3.0) Pi.

Когда я пытаюсь записать на свой ssd с помощью --datadir / mnt / t5 / goethereum /

Два поведения разные. Журнал сообщает:

16 августа 13:37:21 ethnode-f4f1e111d geth [7435]: Fatal: Ошибка при запуске стека протоколов: прослушивание unix /mnt/t5/goethereum/geth.ipc: bind: ошибка ввода / вывода 16 августа 13:37:21 ethnode- f4f1e111d systemd 1: geth.service: Основной процесс завершен, код = exited, status = 1 / FAILURE 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: connect: соединение отклонено

Я запускаю 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

Есть идеи, что я делаю не так?


person brianfit    schedule 16.08.2020    source источник


Ответы (1)


Как упоминал Карслабе в этом комментарии, вы не можете размещать ваш файл geth.ipc на томе, отличном от UNIX. Но, к счастью, вы можете указать разные каталоги для своих данных и файла geth.ipc.

Ответ заключался в том, чтобы отредактировать мой /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 **--ipcpath  /var/lib/goethereum/geth.ipc**   --datadir /mnt/t5/goethereum/
[Install]
   WantedBy=default.target
person brianfit    schedule 17.08.2020