You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何读取本地Hyperledger Fabric网络的账本文件?

账本文件存储位置
  • 采用Docker部署的Hyperledger Fabric 2.2测试网络中,每个Peer节点的账本数据默认存储在对应容器的/var/hyperledger/production/ledgersData路径下:
    • chains子目录:存储各通道的原始区块文件
    • stateLeveldb子目录:存储世界状态数据(默认使用LevelDB作为状态数据库时生效)
    • ledgerProvider子目录:存储账本元数据
  • 若需要查看宿主机上的实际存储路径,可先查询Peer节点对应的Docker卷名(格式通常为docker_peer0.org1.example.com),再执行命令查看:
    docker volume inspect <对应Peer的卷名>
    
历史交易与区块查看方法

方法1:使用Peer CLI工具(官方原生支持)

  1. 首先进入目标Peer节点的容器
    docker exec -it peer0.org1.example.com bash
    
    按照fabcar示例默认配置启动的网络,容器内已经预置好了Peer CLI的所需环境变量,可直接执行后续命令。
  2. 拉取指定通道的区块文件
    示例为拉取mychannel通道的最新区块保存为本地文件:
    peer channel fetch newest mychannel.block -c mychannel
    
    也可将newest替换为指定区块号,拉取对应高度的区块。
  3. 解码区块文件为可读JSON格式
    使用configtxlator工具解码二进制区块文件:
    configtxlator proto_decode --input mychannel.block --type common.Block --output mychannel_block.json
    
    生成的JSON文件中,header字段包含区块号、前序区块哈希等元数据,data.data字段存储当前区块包含的所有交易明细。
  4. 查看单资产的历史变更记录
    fabcar示例链码已经默认实现了GetHistoryForKey接口,可直接通过链码查询指定资产的所有历史交易:
    peer chaincode query -C mychannel -n fabcar -c '{"Args":["GetHistoryForKey", "CAR0"]}'
    
    命令中的CAR0可替换为你要查询的资产键名。

内容的提问来源于stack exchange,提问作者Tenno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:45:02