Запустите туман без загрузки блокчейна

Как предотвратить mistзагрузку блокчейна?

У меня маленький жесткий диск и я не могу позволить себе место на диске.

Ответы (2)

С использованиемparity

Вы можете parityэмулировать gethIPC 's (т.е. притворяться geth), запустив:

parity --light --geth

Если вы хотите быть ленивым, вы можете добавить в свой файл конфигурации :

[parity]
light = true
geth = true

Затем запустите туман как:

mist  --syncmode light

Если при mistзагрузке появляется пустой экран, см . здесь .

С использованиемgeth

Запуск geth --lightне загрузит блок-цепочку, а вместо этого запросит у других узлов любую информацию, содержащуюся в блок-цепочке.

Мне потребовалось довольно много исследований, чтобы понять, как использовать mistwith 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
  • Гарантирует, что мне не нужно очищать какие-либо частично загруженные данные блокчейна.