【发布时间】:2018-12-03 08:20:13
【问题描述】:
一般来说,Ledger 分为两部分进入 Hyperledger Fabric
1) 事务日志
2) 世界状态
我知道我们可以将世界状态存储到 LevelDB 或 CouchDB 中,这是可配置的。
但是;我对事务日志有点困惑。将事务日志存储到 LevelDB 或 Files 中的 hyperledger fabric 在哪里?
【问题讨论】:
一般来说,Ledger 分为两部分进入 Hyperledger Fabric
1) 事务日志
2) 世界状态
我知道我们可以将世界状态存储到 LevelDB 或 CouchDB 中,这是可配置的。
但是;我对事务日志有点困惑。将事务日志存储到 LevelDB 或 Files 中的 hyperledger fabric 在哪里?
【问题讨论】:
在 Hyperledger Fabric 等区块链中,区块链本身就是交易日志。在 Fabric 中,区块链存储在 CORE_PEER_FILESYSTEMPATH/ledgersData/chains 目录中。查找一系列名为 blockfile_XXXXXXX 的文件。
默认情况下,CORE_PEER_FILESYSTEMPATH 设置为 /var/hyperledger/production。
【讨论】:
本地系统上的路径是 var/lib/docker/volumes/net_peer0.org2.example.com/_data/ledgersData/chains/chains/
docker 容器内的路径是 /var/hyperledger/production/ledgersData/chains/chains/mychannel/
这是默认配置在 fabric-samples/test-network/docker/docker-compose-test-net.yaml
【讨论】:
区块链本身存储(使用 LevelDB)在 peer.fileSystemPath 配置值定义的目录的子文件夹中。使用标准设置,fileSystemPath 值存储在/etc/hyperledger/fabric/core.yaml 中,默认值为/var/hyperledger/production。这导致区块链的位置为/var/hyperledger/production/ledgersData/chains。
【讨论】: