跳转到主要内容

什么是索引器?

Geode 索引器是一个轻量级服务,扫描以太坊上的 Geode 协议事件并存储在持久数据库中。它是以下数据的唯一数据源
  • 已发行代币 — 每个通过 Geocurve 部署的代币
  • 批量结算 — 出清价格、匹配量和结算者费用
索引器替代了结算者的易失性内存代币注册表。代币在重启后持久保存,结算者机器人每 30 秒自动从索引器同步池列表。

架构

┌─────────────┐                       ┌──────────────────────┐
│  前端        │ ◄── GET /tokens ────► │                      │
│  (发射台)    │ ──► POST /tokens ───► │    Geode 索引器       │
└─────────────┘                       │    (Express + SQLite)  │
                                      │                      │
┌─────────────┐   每 5 秒轮询         │  ┌────────────────┐  │
│  以太坊      │ ◄────────────────────►│  │ SQLite (WAL)   │  │
│  (RPC)      │   TokenLaunched       │  │ • tokens       │  │
└─────────────┘   BatchSettled        │  │ • settlements  │  │
                                      │  │ • indexer_state │  │
┌─────────────┐                       │  └────────────────┘  │
│  结算者      │ ◄── GET /tokens ────► │                      │
│  机器人      │   (每 30 秒同步)       └──────────────────────┘
└─────────────┘

托管实例

Geode 运行一个公共索引器:
https://indexer.geode.ag

自托管

1

克隆并安装

git clone https://github.com/Geode-vAMM/geodex.git
cd geodex/indexer
npm install
2

配置

cp .env.example .env
至少设置:
  • FACTORY_ADDRESS — GeodeFactory 合约地址
  • HOOK_ADDRESS — GeodeHook 合约地址
  • RPC_URL — 您的以太坊 JSON-RPC 端点
3

启动

npm start
索引器将开始轮询事件并在端口 3004 上提供数据。

配置

变量必需默认值描述
RPC_URLhttps://ethereum-rpc.publicnode.com以太坊 JSON-RPC 端点
FACTORY_ADDRESS⚠️GeodeFactory 合约地址
HOOK_ADDRESS⚠️GeodeHook 合约地址
START_BLOCK当前开始索引的区块号
POLL_INTERVAL_MS5000扫描新区块的频率(毫秒)
PORT3004HTTP API 端口

API 参考

列出所有代币

GET /tokens

按地址获取代币

GET /tokens/:address

注册代币

POST /tokens
Content-Type: application/json

列出结算

GET /settlements?limit=50&poolId=0x...

统计信息

GET /stats

健康检查

GET /health

索引的事件

TokenLaunched

GeodeFactory 部署新 Geocurve 代币时发出。捕获名称、符号、部署者、储备和版税配置。

GeodeBatchSettled

GeodeHook 每次成功结算后发出。记录出清价格、匹配量、费用和结算者地址。

GeodeCurveSwap

每次直接联合曲线交换时发出。追踪输入/输出金额、费用和更新的 ETH 储备。

GeodeLaunched

来自 GeodeHook 的备份事件。确保即使 Factory 事件被遗漏,代币也能被捕获。

持久化

索引器使用 SQLite(WAL 模式)作为数据库。关键表:
内容
tokens所有已发行代币及其元数据
settlements每次批量结算及出清价格、费用、结算者
indexer_state追踪 last_indexed_block 用于重启后恢复

结算者集成

结算者机器人自动从索引器同步池列表。每 30 秒,结算者从索引器获取 GET /tokens 并注册任何新池。这意味着在 Geode 上发行的每个代币都自动可结算——无需手动池注册。