AgoraDB - 多模态去中心化分析型数据库
AgoraDB
面向 Web3 的多模态去中心化分析型数据库
嵌入式。主权化。原生 P2P。
什么是 AgoraDB?
AgoraDB 是一个为去中心化网络构建的列式分析型数据库。它将现代数据湖(DuckDB、Snowflake)的查询能力带到 Web3 —— 无需中心化。
每个节点都是一个自主的数据主权单元。你的数据存在于一个 Space 中 —— 一个自包含的、DID 拥有的数据宇宙,容纳结构化表、属性图、向量嵌入和全文索引,全部由统一的 Iceberg Catalog 支撑。
┌─────────────────────────────────────────┐
│ Space: space://did:agora:you/blog │
│ ├─ posts (SQL table) │
│ ├─ followers (Graph) │
│ ├─ embeddings (Vector collection) │
│ └─ search_index (Full-text) │
└─────────────────────────────────────────┘
为什么选择 AgoraDB?
| 问题 | AgoraDB 如何解决 |
|---|---|
| 中心化数据孤岛 | 每个 Space 都是主权的 —— 由你的 DID 拥有,存储在你选择的位置 |
| Web3 中没有 SQL | 完整的 PostgreSQL 兼容 SQL + 用于图的 Cypher |
| 昂贵的云分析 | 在本地设备上查询;P2P 同步替代云管道 |
| 浏览器无法进行数据分析 | WASM 引擎在浏览器中运行 SQL,将重操作委托给对等节点 |
| AI 智能体无法访问结构化数据 | MCP API 将 Space 暴露为 Claude、Cursor 等工具 |
它能做什么?
SQL 分析
-- 在 Parquet 文件上执行标准分析 SQL
SELECT status, COUNT(*), AVG(totalprice)
FROM orders
WHERE created_at > '2025-01-01'
GROUP BY status
ORDER BY COUNT(*) DESC;
- 列式存储(Apache Parquet)带 Zone Map、Bloom Filter、ART 索引
- 向量化执行(Apache DataFusion)—— 1024 行 Arrow 批次
- 谓词下推 —— 过滤器下推到 Parquet 行组和页级别
- 时间旅行查询 ——
SELECT * FROM table TIMESTAMP AS OF '2025-06-01'
向量搜索
-- 近似最近邻搜索
SELECT id, metadata, similarity(embedding, :query_vec) AS score
FROM embeddings
ORDER BY embedding <=> :query_vec
LIMIT 100;
- HNSW 索引用于余弦 / L2 / 内积
- 量化支持(float32 → int8)用于受限环境
图查询
-- Cypher 用于社交图、知识图
MATCH (u:User)-[:FOLLOWS]->(f:User)
WHERE u.created_at > '2025-01-01'
RETURN f.name, f.follower_count;
- 基于 CSR 的遍历 —— O(degree) 出边查找
- 图存储为 Parquet 边文件 + 顶点字典
多模态查询
-- 向量 → 图 → SQL 在一个查询中
SELECT u.name, score
FROM (
SELECT id, similarity(embedding, :vec) AS score
FROM user_embeddings
ORDER BY embedding <=> :vec LIMIT 100
) v
JOIN users u ON u.id = v.id
JOIN user_graph g ON u.id = g.source_id
WHERE g.relationship = 'follows'
AND u.created_at > '2025-01-01'
ORDER BY score DESC;
架构
┌─────────────────────────────────────────────┐
│ 接口层 │
│ SQL · Cypher · MCP · HTTP · WASM · CLI │
├─────────────────────────────────────────────┤
│ 查询层 (Apache DataFusion) │
│ SQL Parser → Logical Plan → Optimizer │
│ (RBO + CBO) → Physical Plan → Execution │
├─────────────────────────────────────────────┤
│ 联邦规划器 │
│ Remote/local fragmentation · Pushdown │
├─────────────────────────────────────────────┤
│ Catalog Bridge (Iceberg → DataFusion) │
│ AgoraCatalogProvider · IcebergTableProvider│
├─────────────────────────────────────────────┤
│ 存储引擎 │
│ Iceberg Metadata · Parquet Column Store │
│ Zone Map · Bloom · ART · CSR · HNSW │
├─────────────────────────────────────────────┤
│ VFS (虚拟文件系统) │
│ Local Disk · S3 · OPFS (Browser) · IDB │
├─────────────────────────────────────────────┤
│ 安全与 P2P │
│ DID · UCAN · Arrow Flight · libp2p │
└─────────────────────────────────────────────┘
关键技术: Rust · Apache DataFusion · Apache Iceberg · Apache Parquet · Apache Arrow
节点类型
| 类型 | 位置 | 存储 | 计算 | 角色 |
|---|---|---|---|---|
| Full Node | NAS / Server / VPS | Local disk + S3 | Multi-core, 16GB+ | 权威存储、compaction、P2P 路由 |
| Edge Node | Desktop / Laptop | Local disk (limited) | Multi-core, 8GB+ | 查询服务、P2P 直连 |
| Browser Node | Browser (WASM) | OPFS / IndexedDB | Single-threaded WASM | 轻量级主权对等节点 —— 持有完整 Catalog,将重操作委托出去 |
Browser Node 是杀手锏。 它们为其 Space 持有完整的 Iceberg Catalog,可以独立回答查询,并且只通过 UCAN 认证的远程执行将大型 JOIN 或 compaction 委托给 Full Node。
当前进展
AgoraDB 开发路线图
| 状态 | 阶段 | 任务 | 进度 |
|---|---|---|---|
| ● | Phase 1: 查询引擎核心 | DataFusion 集成(SQL parser + optimizer + execution) | 100% |
| ● | Phase 1: 查询引擎核心 | Iceberg Catalog Bridge(CatalogProvider + TableProvider) | 100% |
| ● | Phase 1: 查询引擎核心 | CREATE SPACE DDL 执行 | 100% |
| ● | Phase 1: 查询引擎核心 | 旧引擎清理(5,700+ 行代码删除) | 100% |
| ● | Phase 1: 查询引擎核心 | 31 个测试通过,0 失败 | 100% |
| ◉ | Phase 2: 写入路径 + 联邦 | Append Buffer → Parquet flush → Iceberg commit | 0% |
| ◉ | Phase 2: 写入路径 + 联邦 | INSERT INTO ... VALUES SQL 支持 | 0% |
| ◉ | Phase 2: 写入路径 + 联邦 | Arrow Flight Server(gRPC) | 0% |
| ◉ | Phase 2: 写入路径 + 联邦 | 跨 Space 的 Federated JOIN | 0% |
| ◉ | Phase 2: 写入路径 + 联邦 | TPC-H Q1-Q5 benchmark on SF1 | 0% |
| ○ | Phase 3: 多模态 | GRAPH 模式(Cypher + CSR index) | 0% |
| ○ | Phase 3: 多模态 | VECTOR 模式(HNSW + similarity search) | 0% |
| ○ | Phase 3: 多模态 | FTS 模式(BM25 + inverted index) | 0% |
| ○ | Phase 3: 多模态 | MCP API for AI agents | 0% |
浏览器(WASM)
import { AgoraDB } from '@agoradb/sdk';
const db = await AgoraDB.open('myblog');
const result = await db.sql(`
SELECT id, title FROM posts WHERE published = true
`);
console.log(result.batches);
使用场景
DApp 后端
每个 DApp 为每个用户部署一个 Space。即使 DApp 关闭,用户仍保留数据所有权。通过撤销 UCAN token 来撤销访问权限。
去中心化社交(PDS 2.0)
Browser Node 作为真正的个人数据存储 —— 保存帖子、社交图谱、媒体元数据。GRAPH 模式用于关注/粉丝。FTS 模式用于内容搜索。无需中心化中继。
链上分析
将链上数据(区块、交易、日志)转换为 Iceberg 表。订阅子集(特定合约、地址活动)。本地 SQL 分析并自动 P2P 同步 —— 无需 API 密钥,没有速率限制。
AI 智能体数据层
MCP API 将 Space 暴露为 Claude、Cursor 等的”工具”。UCAN token 将智能体访问范围限定到特定 Space 和行谓词。VECTOR 模式用于 RAG。FTS 模式用于关键词检索。
协议
Apache License 2.0
AgoraDB —— 每个节点都是主权的。每个查询都是本地的。每个 Space 都是你的。