【问题标题】:Where we are storing transaction logs in Hyperledger Fabric?我们在 Hyperledger Fabric 中将事务日志存储在哪里?
【发布时间】:2018-12-03 08:20:13
【问题描述】:

一般来说,Ledger 分为两部分进入 Hyperledger Fabric

1) 事务日志

2) 世界状态

我知道我们可以将世界状态存储到 LevelDB 或 CouchDB 中,这是可配置的。

但是;我对事务日志有点困惑。将事务日志存储到 LevelDB 或 Files 中的 hyperledger fabric 在哪里?

【问题讨论】:

    标签: hyperledger-fabric


    【解决方案1】:

    在 Hyperledger Fabric 等区块链中,区块链本身就是交易日志。在 Fabric 中,区块链存储在 CORE_PEER_FILESYSTEMPATH/ledgersData/chains 目录中。查找一系列名为 blockfile_XXXXXXX 的文件。

    默认情况下,CORE_PEER_FILESYSTEMPATH 设置为 /var/hyperledger/production。

    【讨论】:

      【解决方案2】:

      本地系统上的路径是 var/lib/docker/volumes/net_peer0.org2.example.com/_data/ledgersData/chains/chains//blockfile_XXXXXX

      docker 容器内的路径是 /var/hyperledger/production/ledgersData/chains/chains/mychannel//blockfile_XXXXXX

      这是默认配置在 fabric-samples/test-network/docker/docker-compose-test-net.yaml

      【讨论】:

        【解决方案3】:

        区块链本身存储(使用 LevelDB)在 peer.fileSystemPath 配置值定义的目录的子文件夹中。使用标准设置,fileSystemPath 值存储在/etc/hyperledger/fabric/core.yaml 中,默认值为/var/hyperledger/production。这导致区块链的位置为/var/hyperledger/production/ledgersData/chains

        【讨论】:

        • 谢谢你,保罗。是的,事务日志存储在每个对等方上,我想知道它是如何存储的。是文件形式还是 LevelDB 形式?
        • 看源码,是用LevelDB的。
        • 这个不对,transientStore是私有数据提交前的临时存储,不保存事务日志。
        • 感谢@DaveEnyeart 的评论。我已经更正了答案中的位置。不知道我从哪里知道它正在使用transientStore!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-04
        • 2012-06-14
        相关资源
        最近更新 更多