【问题标题】:hyperledger fabric: read query and communicating amoung peers within a channel超级账本结构:读取查询并在通道内的对等点之间进行通信
【发布时间】:2018-02-21 08:22:52
【问题描述】:

我知道读取查询是一个链码调用,它读取分类帐当前状态但不写入分类帐。 客户端应用程序可以选择提交只读事务以进行排序、验证和提交(出于审计目的)

问题:

  1. 是否可以在不通过链码的情况下读取分类帐数据库? 是什么阻止了频道上的某个人在不使用合约并避免记录读取的情况下直接读取 CouchDB(假设这是使用的底层数据库)

  2. 基本上,我们在结构中使用异步通信。发起交易的节点只与对等方同步对话,并且在发起排序服务之后,将在所有验证检查后将 txn 提交到账本。

以下可能吗? 节点 A 向账本请求提交数据以进行操作 -> 需要由节点 B 完成。

这是否可以让节点 A 通知 B 检查账本并执行操作,而 B 完成后通知 A 检查更新的账本?

【问题讨论】:

    标签: hyperledger-fabric


    【解决方案1】:

    是否可以在不通过链码的情况下读取分类帐数据库? 是什么阻止了频道上的某个人直接阅读 CouchDB (假设这是使用的基础数据库)不使用合同和 避免记录读取

    如果您可以访问数据库本身,没有什么可以阻止您这样做。 但是,客户端通常无权访问数据库,因此对等点(通过链代码)可以对可以读取哪些客户端和哪些数据执行选择性逻辑。 想想应用服务器、servlet 容器等。 从浏览器浏览的用户无权访问应用服务器使用的数据库,对吧? 类似的事情也发生在这里。

    从根本上说,我们在结构中使用异步通信。节点 仅与对等方同步启动事务对话,并且 启动该订购服务后,将提交 txn 到 所有验证检查后的分类帐..

    严格来说,ordering 服务不会将 txn 提交到账本,因为 ordering 服务没有账本。它将交易打包成块,然后将块发送给对等点。然后由节点验证并提交区块到他们自己的分类账。

    节点A是否可以通知B检查账本并执行 操作完成后,B 通知 A 检查更新的账本?

    您需要客户端 SDK 来协调所有这些。用户链码仅在客户端请求的上下文中运行。 因此,您可以让客户端执行提交事务的操作,然后客户端发送另一个事务,其中链代码检查当前分类帐等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多