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

IBM Blockchain Marbles Demo交易存储位置及交易详情查询咨询

关于IBM Blockchain Marbles演示的交易存储与查看方法

我来帮你梳理下Marbles演示里交易存储和查看的关键点,毕竟我之前也折腾过这个Fabric演示项目:

一、交易到底存在哪儿?

Hyperledger Fabric网络里的所有交易(包括Marbles的创建、转移这些操作),核心存储在Peer节点的账本里,账本分成两个部分:

  • 世界状态(World State):用键值对存着所有Marbles资产的最新状态,默认用LevelDB存储,Linux环境下的路径一般是/var/hyperledger/production/ledgersData/stateLeveldb。
  • 交易日志(Transaction Log):记录每一笔交易的完整历史——比如谁发起的、操作了哪个Marble、时间戳、交易ID这些细节,存储路径是/var/hyperledger/production/ledgersData/chains。

至于你提到的Marbles客户端,它们本身不会存储完整的交易详情,只是通过SDK和Peer节点交互,获取最新状态或者提交交易,客户端本地只有一些配置文件和临时缓存,没有独立的交易数据库。

二、怎么查看交易详情?

给你几个实用的方法:

1. 用Peer节点的CLI命令直接查

在Peer节点所在的Linux机器上,用Fabric的CLI工具就能查:

  • 查询单条交易的完整信息:
    先得拿到交易ID(可以从Marbles客户端的浏览器控制台、客户端日志里找到),然后执行:
    peer channel queryTx -t <你的交易ID> -c <你的通道名称>
    
  • 查询某个Marble的所有交易历史:
    Marbles的链码已经内置了查询历史的方法,直接调用就行:
    peer chaincode query -C <你的通道名称> -n marbles -c '{"Args":["readMarbleHistory","<要查的Marble名字>"]}'
    
    执行后就能看到这个Marble从创建到每一次转移的完整记录。

2. 从Marbles客户端的日志/控制台看

在客户端的浏览器里按F12打开开发者工具,Console面板里每次执行交易后都会输出交易ID和部分响应信息;如果是虚拟机上部署的Node.js客户端服务,项目目录里的logs文件夹会有客户端的运行日志,里面也能找到交易的发起和响应详情——不过这个只能看近期的记录,不是完整的历史账本。

3. 配置CouchDB(可选,更直观)

如果你的Peer节点配置了CouchDB(默认是LevelDB,不支持复杂查询),可以直接通过CouchDB的Web界面访问,能可视化查询所有资产的状态和关联交易。Marbles的链码会把资产数据存在CouchDB的对应数据库里,你还能用类SQL的语句筛选交易信息。

三、额外提醒

Marbles作为Fabric的演示项目,完全遵循Fabric的账本机制,所有交易的权威来源只有Peer节点的账本,客户端只是负责展示的前端,不存核心交易数据。如果需要批量导出交易记录,你可以写个简单的脚本调用Fabric的SDK接口,从Peer节点批量查询后导出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:49:19