Hyperledger Fabric:对等节点回滚

问题描述

我正在跟踪Hyperledger V 1.4 documsation,使用以下命令将频道 mychannel 回滚到阻止号码 150

peer node rollback -c mychannel -b 150

如果我在CLI容器中运行此命令,则会显示

验证回滚参数:ledgerID [mychannel],块号 [0] 错误:ledgerID [mychannel]不存在。

如果我在peer0内部运行,则报错

错误:正在执行另一个对等节点命令时,请等待 命令以完成其执行或在重试之前将其终止: 已在文件获取锁 / var / hyperledger / production / ledgersData / fileLock

我已经尝试过通过停止并暂停节点来尝试不同的方式,但是失败了,任何人都可以指导正确的方法来执行此任务。

预先感谢

解决方法

peer node rollback -c mychannel -b 150

注意:上述命令应从对等节点而不是CLI执行

Error: as another peer node command is executing,wait for that command to complete its execution or terminate it before retrying: lock is already acquired on file /var/hyperledger/production/ledgersData/fileLock

在执行诸如

之类的任务时,请确保对等方处于脱机状态
  • 对等节点重置
  • 对等节点回滚

请注意,回滚并不意味着它将永久删除块,在执行回滚操作后,对等方将接收来自订购者或其他对等方的块

,

我找到了以下解决方案:

第一个网络已启动并正在运行,我在docker compose文件中为必需的对等设备添加了以下命令,让我们说peer0.org1.example.com,

command: peer node rollback -c mychannel -b 1 && peer node start

保存更改后,请运行以下命令

docker-compose -f docker-compose-cli.yaml up -d  peer0.org1.example.com

现在从上面的命令中删除回滚部分,我可以看到日志显示它已成功回滚。

docker logs peer0.org1.example.com

docker logs