我知道读取查询是一个链代码调用,它读取分类帐当前状态但不写入分类帐。 客户端应用程序可以选择提交只读事务以进行排序,验证和提交(用于审计目的)
问题:
是否可以在不通过链码的情况下读取分类帐数据库? 什么阻止通道上的某人直接阅读CouchDB(假设这是使用的基础数据库)而不使用合同并避免记录读取
从根本上说,我们在结构中使用异步通信。启动事务的节点仅与对等体同步进行通信,然后启动订购服务,该服务将在所有验证检查后将txn提交到分类帐。
以下可能吗? 节点A将数据提交给操作的分类帐请求 - >这需要由节点B完成。
节点A是否可以通知B检查分类账并执行操作,B完成后通知A检查更新的分类账?
答案 0 :(得分:2)
是否可以在不通过链码的情况下读取分类帐数据库? 什么阻止通道上的某人直接阅读CouchDB (假设这是使用的基础数据库)没有使用合同和 避免记录读数
如果您有权访问数据库本身,那么没有什么能阻止您这样做。 但是,客户端通常无法访问数据库,因此对等体(通过链代码)可以强制选择性逻辑,客户端和可以读取的数据。 想想应用程序服务器,servlet容器等。 从浏览器浏览的用户无权访问应用程序服务器使用的数据库,对吧? 类似的事情发生在这里。
从根本上说,我们在结构中使用异步通信。节点 仅与对等方同步启动事务会话 之后启动订购服务,将txn提交给 所有验证检查后的分类帐..
严格来说,订购服务不会将txn提交给分类帐,因为订购服务没有分类帐。它将事务打包成块,然后将块发送给对等体。然后是对等体验证并将块提交给它们自己的分类帐。
节点A是否可以通知B检查分类帐并执行 操作和B完成后通知A检查更新的分类帐?
您需要客户端SDK来协调所有这些。用户链接仅在客户端请求的上下文中运行。 因此,您可以让客户端执行提交事务的操作,然后客户端发送另一个事务,其中链代码检查当前分类帐等。