首页 > 解决方案 > 超级账本结构中的不可变事务

问题描述

您好我有一个关于超级账本结构交易的问题。因此,在 fabcar 示例中,我们在链码中创建了一个汽车对象,并通过更改其所有者等方式对其进行操作。我的问题是,这一切中的交易在哪里?什么是不可变的?我们可以从链码中获取交易历史吗?还是我们必须自己在代码中实现登录以记录和保存链码中的数据更改或操作以及日期?

标签: javascripthyperledger-fabricblockchainhyperledger

解决方案


  1. 如果您添加新记录或更新现有记录,这些将被视为带有 fabcar 链码的交易。您可以通过查询分类帐找到所有这些交易。

  2. 记录和交易历史是不可变的。例如,Car1 的当前所有者是 Syed。此记录是不可变的,任何人都不能非法更改此所有权。之前赛义德从 Zain 买了这辆车。因此所有权从 Zain 更改为 Syed。所有这些记录都保持不变。

  3. 是的,我们可以通过查询分类帐来获取密钥的所有先前历史记录。您必须调用“stub.GetHistoryForKey”。您可以在“marbles_chaincode.js”中找到答案

  4. 在公钥密码学中你不需要任何登录,对于链码中的访问控制,你可以使用基于属性的访问控制或 ABAC。目前,您可以将“github.com/hyperledger/fabric-chaincode-go/pkg/cid”包用于带有 go 链码的 ABAC。


推荐阅读