返回架构笔记
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倍,必须设计弹性伸缩。