hyperledger-fabric - Hyperledger Fabric 1.4 私有(private)数据收集

标签 hyperledger-fabric blockchain hyperledger hyperledger-chaincode

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

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

  • 生存时间 : 有没有指定 的实现?生存时间 或类似的配置?使用它,同行将 自动在提到的持续时间后清除数据。
  • 如果目前没有自动方式,如何手动删除私有(private)收藏中的数据?有什么方法可以直接使用外部脚本/代码删除私有(private)集合中的数据?我们不想创建链码方法,这些方法将用于调用交易以删除私有(private)数据,因为即使删除私有(private)数据也需要背书并发送给订购者,并且需要添加到分类帐中。如何直接删除私有(private)数据?
  • 最佳答案

    首先,你放在区 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/

    相关文章:

    ibm-cloud - 如何将 Hyperledger 区 block 链部署到 IBM Bluemix

    docker - Composer Chaincode 容器生命周期

    hyperledger-fabric - hyperledger fabric first_network 示例创建 channel 得到 BAD_REQUEST

    hyperledger-fabric - Hyperledger 结构错误 : 14 UNAVAILABLE: TCP Write failed

    hyperledger-fabric - 限制用户仅访问 super 账本结构中的某些 channel

    java - Web3J 仲裁 RawTransaction

    blockchain - 以太坊 - 两个相同的交易,但实际使用的 Gas 不同 - 怎么会?

    raspberry-pi - Raspberry pi 3 上的 Hyperledger Fabric

    docker - 使用修改后的fabric-server-config初始化fabric ca

    hyperledger-fabric - super 账本的 fabcar.go 链码不接受更改和修改,始终运行以前的链码