如果我们手动编辑单组织单对等Hyperledger Fabric网络的分类帐,会发生什么情况

时间:2019-09-03 08:04:56

标签: hyperledger-fabric hyperledger

我已经建立了FabCar教程网络。如果我手动编辑分类帐并再次启动Fabric,会出现某种错误吗?另外,我找不到物理存储分类帐的文件夹/ var / hyperledger。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

使用docker-compose执行的FabCar示例,这意味着您的对等对象正在docker容器中运行,因此要访问/var/hyperledger,您需要登录到容器。

现在您的问题:

  

如果我手动编辑分类帐并再次启动Fabric,会出现某种错误吗?

这里有两个部分,有一个分类帐,用于维护和保持链接块的持久性,还有状态数据库。

现在,状态数据库基本上代表了您陈述到账本的最新提交区块的最新快照。而且,您需要它的原因之一是避免一直寻找分类帐中的最新更新,而直接访问它。

如果您或其他人损害了您的同伴并更改了分类帐,而没有触及状态,尽管您在对世界状态进行检查(审核)时失去了依赖分类帐的能力,但它并不会真正影响一致性。如果您要删除分类帐数据并使对等方与订购服务或其他对等方进行同步,则可以解决此问题。

接下来,如果有人伪造了对等方的世界状态,那么您将能够在进行背对时发现它,这意味着有了足够强大的背书策略,您需要与多于一个对等方确认执行结果,最终您将检测到该状态已经发生分歧,并且回复您的分类帐以重新创建正确的分类帐。

还有一个工具可以帮助您检测分类帐文件的损坏,请参阅here

答案 1 :(得分:1)

所有分类帐,块等存储在对等容器的特定位置以下

/var/hyperledger/production

所有分类帐,块等存储在订购容器的特定位置以下

/var/hyperledger/production/orderer

出现问题

  

如果我手动编辑分类帐并启动,会出现某种错误   又是面料?

我假设您使用的是ouchdb,已经登录到DB,并且您  编辑了分类帐,这意味着您更改了世界状态,而不是实际的链

查询时它将显示更新的数据,而不会给出任何错误(*适用条款)

请不要更改|篡改数据