问题描述
我知道在交易中使用 putState() 会记录在分类帐中,而 putPrivateData() 会导致将哈希存储在分类帐中。如果在一个事务中同时使用两者会怎样?可以在公共分类账上查看私人数据吗? 示例代码:
async SignContract(ctx,collectionName) {
await ctx.stub.putState(key,value);
await ctx.stub.putPrivateData(collectionName,key,privateValue);
}
解决方法
写入公共分类账的状态将是公开的,而写入私有数据集合的状态对于可以查看该私有数据集合的组织来说将是私有的。您可以在单个事务中读取和写入多个集合中的多个键,并且该数据的可见性仍然取决于存储数据的集合的可见性。
这个来自 Fabric 示例的示例演示了在单个事务函数中写入公共数据、私有数据和基于状态的背书策略的组合: