Hyperledger Fabric 1.4私有数据收集

时间:2019-12-24 12:19:23

标签: hyperledger-fabric blockchain hyperledger hyperledger-chaincode

Hyperledger架构提供了内置支持,可在私有集合的帮助下存储脱链数据。为此,我们需要指定集合配置,其中包含各种集合名称以及可以访问这些集合中存在的数据的参与者。 有一个名为“ BlockToLive ”的设置,通过该设置,我们可以指定对等方应存储多少块,对等方应存储他们有权访问的私有数据。在分类帐块高度达到上述阈值之后,对等方将自动清除私有数据。

我们有一个要求,我们需要使用私人数据收集,但是恰好30天后应该(自动/手动)删除数据。是否有可能实现相同目标?

  1. timeToLive :是否有用于指定 timeToLive 或类似配置的实现?使用此功能,对等方将在提到的持续时间后自动自动清除数据。
  2. 如果当前没有自动方法,如何手动删除私有集合中存在的数据?有什么方法可以使用外部脚本/代码直接删除私有集合中的数据?我们不想创建链码方法,这些方法将被用作交易来删除私有数据,因为即使私有数据的删除也需要被认可并发送给订购者,并且需要添加到分类账中。如何直接删除私人数据?

1 个答案:

答案 0 :(得分:0)

首先,您放置在区块链上的所有内容都是永久性的,应该去中心化。因此,对何时删除私有数据进行单方面控制不利于分散管理,您应该避免分散管理(第2点的答案)。背书人认可每项变更或交易。 (包括BlockToLive),因此偏离协议期限没有任何意义。

第二,分布式系统中的时间是主观的,不可能有全局时钟⏰(例如,一个节点的30天可以是另一个节点的29.99或另一个节点的29.80天)。因此,以块为单位测量时间,这是所有节点的目标。因此,建议您使用BlockToLive。首先可能很困难,但是您可以向后计算。 假设您将BlockSize设置为10(一个区块中的交易数量),并且希望每天大约有100笔交易,那么您可以将BlockToLive =300。(当然,这是一个标准数字)。

最后,如果您仍然想随意删除私人数据,我建议您使用手动脱链存储机制。