Javascript putState()和putPrivateData()可以在同一链码中使用吗?

Javascript putState()和putPrivateData()可以在同一链码中使用吗?,javascript,hyperledger-fabric,hyperledger,hyperledger-chaincode,ibm-blockchain,Javascript,Hyperledger Fabric,Hyperledger,Hyperledger Chaincode,Ibm Blockchain,我知道在交易中使用putState()会被记录在分类账中,其中作为putPrivateData()会导致在分类账上存储哈希。如果在一个事务中同时使用这两个选项,会发生什么情况?私人数据是否可以在公共分类账上查看? 示例代码: async SignContract(ctx, collectionName) { await ctx.stub.putState(key, value); await ctx.stub.putPrivateData(collectionName, key, pr

我知道在交易中使用putState()会被记录在分类账中,其中作为putPrivateData()会导致在分类账上存储哈希。如果在一个事务中同时使用这两个选项,会发生什么情况?私人数据是否可以在公共分类账上查看? 示例代码:

async SignContract(ctx, collectionName) {

  await ctx.stub.putState(key, value);
  await ctx.stub.putPrivateData(collectionName, key, privateValue);
}

写入公共分类账的状态将是公共的,而写入私人数据收集的状态将是可以查看该私人数据收集的组织的私人状态。您可以在单个事务中读取和写入多个集合中的多个键,并且该数据的可见性仍然由存储数据的集合的可见性决定

Fabric示例中的这个示例演示了在单个事务功能中写入公共数据、私有数据和基于状态的背书策略的组合: