Hyperledger Fabric CouchDB通过Fauxton更新被视为有效更新,但区块链中没有记录

问题描述 投票:-1回答:1

我有一个Hyperledger Fabric网络设置,有3个对等体,每个对等体都有一个CouchDB持久性容器。

如果我通过Fauxton接口并更改JSON记录,则此状态更改将传播到位于同一组织中的所有三个对等方。

但是,区块链中没有状态变化的记录。没有为它创建任何事务。

  • 如果它不是区块链事务导致状态更改传播到所有对等体,那么是什么机制导致它?
  • 通过Fauxton的状态变化如何被认为是有效的,没有基础的交易?
  • Fauxton在生产环境中的期望是什么?
couchdb hyperledger-fabric hyperledger fauxton
1个回答
4
投票

如果直接在对等CouchDB中更改数据,则不会将其传播到其他对等方。您不应将CouchDB端口暴露在对等网络之外,以避免数据被篡改。只有对等方的管理员才能访问CouchDB,管理员无需篡改自己的数据。让我进一步解释......

Hyperledger Fabric状态数据库类似于比特币未使用的事务数据库,因为如果对等管理员篡改他们自己的对等数据库,则对等方将无法说服其他对等方来自它的事务是有效的。在这两种情况下,数据库都可以被视为当前区块链状态的缓存。在这两种情况下,如果数据库损坏或被篡改,它可以在区块链的对等体上重建。在比特币的情况下,这是通过-reindex标志完成的。在Fabric的情况下,这是通过删除状态数据库并重新启动对等体来完成的。

在Fabric中,来自认可策略中指定的不同组织的对等方必须返回相同的链代码执行结果以便验证事务。如果对等体上的分类账状态数据被更改或损坏(在CouchDB或LevelDB文件系统中),那么链代码执行结果将在支持对等体之间不一致,将找到“坏”对等体/组织,并且应用程序客户端应该在提交订单/提交事务之前,从坏的peer / org中抛出结果。如果客户端应用程序尝试提交具有不一致的认可结果的事务,则在验证时将在所有对等体上检测到该事务,并且该事务将被无效。

© www.soinside.com 2019 - 2024. All rights reserved.