如果在 hyperledger fabric 网络中 peer 的账本被篡改,如何恢复账本之前的状态?
If the ledger of peer is tampered in hyperledger fabric network, how can be the previous state of ledger restored?
我的 hyperledger fabric 网络由 1 个订购者、1 个组织和 3 个节点组成。我篡改了第一个节点的账本,然后尝试在同一个节点上进行另一笔交易,然后抛出以下错误:
“错误:在收到 txid 之前交付已完成,状态为 (SERVICE_UNAVAILABLE) - 提案响应:”
但是交易已经执行,并且该块也被添加到对等方的篡改分类账中。但是被篡改的数据并没有恢复到原来的状态。
参考这个link中的答案-“https://intellipaat.com/community/17752/in-hyperledger-fabric-blocks-locations-and-validity-criteria”,我知道如果篡改了,“状态数据库可以从区块链中删除并重建”。那么这个删除和重建数据库的过程是由 peer 自动完成的还是我们需要手动完成?
简而言之,如果对peer的账本进行了篡改,如何恢复账本之前的状态?
如果状态数据有疑问,您可以停止对等体,删除状态数据库,并在重新启动对等体时重建状态数据库。当 peer 停止时,命令 peer node rebuild-dbs
将为您删除状态数据库。参见 command documentation.
如果区块链账本本身有疑问,您将需要使用 peer node reset
命令替换节点或将节点重置为创世区块。见 command documentation.
我的 hyperledger fabric 网络由 1 个订购者、1 个组织和 3 个节点组成。我篡改了第一个节点的账本,然后尝试在同一个节点上进行另一笔交易,然后抛出以下错误:
“错误:在收到 txid 之前交付已完成,状态为 (SERVICE_UNAVAILABLE) - 提案响应:”
但是交易已经执行,并且该块也被添加到对等方的篡改分类账中。但是被篡改的数据并没有恢复到原来的状态。
参考这个link中的答案-“https://intellipaat.com/community/17752/in-hyperledger-fabric-blocks-locations-and-validity-criteria”,我知道如果篡改了,“状态数据库可以从区块链中删除并重建”。那么这个删除和重建数据库的过程是由 peer 自动完成的还是我们需要手动完成?
简而言之,如果对peer的账本进行了篡改,如何恢复账本之前的状态?
如果状态数据有疑问,您可以停止对等体,删除状态数据库,并在重新启动对等体时重建状态数据库。当 peer 停止时,命令 peer node rebuild-dbs
将为您删除状态数据库。参见 command documentation.
如果区块链账本本身有疑问,您将需要使用 peer node reset
命令替换节点或将节点重置为创世区块。见 command documentation.