Hyperledger Fabric 1.4 私有数据收集

Rah*_*alu 5 blockchain hyperledger hyperledger-fabric hyperledger-chaincode

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

我们有一个要求,我们需要使用私有数据集合,但应在 30 天后(自动/手动)删除数据。有没有可能达到同样的目标?

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

arn*_*cee 0

首先,你放在区块链上的所有内容都是永久性的,并且应该是去中心化的。因此,单方面控制何时删除私有数据违背了去中心化的优点,你应该避免它(第 2 点的答案)。背书者背书每一个变更或交易。(包括BlockToLive),因此偏离约定的期限是没有意义的。

\n

其次,分布式系统中的时间是主观的,不可能有一个全局时钟 \xe2\x8f\xb0 (比如一个节点的 30 天可能是另一个节点的 29.99 天,或者另一个节点的 29.80 天)。因此,时间是以块来衡量的,这对所有节点来说都是客观的。所以,建议您使用BlockToLive。首先可能会很困难,但你可以向后计算。\n假设你有BlockSize10(一个区块中的交易数量)并预计每天大约有 100 笔交易,那么你可以设置BlockToLive= 300。(当然,这是一个大概的数字)数字)。

\n

最后,如果你仍然想随意删除私有数据,我会推荐手动链下存储机制。

\n