【发布时间】:2021-06-09 22:59:03
【问题描述】:
我正在探索更多有关 Hyperledger Fabric 的信息,并对私有数据产生了兴趣。据我了解,当对等节点创建私有数据时,它与该私有数据的哈希一起存储在该节点上。未经授权的节点只会存储私有数据的哈希值,以便验证其存在。
我正在使用 4 个节点(三个对等节点,一个已排序),其中 Org1(对等节点)具有独特的特权来创建必须对 Org2(对等节点)可见但不能对 Org3 可见的值(对等节点)。有没有办法做到这一点。这是一个 Typescript 链代码示例,取自 IBM Blockchain Platform vscode 扩展教程,用于创建私有数据。
@Transaction()
public async createMyPrivateAsset(ctx: Context, myPrivateAssetId: string): Promise<void> {
const exists: boolean = await this.myPrivateAssetExists(ctx, myPrivateAssetId);
if (exists) {
throw new Error(`The asset my private asset ${myPrivateAssetId} already exists`);
}
const privateAsset: MyPrivateAsset = new MyPrivateAsset();
const transientData: Map<string, Uint8Array> = ctx.stub.getTransient();
if (transientData.size === 0 || !transientData.has('privateValue')) {
throw new Error('The privateValue key was not specified in transient data. Please try again.');
}
privateAsset.privateValue = transientData.get('privateValue').toString();
const collectionName: string = await getCollectionName(ctx);
await ctx.stub.putPrivateData(collectionName, myPrivateAssetId, Buffer.from(JSON.stringify(privateAsset)));
}
我需要在这里改变一些东西吗?
提前致谢!
【问题讨论】:
标签: hyperledger-fabric hyperledger-chaincode