¿Cómo evito mist
descargar la cadena de bloques?
Tengo un disco duro pequeño y no puedo pagar el espacio en disco.
parity
Puede parity
emular geth
el IPC de (es decir, pretender ser geth
), ejecutando:
parity --light --geth
Si quieres ser perezoso, puedes agregar a tu archivo de configuración :
[parity]
light = true
geth = true
Luego comience la niebla como:
mist --syncmode light
Si obtiene una pantalla en blanco cuando se mist
carga, consulte aquí .
geth
La ejecución geth --light
no descargará la cadena de bloques, sino que consultará otros nodos en busca de cualquier información contenida en la cadena de bloques.
Me tomó un poco de investigación averiguar cómo usar mist
with geth --light
, pero la respuesta es comenzar primero geth
:
geth --light
Luego inicia la niebla, diciéndole que use el nodo en modo de luz:
mist --syncmode light
Debería poder simplemente ejecutar , pero este problema actualmente lo impide .mist --node-light
Como una solución alternativa para los usuarios de Linux, basada en el script de @pparent76 , se me ocurrió:
#!/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
Llame al script "emist" para que no se llame a sí mismo recursivamente :)
Cinturón de seguridad extra:
Dado que geth no admite un archivo de inicio , es posible que desee asegurarse de que geth no se inicie sin usar --light
.
Asegúrese de que geth no pueda crear un archivo de bloqueo en la base de datos de blockchain:
rm -rf ~/.ethereum/geth/chaindata/ && mkdir -m 000 ~/.ethereum/geth/chaindata/
Esto eliminará cualquier dato de blockchain ya descargado y volverá a crear el directorio sin permisos de escritura.
En Windows, puede eliminar los permisos de escritura para el usuario actual haciendo clic con el botón derecho en el directorio chaindata, seleccionando "Propiedades" y luego "Permisos" y desmarcando los permisos de "escritura" para el usuario actual.
Si luego trato de ejecutar geth
sin --light
, obtengo:
Fatal: Error starting protocol stack: open /home/ravi/.ethereum/geth/chaindata/LOCK: permission denied
Esto es deseable porque:
geth
con--light