Skip to main content
建表时要选一个 Table Type,这是新用户遇到的第一个真正的决策点。选错不是致命的,但会让后面的写入逻辑变别扭,所以值得先想清楚。

决策表

四种类型详解

Block Event

只追加、不修改。一行数据一旦写入就是最终值,不会被同一行的后续写入覆盖。典型例子:代币转账明细、NFT 铸造记录。

Block State

随高度变化的状态。写入新值会更新”当前值”,同时平台自动保留历史高度的快照——你可以查任意历史高度当时的状态。典型例子:账户余额、合约配置。

Time

按固定时间桶(分钟级)组织的时序数据,写入时间会自动向后取整到整分钟。典型例子:价格、TVL 快照。

Normal

不带区块语义的普通表。没有高度、没有共识的概念,就是一张随便读写的表。典型例子:地址标签映射、规则配置。

Block Event 和 Block State 需要选链

建表时如果选择 Block Event 或 Block State,还需要指定 Chain——表要跟哪条链的区块高度对齐。保存后表名会自动加上链的后缀,比如 myspace.transfers.eth Normal 和 Time 类型不需要选链。

平台在背后帮你维护了什么

不管选哪种 Block 类型,平台都会自动为你的表维护几张辅助表,你平时不需要直接操作它们,但排查问题时会用到:
  • _height:记录处理进度——已经覆盖到哪些高度区间。这是判断”数据到底有没有写完”的权威来源。
  • _archive(仅 Block State):保留每个历史高度的快照,才能支持”查任意历史高度的状态”。
  • _write:批量写入(回填)任务的执行状态,一次回填成功没有、写了多少行都在这里查。

查看数据完整性、找出缺失高度

怎么用 _height 判断数据有没有洞