javascript - putState() 和 putPrivateData() 可以在同一个链代码中使用吗?

标签 javascript hyperledger-fabric hyperledger hyperledger-chaincode ibm-blockchain

我知道在交易中使用 putState() 会记录在分类帐中,而 putPrivateData() 会导致哈希存储在分类帐中。如果两者都用于一次交易会怎样?私有(private)数据是否可以在公共(public)分类账上查看? 示例代码:

async SignContract(ctx, collectionName) {

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

最佳答案

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

Fabric 示例中的这个示例演示了在单个事务函数中编写公共(public)数据、私有(private)数据和基于状态的背书策略的组合:

https://github.com/hyperledger/fabric-samples/blob/6875049c8de49dec3335363aabc0e2920cd81235/asset-transfer-secured-agreement/chaincode-go/asset_transfer.go#L46

关于javascript - putState() 和 putPrivateData() 可以在同一个链代码中使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65961204/

相关文章:

javascript - 如何制作jquery插件?

javascript - jquery中选择并触发单选按钮的点击事件

java - 向对等方发送 Hyperledger Fabric 的链码实例化请求时出现 OCI 运行时错误

rest - 如何从 chrome postman 运行 hyperledger Fabric REST api

javascript - 使用javascript从谷歌图片中获取随机图片

java - 在 Hyperledger Fabric V1.0 的本地开发环境中使用 REST API 支持

hyperledger-fabric - 修改后如何升级链码?

ssl - Fabric 操作安全的 TLS 和 clientAuthRequired

hyperledger - hyperledger fabric 是否被视为集中式区 block 链

javascript - 如何将 JS 文件合并为一个文件而不会出错