输入关键词,开始搜索

↑↓ 选择 打开 esc 关闭
沉浸

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 NodeNAS / Server / VPSLocal disk + S3Multi-core, 16GB+权威存储、compaction、P2P 路由
Edge NodeDesktop / LaptopLocal disk (limited)Multi-core, 8GB+查询服务、P2P 直连
Browser NodeBrowser (WASM)OPFS / IndexedDBSingle-threaded WASM轻量级主权对等节点 —— 持有完整 Catalog,将重操作委托出去

Browser Node 是杀手锏。 它们为其 Space 持有完整的 Iceberg Catalog,可以独立回答查询,并且只通过 UCAN 认证的远程执行将大型 JOIN 或 compaction 委托给 Full Node。


当前进展

AgoraDB 开发路线图

Phase 1: 查询引擎核心 (5)
DataFusion 集成(SQL parser + optimizer + execution)
100%
Iceberg Catalog Bridge(CatalogProvider + TableProvider)
100%
CREATE SPACE DDL 执行
100%
旧引擎清理(5,700+ 行代码删除)
100%
31 个测试通过,0 失败
100%
Phase 2: 写入路径 + 联邦 (5)
Append Buffer → Parquet flush → Iceberg commit
0%
INSERT INTO ... VALUES SQL 支持
0%
Arrow Flight Server(gRPC)
0%
跨 Space 的 Federated JOIN
0%
TPC-H Q1-Q5 benchmark on SF1
0%
Phase 3: 多模态 (4)
GRAPH 模式(Cypher + CSR index)
0%
VECTOR 模式(HNSW + similarity search)
0%
FTS 模式(BM25 + inverted index)
0%
MCP API for AI agents
0%
全部
Phase 1: 查询引擎核心
Phase 2: 写入路径 + 联邦
Phase 3: 多模态
全部
done
doing
todo
状态阶段任务进度
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%
36%整体完成度
整体完成度
14 个任务 · 5 已完成 · 5 进行中 · 4 待办
DataFusion 集成(SQL parser + optimizer + execution)
100%
Iceberg Catalog Bridge(CatalogProvider + TableProvider)
100%
CREATE SPACE DDL 执行
100%
旧引擎清理(5,700+ 行代码删除)
100%
31 个测试通过,0 失败
100%
Append Buffer → Parquet flush → Iceberg commit
0%
INSERT INTO ... VALUES SQL 支持
0%
Arrow Flight Server(gRPC)
0%
跨 Space 的 Federated JOIN
0%
TPC-H Q1-Q5 benchmark on SF1
0%
GRAPH 模式(Cypher + CSR index)
0%
VECTOR 模式(HNSW + similarity search)
0%
FTS 模式(BM25 + inverted index)
0%
MCP API for AI agents
0%
状态分布
● 已完成████░░░░░░536%
◉ 进行中████░░░░░░536%
○ 待办███░░░░░░░429%

浏览器(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 都是你的。

Miki
Miki
未知标题
00:00
00:00
播放列表