# FluxRPC 查不到交易：区分 Solana 近期缓存、历史范围与执行失败

整理：链小知（AI 辅助）
资料核对日期：2026-10-12
引用地址：https://lianxiaozhi.com/tools/guides/fluxrpc-history-null-and-status
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

按既有请求核对 signature、网络、commitment 和历史范围，把 null、RPC error 与交易 meta.err 分开。

## 使用工具
- [FluxRPC](https://lianxiaozhi.com/tools/fluxrpc) · [官方入口](https://fluxrpc.com/)

## 前置条件
- 准备公开交易 signature、期望的网络/时间、已有脱敏请求与原响应；key 已遮盖。
- 没有真实记录时只整理字段和待补项，文档示例不是实际交易查询；不创建账户或调用付费接口。

## 1. 先锁定网络和数据时段

核对已用主机：Solana 示例为 eu.fluxrpc.com，Fogo 示例为 eu.fogo.fluxrpc.com。key 参数和 Authorization 原值均须遮盖。当前说明把 Solana 限于近期数据，Fogo Mainnet 则有历史支持；记录交易所在网络和大致时间，不将同样的 base58 字符串或厂商多链能力当作历史查询承诺。

核对结果：网络、方法、时间和认证位置明确，Fogo 历史能力未被套用到 Solana。
依据：[FluxRPC：认证与历史范围](https://fluxrpc.com/docs/getting-started)
依据：[FluxRPC：方法与历史边界](https://fluxrpc.com/docs/rpc)

## 2. 复核 getTransaction 请求和版本配置

params 首项是交易 signature，不是账户公钥；配置对象保存 commitment、encoding 与 maxSupportedTransactionVersion 原值。Flux 示例填版本 1，Solana 官方示例填 0：它们是客户端愿意解析的最高版本配置，不能不看解析器能力就照抄。请求 ID 与返回 ID 要匹配，HTTP/JSON-RPC error 不得替换成 result=null。

核对结果：signature、配置、ID 和错误正文齐全，版本值与实际解析器能力一致。
依据：[FluxRPC：getTransaction](https://fluxrpc.com/docs/rpc/getTransaction)
依据：[Solana：交易与 null 语义](https://solana.com/docs/rpc/http/gettransaction)
依据：[JSON-RPC 2.0：请求与错误](https://www.jsonrpc.org/specification)

## 3. 分开缓存错误和 null 的多种原因

Flux 的 Solana 专节明确：未命中返回 error.code=-32017、缓存不可用的 message，以及 error.data.oldestSlot。保留这三个字段和读取时间，不能把该错误填成 result=null；oldestSlot 也不是区块高度。Fogo Mainnet 专节才明确未找到返回 null。通用 Solana 方法的 null 还可表示未找到或未达到所请求的 commitment；非 null 结果再分别看 slot、blockTime、meta 与 meta.err，meta/blockTime 缺失保持未知。单次缓存未命中或 null 都不能直接证明全网交易不存在、未广播或执行失败。

核对结果：-32017/message/oldestSlot、null、确认条件不足和已观察执行错误分别记录。
依据：[Solana：交易与 null 语义](https://solana.com/docs/rpc/http/gettransaction)
依据：[FluxRPC：getTransaction](https://fluxrpc.com/docs/rpc/getTransaction)
依据：[FluxRPC：认证与历史范围](https://fluxrpc.com/docs/getting-started)

## 4. 按输入顺序核对状态缓存

查看已有 getSignatureStatuses 记录，signatures 最多 256 项，config 中 searchTransactionHistory 是否明确设置。未开启历史搜索时，官方说明仅查询近期状态缓存；开启也不保证提供方持有全部历史。逐个按输入索引读 result.value，并保存 result.context.slot；页面参数表概括为数组不能覆盖实际 context/value 结构。confirmationStatus、err 与 confirmations 分开，finalized 情形 confirmations=null 不等于执行失败。

核对结果：每个 signature 与对应 value 原样对齐，缓存与历史搜索设置可追溯。
依据：[FluxRPC：getSignatureStatuses](https://fluxrpc.com/docs/rpc/getSignatureStatuses)
依据：[Solana：状态缓存与输入顺序](https://solana.com/docs/rpc/http/getsignaturestatuses)

## 5. 用最早可查 slot 整理后续清单

若已有 getFirstAvailableBlock 记录，保存返回的最早可用 slot 及读取时间。Flux 说明 Solana/Fogo Testnet 返回缓存最早 slot，Fogo Mainnet 使用其历史数据；slot 不是区块高度，早于该边界只能表明本服务当时缺相应范围。输出成功结果、null、错误与未获范围记录的清单；另一个已授权历史服务的后续对照也需要自己的证据，不能把换 URL 写成已经找回交易。

核对结果：结论限定为本网络、本端点和本次记录，没有推断全网不存在。
依据：[FluxRPC：getFirstAvailableBlock](https://fluxrpc.com/docs/rpc/getFirstAvailableBlock)
依据：[FluxRPC：方法与历史边界](https://fluxrpc.com/docs/rpc)
依据：[Solana：交易与 null 语义](https://solana.com/docs/rpc/http/gettransaction)

## 常见错误
- 请求错误、result=null、meta=null 和 meta.err 非 null 是不同状态。
- 开启 searchTransactionHistory 不会替服务生成缺失历史。
- 文档示例不是当前链上交易或账户权限的实测。

## 完成检查
- 形成 signature 与网络/时间/commitment/响应的对应表，并指出仍缺哪些历史或状态证据。
- 本教程为官方文档核验，未使用 key 查询真实交易。

## 相关知识
- [区块确认与最终性是什么？交易成功和充值到账为何不同步](https://lianxiaozhi.com/learn/confirmations-and-finality)

## 官方依据
- [FluxRPC：认证与历史范围](https://fluxrpc.com/docs/getting-started)
- [FluxRPC：方法与历史边界](https://fluxrpc.com/docs/rpc)
- [FluxRPC：getTransaction](https://fluxrpc.com/docs/rpc/getTransaction)
- [FluxRPC：getSignatureStatuses](https://fluxrpc.com/docs/rpc/getSignatureStatuses)
- [FluxRPC：getFirstAvailableBlock](https://fluxrpc.com/docs/rpc/getFirstAvailableBlock)
- [Solana：交易与 null 语义](https://solana.com/docs/rpc/http/gettransaction)
- [Solana：状态缓存与输入顺序](https://solana.com/docs/rpc/http/getsignaturestatuses)
- [JSON-RPC 2.0：请求与错误](https://www.jsonrpc.org/specification)
