2、The Graph 协议全景:什么是子图?Graph Node、Indexer、Curator、Delegator角色解析。
好,我们正式开始第二讲。上一章我们聊了为什么需要链上索引,这一章咱们直接进入 The Graph 的核心世界。
说实话,我第一次接触 The Graph 时,也被一堆角色名称搞晕了。什么 Indexer、Curator、Delegator…… 听着像是一群人在搞什么神秘组织。但等你真正理解了,你会发现这套设计其实非常巧妙。
2.1 子图到底是什么?
先说说子图(Subgraph)。
子图,说白了就是一个「数据映射方案」。你告诉 The Graph:「嘿,帮我监听以太坊上的某个合约,把 Transfer 事件拿出来,整理成表格,然后提供查询接口。」这个方案,就是子图。
我习惯把子图想象成一个「数据管道」:
- 输入端:区块链上的原始事件和状态
- 处理逻辑:你写的映射脚本(Mapping)
- 输出端:一个结构化的数据库,可以通过 GraphQL 查询
每个子图都有一个唯一的名称,比如 ensdomains/ens 就是 ENS 的子图。你部署了子图,别人就能通过 GraphQL 查询到 ENS 的域名注册、解析记录等数据。
核心要点:子图 = 数据源 + 事件处理 + 数据存储 + 查询接口。四者缺一不可。
2.2 Graph Node:整个网络的大脑
Graph Node 是 The Graph 的核心组件。你可以把它理解成一个「区块链数据处理器」。
它的工作流程是这样的:
- 连接到以太坊节点(或其他链的节点)
- 根据子图定义,监听特定合约的事件
- 每当事件触发,执行你写的映射脚本
- 把处理后的数据存入本地数据库(通常是 PostgreSQL)
- 提供 GraphQL 端点,让用户查询数据
我在项目中遇到过一个问题:Graph Node 同步速度太慢。后来发现是因为以太坊节点响应慢,加上映射脚本里有个循环处理太耗时。嗯,这里要注意,Graph Node 的性能瓶颈往往不在它自身,而在上游的链节点和你的脚本效率。
小技巧:如果你自己跑 Graph Node,建议用专用的以太坊节点,别用公共节点。公共节点有速率限制,同步大子图时会很痛苦。
2.3 Indexer:数据的矿工
Indexer 是 The Graph 网络里的「数据矿工」。他们运行 Graph Node,质押 GRT 代币,然后为用户提供子图查询服务。
你想想看,为什么需要 Indexer?因为不是每个人都愿意自己跑节点。Indexer 帮你跑,然后收点查询费。这跟 AWS 提供云服务是一个道理。
Indexer 的收入来源有两个:
- 查询费:用户每次查询支付少量费用
- 通胀奖励:网络会增发 GRT 奖励给活跃的 Indexer
但 Indexer 也有风险。如果 Indexer 提供的数据有误,或者服务不稳定,会被网络惩罚(Slash)。我曾经见过一个 Indexer 因为节点配置错误,导致查询结果不完整,被罚了不少 GRT。
避坑指南:如果你想当 Indexer,一定要做好监控和备份。我曾经因为硬盘满了导致 Graph Node 崩溃,数据丢失了一部分,恢复起来非常麻烦。
2.4 Curator:数据的筛选者
Curator 的角色很有意思。他们不直接提供查询服务,而是负责「信号」—— 也就是告诉 Indexer 哪些子图值得索引。
Curator 通过质押 GRT 到某个子图的「信号合约」来表达支持。质押越多,Indexer 就越倾向于索引这个子图。为什么?因为 Curator 的质押信号会影响到 Indexer 的收益分配。
我个人的理解是:Curator 就像是一个「投资经理」。他们用自己的专业知识判断哪些子图有价值,然后下注。如果子图被广泛使用,Curator 就能获得查询费的分成。
Curator 的收益模型:
| 行为 | 收益 | 风险 |
|---|---|---|
| 质押到热门子图 | 查询费分成 + 通胀奖励 | 低(但收益也相对稳定) |
| 质押到冷门子图 | 可能获得早期高额分成 | 高(可能无人使用) |
| 撤销质押 | 无 | 需要等待解绑期(通常28天) |
为什么会有人愿意当 Curator?说白了,就是用自己的专业知识赚钱。如果你对某个生态很了解,知道哪些 DApp 需要数据索引,你就能提前布局。
2.5 Delegator:躺赚的参与者
Delegator 是最轻松的角色。你不需要跑节点,也不需要分析子图。你只需要把 GRT 委托给某个 Indexer,然后坐等分红。
Delegator 的存在是为了解决一个问题:不是每个人都有能力或意愿运行节点,但大家都想参与网络治理和收益分配。通过委托,你可以把 GRT 借给 Indexer,Indexer 用这些 GRT 来增加自己的质押权重,从而获得更多查询任务。
Delegator 的收益主要来自:
- Indexer 的查询费分成(通常 10%-30%)
- 通胀奖励的一部分
但 Delegator 也有风险。如果你委托给一个不靠谱的 Indexer,他可能被惩罚,你的委托资金也会受影响。我建议 Delegator 定期检查 Indexer 的表现,比如查询成功率、响应时间等。
我的建议:新手可以先从 Delegator 开始。不需要太多技术知识,选几个排名靠前的 Indexer 分散委托,风险会小很多。
2.6 四个角色如何协作?
我们用一个场景来串联一下:
- 开发者写了一个 Uniswap 的子图,部署到 The Graph 网络
- Curator 觉得这个子图有价值,质押 GRT 发出信号
- Indexer 看到信号,开始索引这个子图
- Delegator 把 GRT 委托给这个 Indexer,支持他
- 用户 通过 GraphQL 查询 Uniswap 的交易数据,支付查询费
- 查询费分给 Indexer、Curator 和 Delegator
你看,这套机制形成了一个闭环。每个角色各司其职,互相激励。我个人觉得,The Graph 的经济模型设计得相当精巧,比很多 DeFi 协议都要成熟。
2.7 总结一下
这一章我们讲了:
- 子图:数据索引的蓝图
- Graph Node:执行索引的引擎
- Indexer:提供查询服务的矿工
- Curator:筛选优质子图的信号者
- Delegator:提供资金的躺赚者
下一章,我们会手把手教你写一个子图。从定义 schema 到部署上线,我会把我在实际项目中踩过的坑都告诉你。嗯,到时候见。