Cómo guardar datos de paridad con docker

Cada vez que actualizo la paridad en la ventana acoplable extrayendo y creando un nuevo contenedor, pierdo todos los datos de sincronización.

El Dockerfile no parece exponer un volumen que podría montar con -v

¿Hay algún truco o debo ignorarlo ahora que Parity puede actualizarse automáticamente (desde 1.5)?

Respuestas (1)

La solución es montarlo en la ventana acoplable con -v en una carpeta local

Ejemplo

Primero en su host, cree la carpeta donde parity guardará los datos

mkdir /srv/parity

Luego, asegúrese de tener la última versión de parity

docker pull parity/parity:nightly

Y finalmente crea el contenedor con los siguientes parámetros:

  • -v /srv/parity:/root/.local/share/io.parity.ethereum/ (monte su carpeta local /srv/parity en el almacenamiento de paridad de contenedores

Comando de ejecución completa:

docker run -ti -d -p 8545:8545 --name parity -v /srv/parity:/root/.local/share/io.parity.ethereum/ parity/parity:nightly --jsonrpc-interface '0.0.0.0' --jsonrpc-hosts="all" --author "0xYOURETHADDRESS" --auto-update="all" -d /mnt

Nota: Este comando también:

  • Permita que cualquiera en su red acceda a la interfaz JSON RPC, así que no use este comando en un servidor expuesto
  • Habilite la actualización automática de Parity que se introdujo en 1.5
  • Le permite minar en solitario especificando el parámetro "autor"

Después de ejecutar el comando, puede verificar que todo funcionó al verificar la carpeta / srv / parity en su host docker

Comprobando la carpeta de paridad


Script de desarrollo adicional:

Puede usar el siguiente script bash para actualizar la paridad cuando lo desee. Elimina el contenedor antiguo, crea uno nuevo pero mantiene los datos

#!/bin/sh

docker pull parity/parity:nightly
docker rm -f parity
docker run --restart always -ti -d \
-p 8180:8180 -p 8545:8545 -p 8546:8546 -p 30303:30303 -p 30303:30303/udp \
--name parity --restart always \
-v /srv/parity:/root/.local/share/io.parity.ethereum/ parity/parity:nightly \
--jsonrpc-interface '0.0.0.0' --jsonrpc-hosts="all" \
--author 0xYOURETHADDRESSHERE \
--auto-update="all" \
--stratum --stratum-interface=0.0.0.0 \
--jsonrpc-cors null \
--unsafe-expose \
--db-compaction hdd \
--mode active --cache-size 4096 \
--ui-interface 0.0.0.0 --ui-no-validation

docker logs --follow parity
En realidad, la -d significa modo separado . ¿Funcionó tu solución?
La paridad cambió mucho desde que escribí esta respuesta, así que la actualicé para que funcione con las versiones actuales. El uso de "-d" está desaconsejado ahora porque hace que la paridad no pueda realizar generaciones de claves