Blockchain

如何使用 docker 保存奇偶校驗數據

  • March 22, 2018

每次我通過拉取並創建一個新容器來升級 docker 上的奇偶校驗時,我都會失去所有同步數據。

Dockerfile 似乎沒有公開我可以使用 -v 掛載的捲

Parity 可以自動更新(從 1.5 開始),它有什麼竅門還是我應該忽略它?

解決方案是使用**-v將****其掛載到 docker**到本地文件夾

例子

首先在您的主機上創建奇偶校驗將保存數據的文件夾

mkdir /srv/parity

然後確保您擁有最新版本的奇偶校驗

docker pull parity/parity:nightly

最後使用以下參數創建容器:

  • -v /srv/parity:/root/.local/share/io.parity.ethereum/(將本地文件夾 /srv/parity 掛載到容器奇偶校驗儲存

完整執行命令:

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

**注意:**此命令還將:

  • 允許網路中的任何人訪問 JSON RPC 介面,因此不要在暴露的伺服器上使用此命令
  • 啟用 1.5 中引入的 Parity 的自動更新
  • 允許您通過指定“作者”參數進行單獨挖礦

執行命令後,您可以通過檢查 docker 主機上的 /srv/parity 文件夾來驗證一切是否正常

檢查奇偶校驗文件夾


獎勵開發腳本:

您可以隨時使用以下 bash 腳本更新奇偶校驗。它刪除舊容器,創建一個新容器但保留數據

#!/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

引用自:https://ethereum.stackexchange.com/questions/11546