javascript - 超级账本结构中的不可变事务
问题描述
您好我有一个关于超级账本结构交易的问题。因此,在 fabcar 示例中,我们在链码中创建了一个汽车对象,并通过更改其所有者等方式对其进行操作。我的问题是,这一切中的交易在哪里?什么是不可变的?我们可以从链码中获取交易历史吗?还是我们必须自己在代码中实现登录以记录和保存链码中的数据更改或操作以及日期?
解决方案
如果您添加新记录或更新现有记录,这些将被视为带有 fabcar 链码的交易。您可以通过查询分类帐找到所有这些交易。
记录和交易历史是不可变的。例如,Car1 的当前所有者是 Syed。此记录是不可变的,任何人都不能非法更改此所有权。之前赛义德从 Zain 买了这辆车。因此所有权从 Zain 更改为 Syed。所有这些记录都保持不变。
是的,我们可以通过查询分类帐来获取密钥的所有先前历史记录。您必须调用“stub.GetHistoryForKey”。您可以在“marbles_chaincode.js”中找到答案
在公钥密码学中你不需要任何登录,对于链码中的访问控制,你可以使用基于属性的访问控制或 ABAC。目前,您可以将“github.com/hyperledger/fabric-chaincode-go/pkg/cid”包用于带有 go 链码的 ABAC。
推荐阅读
- google-cloud-platform - 我想在执行删除操作时降低 bigquery 中的查询成本
- mysql-workbench - 在 MySQLWorkBench GUI 中看不到表
- python - for循环内的Python曲线拟合
- erlang - 你如何挂钩到 Erlang 中的应用程序
- sql - 是否有编写 SQL 查询的方法,该查询根据另一列的计数返回累积结果?
- python - 在 pd.read_html 中使用 Pandas match='string' 参数不能识别表中的字符串,即使有一个包含 'string' 的表
- python-3.x - 异步事件循环可以在等待调用本身的协程之间切换吗?
- android - 将音频从麦克风无线发送到 Android 手机
- c++ - 功能不返回/程序退出
- macos - 在 OSX 上安装时,nix.conf 位于何处?