Hyperledger fabric 在调用Hyperledger Composer智能合约时如何传输对象?

Hyperledger fabric 在调用Hyperledger Composer智能合约时如何传输对象?,hyperledger-fabric,hyperledger,hyperledger-composer,Hyperledger Fabric,Hyperledger,Hyperledger Composer,我正在用Hyperledger composer开发一个POC。作为我模型的一部分,我有一个叫做合同的资产。其定义如下: asset Contract identified by contractId { o String contractId --> Customer customer --> Supplier supplier --> Commodity commodity o Double minDaily o Double maxDaily

我正在用Hyperledger composer开发一个POC。作为我模型的一部分,我有一个叫做合同的资产。其定义如下:

asset Contract identified by contractId {
  o String contractId
  --> Customer customer
  --> Supplier supplier
  --> Commodity commodity
  o Double minDaily
  o Double maxDaily
  o Double maxAnnual
}
async function nominate(tx) {

    let customer = tx.contract.customer;
    let supplier = tx.contract.supplier; 
    let minDaily = tx.contract.minDaily;
    let maxDaily = tx.contract.maxDaily;
    let maxAnnual = tx.contract.maxAnnual;
    let quantity = tx.quantity;
    // the rest of the code...
}
在我的链码中,我需要从这个合同资产中生成一些变量来检查一些条件。详情如下:

asset Contract identified by contractId {
  o String contractId
  --> Customer customer
  --> Supplier supplier
  --> Commodity commodity
  o Double minDaily
  o Double maxDaily
  o Double maxAnnual
}
async function nominate(tx) {

    let customer = tx.contract.customer;
    let supplier = tx.contract.supplier; 
    let minDaily = tx.contract.minDaily;
    let maxDaily = tx.contract.maxDaily;
    let maxAnnual = tx.contract.maxAnnual;
    let quantity = tx.quantity;
    // the rest of the code...
}
我的问题是,当调用一个事务时,合同资产(或一般来说任何其他资产)是否会遍历该事务本身,或者只是在该事务中引用该资产。正如我所说,这是一般性的。对于像customer这样的所有资产,它是否经过交易,或者是否存在对它的引用?这也是我在Hyperledger结构中关注的问题。作曲家只是一个工具。我也想知道织物中的机理是什么

我担心安全问题。如果合同资产通过交易,我担心黑客是否可以在应用程序的任何一层更改合同的参数,而所有这些参数必须是不可变的,并且只能根据条件进行检查

谢谢你的帮助。
谢谢。

不,只是一般的交易对象。传递了对资产的引用(而不是对象本身),因此它可以通过分类账上的id检索资产的世界状态-这是因为您的runtims智能合约已编码为在您的交易逻辑等中从世界状态查询该资产。有效地(在SC执行期间)指向URI表示中的相关资产实例(以及与之相关的所有方法,如检查类型或存在性等)。续…另请参阅。您对业务网络的输入将得到保护(在提交者和运行时业务网络之间)无论如何,该业务网络部署到多个对等方,在区块链网络的不同组织中。因此@PaulO'Mahony您的意思是网络上只发送对合同资产的引用,并且没有序列化,对吗?@PaulO'Mahony您还提到,业务网络的输入是安全的。这是因为使用TLS加密t吗在发送数据之前,是否先发送数据?1)正确2)是的,传输中的数据=TLS。即使您没有使用区块链发送trxn数据/输入,即主要用于提供安全通信、隐私和数据完整性。