
先弄清“码”指什么
“区块链码查询”通常泛指使用某种链上标识查找记录,并不是一种统一接口。交易标识对应交易,区块哈希对应区块,账户地址对应账户相关信息。三者查询对象不同,不能混用。本文讨论比特币和以太坊的相关机制,不涵盖商品溯源码等其他业务编码。
为什么输入后查不到
首先要明确查询对象所属的链与网络。以太坊主网和测试网的数据需要分别查看;即使输入内容形式相似,也不能据此认定属于同一网络。查无结果时,应先核对标识是否完整、类型是否匹配,而不是直接判断记录不存在。

比特币参考文档说明,getrawtransaction 的查询范围取决于节点条件:不指定区块哈希时,可查询内存池中的交易;查询已入块交易通常需要启用交易索引。指定区块哈希时,则要求节点具有该区块,且交易确实位于其中。因此,接口未找到交易,不等于交易从未发生。

为什么返回一长串字符
在所述比特币接口中,verbose 为 false 或省略时,返回十六进制编码的序列化交易数据;为 true 时,返回包含交易信息的对象。字符难以直接阅读,可能只是返回格式不同,并非数据损坏。
解读字段还要注意名称差异:见证交易的 hash 与 txid 可能不同。若查询参数要求 txid,就应核对所用标识,而不能把两个字段当成始终相同的值。接口具体字段应以所用软件版本为准。
查到记录是否代表成功
以太坊区块浏览器可展示交易状态、所属区块、发送方、接收方或交互合约,以及代币转移等信息。待处理、失败与成功表示不同状态,不能仅凭搜索结果中出现一条记录就判断执行成功。
所属区块回答交易被收录在哪里,执行状态回答执行结果如何,两者不是同一个问题。核对结果时,应把交易标识、网络、状态及相关地址放在一起理解,避免只截取单个字段得出结论。
为什么金额和预期不同
以太坊交易详情中的 ETH 数值与代币转移列表表达不同内容;接收方字段也可能指向交互合约。因此,一个金额字段并不必然概括整笔交易的资产变化。
查询的关键是先确定需要验证的事实:是某笔交易是否存在、执行是否成功,还是某种代币是否发生转移。随后查看对应字段,才能减少把账户信息、交易信息和合约交互混为一谈的问题。