Arch Day 168
Arch Day 168: 系统设计实战 — 链上分析平台与限时练习
系统设计面试的终极目标不是"完美架构",而是在45分钟内展示你的工程判断力和trade-off能力。本篇包含一道完整设计+限时练习方法。
2026-09-14
第七阶段 - Web3专题深度系统设计链上分析Dune练习方法限时训练
日期: 2026-09-14 (Day 168) 阶段: 第七阶段 - Web3专题深度 标签: #系统设计 #链上分析 #Dune #练习方法 #限时训练
核心概念
一句话定义
系统设计面试的终极目标不是"完美架构",而是在45分钟内展示你的工程判断力和trade-off能力。本篇包含一道完整设计+限时练习方法。
系统设计:链上分析平台(类Dune)
架构
Blockchain Nodes (多链RPC)
↓ Block Processor
Raw Data Store (S3/GCS Parquet)
↓ Decoder (ABI+Signature DB)
Decoded Data (Transactions/Events/Traces)
↓ Ingestion Pipeline (Spark/Flink)
Columnar Store (ClickHouse/Trino)
↓
SQL Query Engine → Web UI → 用户
↓
Visualization (Charts/Dashboards)
↓
Sharing/Embedding
关键设计决策
| 决策 | 选择 | 理由 |
|---|---|---|
| 存储引擎 | ClickHouse | 列存,聚合查询极快 |
| 查询引擎 | Trino(联邦查询) | 跨数据源JOIN |
| 解码 | ABI+4byte signature | 自动解码合约事件 |
| 缓存 | 查询结果+物化视图 | 热门查询秒级响应 |
扩展挑战
- 100+链的数据量: PB级 → 按链分片+冷热分层
- 用户自定义SQL: 资源隔离+查询限制+优先队列
- 实时性: 新区块数据<30s可查询
限时练习方法
45分钟练习模板
0-3min: 需求澄清(写下核心功能+非功能需求)
3-5min: 规模估算(QPS/存储/带宽)
5-10min: 高层架构图(5-7个核心组件)
10-15min: 数据模型(链上/链下分离)
15-20min: API设计(3-5个核心端点)
20-35min: 深入1-2个核心组件
35-40min: 扩展性讨论
40-45min: Trade-offs总结
5道限时练习题
| 题目 | 核心挑战 | 计时 |
|---|---|---|
| 设计DEX聚合器 | 路由算法+MEV保护 | 45min |
| 设计区块链索引器 | Reorg处理+多链 | 45min |
| 设计跨链桥 | 安全+验证者共识 | 45min |
| 设计NFT市场 | 元数据存储+版税 | 45min |
| 设计链上分析平台 | PB级数据+SQL引擎 | 45min |
练习建议: 每题练3遍——第1遍不限时理解题意,第2遍60分钟完成,第3遍严格45分钟。
面试题
问题:Web3系统设计和Web2系统设计最关键的差异是什么?
回答:三个核心差异——1) 数据双源性: 链上状态是权威的但查询慢,链下数据库是缓存但可能不一致,必须设计同步和reorg处理机制;2) 安全不可逆性: Web2的bug可以回滚数据库,Web3链上交易不可逆,私钥泄露=资产归零;3) 24/7+突发: 没有维护窗口,市场波动时流量可能10-100倍,必须设计弹性伸缩。