数据覆盖范围
Arcscan 分别索引 Arc 主网和 Arc 测试网,两个索引都没有覆盖全部内容——本页说明存在哪些区块区间、每条链具备哪些能力,以及当你索取它们之外的内容时会看到什么。
每条链索引了什么#
覆盖情况是按彼此独立的数据流跟踪的。chain 是区块、交易和收据;balances 是代币余额与原生余额,以及由它们构建的持有者列表;traces 是按整段区块区间扫描并存储的执行追踪。一条数据流可能落后于其他数据流,而其中一条在两条链上都是空的。
下面两张表中的每个数字都是在 2026-08-10 从 /v1/chain 读取的。要看今天的数值,请读节点状态,它实时发布同样的字段。
主网(链 5042)#
| 数据流 | 起始区块 | 截止区块 | 区间数 | 是否连续 |
|---|---|---|---|---|
| balances | 0 | 14,852,047 | 1 | 是,自区块 0 起 |
| chain | 0 | 14,852,093 | 1 | 是,自区块 0 起 |
| traces | 无 | 无 | 0 | 未索引任何区块 |
主网自创世区块起连续:每条有数据的数据流都是一个不间断的区间,因此没有需要声明的空洞。读取的那一刻,链头是区块 14,852,081,而 chain 数据流停在 14,852,093。
测试网(链 5042002)#
| 数据流 | 起始区块 | 截止区块 | 区间数 | 是否连续 |
|---|---|---|---|---|
| balances | 53,500,000 | 56,246,685 | 1 | 是,自区块 53,500,000 起 |
| chain | 53,500,000 | 56,246,687 | 1 | 是,自区块 53,500,000 起 |
| traces | 无 | 无 | 0 | 未索引任何区块 |
测试网同样是连续的,但它并不从创世区块开始——见下一节。读取时它持有 2,746,688 个 chain 区块和 2,746,686 个 balances 区块。
trace 能力可用;traces 数据流是空的
两条链都把trace 能力报告为 true,而在两条链上 traces 数据流都只持有 0 个区块、0 个区间。这两件事回答的是两个不同的问题。对于你指名的某一笔交易,两条链上的内部交易都是可获得的;而跨一段区块区间按 trace 查询则不可行,因为没有任何已索引的区间可供查询。等这一点改变时,这里也会随之改变——我们不会去猜一个日期。测试网历史从 53,500,000 开始#
Arcscan 的测试网索引从区块 53,500,000 开始,而不是从这条链的第一个区块开始。低于该点的 53,500,000 个区块在这里从未被索引,因此没有任何 Arcscan 页面、API 路由或搜索能够回答关于它们的问题:一个只存在于那下面的测试网区块、交易或转移,在本站是找不到的。
区块 53,500,000 以下的空结果是我们的缺口,不是链的
/v1/chain 自己就在客户端本应展示给读者的那个字段里这样说:「低于该点的 53,500,000 个区块在这里完全没有被索引,因此 Arcscan 的任何界面都无法回答关于它们的问题:该区间的空结果是 Arcscan 缺失的历史,而不是链缺失的。」因此测试网的覆盖被报告为不完整——这是刻意为之,而且只要这条下限还在原处,它就会一直如此。主网没有这样的下限。它的 chain 和 balances 两条数据流都从区块 0 开始,主网覆盖被报告为完整。
各链的能力#
这些是 /v1/chain 为每个部署发布的标志位。9 项中有 4 项在两条链之间不同,因此你在testnet.arc-scan.io在新标签页中打开上找到的某个功能,并不能证明它在主网上也存在,反过来也一样。
| 能力 | 主网 5042 | 测试网 5042002 |
|---|---|---|
| tx_index | 是 | 是 |
| holder_index | 是 | 是 |
| internal_transactions | 是 | 是 |
| trace | 是 | 是 |
| ots_search | 否 | 否 |
| archive | 是 | 否——无法读取过去某个区块上的状态 |
| debug | 否 | 是 |
| ots | 否 | 是 |
| verified_source | 否——今天在这条链上不可能做到 | 是,仅限已缓存的部分 |
这种不对称在两个方向上都不是疏忽:主网具备归档深度,测试网具备 debug 和 Otterscan 端点——但不包括它们的搜索功能,那在两条链上都是关闭的。凡是某项能力关闭的地方,依赖它的那些界面是不存在的,而不是空的。
合约源码#
这是最让人意外的一行,所以值得原文引用。主网上 verified_source 为 false,而原因在我们的上游:
引自 /v1/chain,链 5042
「Sourcify 未收录链 5042,因此今天这条链上没有任何合约能够被验证——无论通过 Arcscan 还是通过 Sourcify 的任何其他客户端。这里没有什么在等 Arcscan;它在等这条链被上游收录。」所以本文档不会告诉你如何验证一个主网合约:无论在这里还是在任何地方,都没有办法做到。在测试网上,Sourcify 确实收录了 5042002,已验证源码可以被发布——但 Arcscan 持有的是一份缓存,在有人第一次索取某个合约时才被填充。Arcscan 拥有源码的测试网合约数量是一个缓存规模,远小于已被验证的合约数量。
缺失,绝不是零#
一个区块浏览器唯一的产品就是被人相信,因此这里有一条规则的优先级高于完整性:无法取得的数值会被省去,绝不会用零填上。零是一次测量结果。留白,或者一句说明缺了什么的话,才是事实。
在实践中:
- 区块体已无法取回的区块显示为未知,而不是零——绝不会写成「0 笔交易」,因为那是在陈述关于该区块的事,而不是关于我们的事。
- 已回滚的交易绝不会被渲染成成功的交易,无论一份残缺的收据可能暗示什么。
- 凡是依赖某条链并不具备的能力、或依赖尚未抵达你所问区块的数据流的数字,都会连同原因一起被省略,而不会被显示成「什么都没发生」。
前两条背后有回归测试。如果你在本站看到某个数值像是占位符,请把它当作值得上报的缺陷,而不是当作数据。
这些数字会变#
上面每个数字都是在 2026-08-10 读取的,而各个上界立刻就过时了:写这一页的过程中,主网的 chain 数据流在相隔约 4 分钟的两次取数之间前进了 59 个区块。这就是 506 ms 的出块时间对一个写进文档的数字所做的事。
不会变的是它的形状——两条下限(主网 0,测试网 53,500,000)、每条有数据的数据流都是单个连续区间这一事实,以及能力矩阵。要看当前的上界,请读节点状态,或者自己取一次:
# the two documents every figure on this page was read from curl -s https://api.arc-scan.io/v1/chain # chain 5042 curl -s https://api-testnet.arc-scan.io/v1/chain # chain 5042002
如果本页上的某个数字与 /v1/chain 不一致,那么 API 是对的,本页已经过时。