hyperledger-fabric - 交易是否作为加密数据提交给 Hyperledger Fabric?
问题描述
我想知道开箱即用的 Hyperledger Composer SDK(Node JS)是否对交易数据提供任何加密。假设如果我通过以下作曲家终端命令将以下事务写入 Hyperledger Fabric,
composer transaction submit -c admin@tutorial-network -d '{"$class":"net.biz.digitalPropertyNetwork.RegisterPropertyForSale","transactionId":"TRANSACTION_001","seller":"mae@biznet.org","title":"TITLE_001"}'
或通过 hyperledger composer SDK 提交事务,如下面的代码片段(摘自:https ://hyperledger.github.io/composer/v0.19/reference/composer.transaction.submit.html )
const TransactionSubmit = require('composer-cli').Transaction.Submit;
let options = {
card: 'admin@tutorial-network',
data: '{"$class":"net.biz.digitalPropertyNetwork.RegisterPropertyForSale","transactionId":"TRANSACTION_001","seller":"mae@biznet.org","title":"TITLE_001"}'
};
TransactionSubmit.handler(options);
我可以看到在上述两种情况下都提供了卡值(admin@tutorial-network)。而且我还可以理解,该卡也包含正确授权访问智能合约(在本例中为 RegisterPropertyForSale)的必要详细信息。
问题是,当我们将交易发送到超级账本结构(结构对等)进行处理时,它们是否以加密形式发送并由卡签名?还是它们只是以纯文本格式发送?
解决方案
Fabric 交易未加密;他们当然是签名的。所有 SDK 都使用与客户端身份关联的私钥(包括 Composer 使用的身份证)对消息进行签名。
加密交易中的数据留给用户。请注意,如果您确实加密了数据,那么每个将认可链码/智能合约的对等方都必须有权访问加密/解密密钥。也可以通过事务消息中的瞬态数据字段传递它。您需要直接通过 SDK 执行此操作,因为这不是 Composer 客户端内置的。
推荐阅读
- android - Android 11 上的 Android 通知 setFullScreenIntent 操作按钮不需要的边框
- python - 为什么我的 zip 返回的项目不能在 Python 中应用两次?
- r - 根据另一列的下一行的值创建具有值的列
- windows - 除了 AppData、文档之外,用户数据是否存储在其他任何地方
- websocket - 在 Micronaut 中使用 RxJava 进行 Websocket 请求路由
- android - 创建 MutableList 时这意味着什么?
- function - TypeError:行不是函数
- node.js - 优化redis的问题
- vue.js - 如何在 NuxtJS 应用程序中的页面加载时防止 Vuejs 转换
- excel - 使用 vlookup 函数时遇到相同的值