首页 文章

Hyperledger Fabric,Docker在重启后不存储数据

提问于
浏览
4

我用Docker镜像设置了Hyperledger Fabric V0.6 . 我写了小链代码程序并执行一些操作 . 根据Hyperledger区块链的请求存储和获取数据 .

我重新开始我的链代码程序,数据仍然存在 . Ofcouse这应该是预期的行为 .

但是,当我使用命令docker-compose停止我的Hyperledger结构并使用docker-compose start再次启动它然后启动我的chaincode程序时,我发现在重启之前写入的整个数据都消失了 . 我在区块链中找不到任何数据 .

如何避免Hyperledger的这种行为?我在单个对等体/节点上运行它 . 对于多个对等体,如果其中一个对等体重新启动,则来自其他对等体的数据/事务将被复制到其上 . 但考虑到最糟糕的情况,所有同行都会失败 . 这是否意味着我们放弃了所有数据?

2 回答

  • 0

    根据docker-compose文件中列出的所有容器及其卷(除非指定为外部,请查看文档)按照官方列出的所有容器docs docker-compose down stop和 removes .

    您可能希望使用 docker-compose stop 停止容器 - 这样在 docker-compose up 之后它们的数据将被保留 .

  • 7

    关于数据持久性的注释

    如果在对等容器或CouchDB容器上需要数据持久性,则可以选择将docker-host中的目录挂载到容器中的相关目录中 . 例如,您可以在 docker-compose-base.yaml 文件的对等容器规范中添加以下两行:

    volumes: - /var/hyperledger/peer0:/var/hyperledger/production

    对于CouchDB容器,您可以在CouchDB容器规范中添加以下两行:

    volumes: - /var/hyperledger/couchdb0:/opt/couchdb/data

相关问题