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

如何通过BOC(Bag of Cells)在TON区块链中查找交易

通过BOC哈希查找TON区块链交易的实现方案

1. 从BOC解析结果中提取哈希

你已经能通过Cell.fromBocBase64解析BOC,接下来要获取该根Cell的哈希——这就是交易/消息的唯一标识。用TON Java SDK的内置方法即可计算:

Cell cell = Cell.fromBocBase64("te6cckEBAwEA4QAC44gBZUPZ6qi8Dtmm1cot1P175lXUARlUVwlfMM19lkERK1oCUB3RqDxAFnPpeo191X/jiimn9Bwnq3zwcU/MMjHRNN5sC5tyymBV3SJ1rjyyscAjrDDFAIV/iE+WBySEPP9wCU1NGLsfcvVgAAACSAAYHAECAGhCAFlQ9nqqLwO2abVyi3U/XvmVdQBGVRXCV8wzX2WQRErWoAmJaAAAAAAAAAAAAAAAAAAAAGZCAFlQ9nqqLwO2abVyi3U/XvmVdQBGVRXCV8wzX2WQRErWnMS0AAAAAAAAAAAAAAAAAAADkk4U");
// 计算十六进制格式的Cell哈希
String transactionHash = cell.getHash().toHexString();

注意:TON的交易ID就是其根Cell的哈希,外部消息同理。如果你的BOC是内部消息,可能需要额外处理,但多数场景下直接用这个哈希即可查询。

2. 通过TON节点API查询交易

使用TON区块链节点的API接口,传入哈希值就能查到对应的交易数据。以下是Java中用OkHttp实现的示例:

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
        .url("https://your-ton-node-endpoint/getTransaction?hash=" + transactionHash)
        .build();

try (Response response = client.newCall(request).execute()) {
    if (response.isSuccessful()) {
        String txData = response.body().string();
        // 这里可以解析返回的交易JSON数据
        System.out.println("查询到的交易:" + txData);
    } else {
        System.err.println("查询失败,状态码:" + response.code());
    }
} catch (IOException e) {
    e.printStackTrace();
}

排查要点

如果查不到结果,先确认这几点:

  • 解析的BOC是否确实是交易/消息的根Cell(不是其他类型的Cell结构);
  • 哈希计算是否正确——可以把哈希复制到TON区块浏览器搜索,看是否存在对应的记录;
  • 所用节点是否同步到了该交易所在的区块高度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:02:09