Hyperledger Fabric 在私有(private)集合的帮助下提供了存储链下数据的内置支持。为此,我们需要指定包含各种集合名称的集合配置以及有权访问这些集合中存在的数据的参与者。
有一个名为“ BlockToLive ”的设置,我们可以使用它指定对等方应该存储多少 block 他们有权访问的私有(private)数据。在账本区 block 高度达到上述阈值后,节点会自动清除私有(private)数据。
我们有一个要求,我们需要使用私有(private)数据集合,但数据应在 30 天后(自动/手动)删除。有没有可能实现同样的目标?
最佳答案
首先,你放在区 block 链上的所有东西都是永久性的,应该是去中心化的。因此,单方面控制何时删除私有(private)数据违背了权力下放的优点,你应该避免它(回答第 2 点)。背书人为每一项变更或交易背书。 (包括 BlockToLive),因此偏离约定的期限是没有意义的。
其次,分布式系统中的时间是主观的,不可能有一个全局时钟⏰(比如说一个节点的 30 天可以是另一个节点的 29.99 天或另一个节点的 29.80 天)。因此,时间以 block 为单位测量,这对所有节点都是客观的。所以,建议您使用BlockToLive
.首先可能很困难,但您可以向后计算。
假设你有 BlockSize
为 10(一个区 block 中的交易数量)并预计每天大约 100 笔交易,那么您可以设置 BlockToLive
= 300。(当然,这是一个大概的数字)。
最后,如果你还想随意删除私有(private)数据,我会推荐手动的链下存储机制。
关于hyperledger-fabric - Hyperledger Fabric 1.4 私有(private)数据收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59468757/