首页 > 解决方案 > 如何修复“[E][Init]:初始化存储失败”

问题描述

我想使用 docker 容器在一台主机上建立一个由 3 个节点组成的 Iroha 网络。因此,我设置了 3 个 postgres 容器、3 个块存储和 1 个 iroha-network。

启动不同的 postgres 容器可以正常工作(映射到端口 5532、5533、5534)。第一个 iroha 容器似乎也在工作。但是,如果我尝试启动第二个容器,则会收到以下错误:

docker run --name iroha1 -p 50052:50051 -v $(pwd)/node1:/opt/iroha_data -v blockstore1:/tmp/block_store --network=iroha-network -e KEY='node1' hyperledger/iroha:latest
key=node1
/opt/iroha_data
WARNING: IROHA_POSTGRES_HOST is not defined.
    Do not wait for Postgres to become ready. Iroha may fail to start up
[2019-05-24 09:42:39.416652545][I][Init]: Irohad version: 1.0.0
[2019-05-24 09:42:39.417173322][I][Init]: config initialized
[2019-05-24 09:42:39.419332310][I][Irohad]: created
[2019-05-24 09:42:39.419510386][I][Irohad/Storage]: Start storage creation
[2019-05-24 09:42:39.419664393][I][Irohad/Storage]: block store created
[2019-05-24 09:42:39.425382813][E][Init]: Failed to initialize storage

如果我将第一个节点的 postgres 容器用于第二个节点,则不会发生错误,即 iroha 容器启动。

非常感谢任何帮助或建议。

标签: hyperledger-iroha

解决方案


日志中关于初始化存储失败的最后一行是提示。

要解决此问题,请使用您创建的第二个块存储,因为第一个块存储blockstore1已在使用中。启动第二个 iroha 容器时使用第二个块存储,例如... -v blockstore2:/tmp/block_store ...

让我知道这是否对您有帮助


推荐阅读