我最近尝试使用其私有数据收集将数据保存在超级账本结构网络中。一切正常,除非我注意到潜在的漏洞。
我在Node.js中做了一个块嗅探器,它将作为我频道中的合法对等者之一运行。数据块嗅探器将附加一个数据块事件侦听器,并显示提交到分类帐的每个数据块的内容。
经检查,我想存储在私有数据集中的数据在读写集中被屏蔽(按预期),但据我所知,任何链码函数的参数仍然是公开可见的,据我所知我们只能通过链码将数据存储在私有数据集合中。
这是否意味着我们要存储在私有数据集合中的数据实际上不是私有的,因为每个人都可以将其视为传递给链码的参数?还是我错过了什么?
答案 0 :(得分:0)
私人输入应以transient
的形式传递。
https://hyperledger-fabric.readthedocs.io/en/release-1.4/private-data/private-data.html
请参见https://hyperledger-fabric.readthedocs.io/en/release-1.4/private_data_tutorial.html#store-private-data中的示例,其中要调用的参数包括在--transient "{\"marble\":\"$MARBLE\"}"
的末尾。