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



我理解在交易中使用putState()将被记录在分类账中,而putPrivateData()将导致散列存储在分类账中。如果在一个事务中使用两者会发生什么?私人数据是否可以在公共分类账上查看?示例代码:

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

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

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

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

最新更新