Как предотвратить mist
загрузку блокчейна?
У меня маленький жесткий диск и я не могу позволить себе место на диске.
parity
Вы можете parity
эмулировать geth
IPC 's (т.е. притворяться geth
), запустив:
parity --light --geth
Если вы хотите быть ленивым, вы можете добавить в свой файл конфигурации :
[parity]
light = true
geth = true
Затем запустите туман как:
mist --syncmode light
Если при mist
загрузке появляется пустой экран, см . здесь .
geth
Запуск geth --light
не загрузит блок-цепочку, а вместо этого запросит у других узлов любую информацию, содержащуюся в блок-цепочке.
Мне потребовалось довольно много исследований, чтобы понять, как использовать mist
with geth --light
, но ответ заключается в том, чтобы сначала начать geth
:
geth --light
Затем запустите туман, сказав ему использовать узел в легком режиме:
mist --syncmode light
Вы должны иметь возможность просто запустить mist --node-light
, но эта проблема в настоящее время препятствует этому.
В качестве обходного пути для пользователей Linux, основанного на сценарии @pparent76 , я придумал:
#!/bin/bash
# Work around for issues:
# https://github.com/ethereum/mist/issues/2254
# https://github.com/ethereum/mist/issues/2372
# https://github.com/ethereum/mist/issues/2999
set -eu # For script robustness
geth=$(which geth)
mist=$(which mist) # Change to explicit path if you call this script "mist"
# Use pidof as procps' pgrep is broken:
# sleep 1& pgrep -ax '^sleep$' should return null
if ! geth_pid=$(pidof geth); then
echo "Starting $geth."
"$geth" --syncmode light &
else
echo "Geth is already running with PID(s): $geth_pid"
fi
if ! mist_pid=$(pidof mist); then
echo "Starting $mist."
"$mist" --light-node
else
echo "Mist is already running with PID(s): $mist_pid"
fi
Назовите скрипт "emist", чтобы он не вызывал себя рекурсивно :)
Бонусный ремень безопасности:
Поскольку geth не поддерживает файл запуска , вы можете убедиться, что он не запустится без использования файла --light
.
Убедитесь, что geth не может создать файл блокировки в базе данных блокчейна:
rm -rf ~/.ethereum/geth/chaindata/ && mkdir -m 000 ~/.ethereum/geth/chaindata/
Это приведет к удалению всех уже загруженных данных блокчейна и воссозданию каталога без прав на запись.
В Windows вы можете удалить разрешения на запись для текущего пользователя, щелкнув правой кнопкой мыши каталог chaindata, выбрав «Свойства», затем «Разрешения» и сняв галочку с разрешения «на запись» для текущего пользователя.
Если я затем попытаюсь запустить geth
без --light
, я получу:
Fatal: Error starting protocol stack: open /home/ravi/.ethereum/geth/chaindata/LOCK: permission denied
Это желательно, потому что:
geth
с--light