hyperledger-iroha - 如何修复“[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 容器启动。
非常感谢任何帮助或建议。
解决方案
日志中关于初始化存储失败的最后一行是提示。
要解决此问题,请使用您创建的第二个块存储,因为第一个块存储blockstore1已在使用中。启动第二个 iroha 容器时使用第二个块存储,例如... -v blockstore2:/tmp/block_store ...
让我知道这是否对您有帮助
推荐阅读
- java - Java - 如何在另一个类中使用 Arraylist
- php - Yii2 Gridview 小部件使下拉过滤器选项被选中
- laravel - 我如何“多个” Laravel App 最佳实践
- android - Recyclerview 只刷新显示的项目
- php - 如何根据选定的选项值获取值
- r - covr 显示 0% 的覆盖率,而所有带有 testthat 的测试都通过
- asp.net - ASP.NET 路由 - HTTP 404。您正在寻找的资源(或其依赖项之一)可能已被删除
- google-app-maker - 谷歌应用程序制造商过滤器下拉菜单
- c++ - Boost.Spirit qi值序列向量
- css - Mac中的按钮文本对齐问题