首页 > 解决方案 > 交易是否作为加密数据提交给 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)的必要详细信息。

问题是,当我们将交易发送到超级账本结构(结构对等)进行处理时,它们是否以加密形式发送并由卡签名?还是它们只是以纯文本格式发送?

标签: hyperledger-fabrichyperledgerhyperledger-composer

解决方案


Fabric 交易未加密;他们当然是签名的。所有 SDK 都使用与客户端身份关联的私钥(包括 Composer 使用的身份证)对消息进行签名。

加密交易中的数据留给用户。请注意,如果您确实加密了数据,那么每个将认可链码/智能合约的对等方都必须有权访问加密/解密密钥。也可以通过事务消息中的瞬态数据字段传递它。您需要直接通过 SDK 执行此操作,因为这不是 Composer 客户端内置的。


推荐阅读