【问题标题】:Hyperledger Fabric, how to share private data with another peer node?Hyperledger Fabric,如何与另一个对等节点共享私有数据?
【发布时间】: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


    【解决方案1】:

    是的,私有数据非常适合这种情况。 有两种基本方法。

    1. 使用静态集合 - 创建一个以 Org1 和 Org2 作为成员的集合并将PrivateData 放入该集合。
    2. 使用隐式集合 - putPrivateData 到 Org1 隐式集合和 putPrivateData 到 Org2 隐式集合。

    使用后一种方法,您无需提前创建静态集合。如果 Org3 将来获得数据授权,它还允许您稍后与 Org3 隐式集合共享私有数据。

    请参阅private data documentationprivate data tutorial and sample 了解更多详情。

    请注意,使用这种方法 Org3 将知道 Org1 和 Org2 正在共享一些数据,但不会看到私有数据本身。如果您不希望 Org3 知道交易已发生,那么您将为 Org1 和 Org2 使用通道,而不是使用私有数据。

    【讨论】:

      猜你喜欢
      • 2017-03-24
      • 2018-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多