Hyperledger fabric Hyperledger Fabric 1.4专用数据收集

Hyperledger fabric Hyperledger Fabric 1.4专用数据收集,hyperledger-fabric,blockchain,hyperledger,hyperledger-chaincode,Hyperledger Fabric,Blockchain,Hyperledger,Hyperledger Chaincode,Hyperledger fabric在私有集合的帮助下提供了存储链外数据的内置支持。为此,我们需要指定集合配置,其中包含各种集合名称以及可以访问这些集合中存在的数据的参与者。 有一个名为“BlockToLive”的设置,我们可以使用该设置指定对等方应该存储多少块他们有权访问的私有数据。对等方将在分类账栏高度达到所述阈值后自动清除私有数据 我们有一个要求,即我们需要使用私有数据收集,但数据应在30天后(自动/手动)删除。是否有可能实现同样的目标 timeToLive:是否有用于指定timeToLi

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

我们有一个要求,即我们需要使用私有数据收集,但数据应在30天后(自动/手动)删除。是否有可能实现同样的目标

  • timeToLive:是否有用于指定timeToLive或类似配置的实现?使用此选项,对等方将在所述持续时间后自动清除数据
  • 如果当前没有自动方式,如何手动删除私人收集中的数据?是否有任何方法可以使用外部脚本/代码直接删除私人集合中的数据?我们不希望创建用于作为事务调用以删除私有数据的链码方法,因为即使是私有数据的删除也需要背书并发送给订购方,并且需要添加到分类账中。如何直接删除私有数据

  • 首先,你放在区块链上的所有东西都是永久性的,应该是分散的。因此,单方面控制何时删除私有数据违背了分散化的优点,您应该避免(回答第2点)。背书人背书每一项变更或交易。(包括BlockToLive),因此偏离约定期限是没有意义的

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


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

    有没有解决此问题的建议?