Arch Day 164
Arch Day 164: Web3系统设计面试框架 — 45分钟的结构化方法
Web3系统设计面试不是"画架构图",而是展示你在约束条件下做trade-off决策的能力。与Web2最大的区别:必须处理链上/链下数据分离、区块确认的概率性最终性、24/7不间断运行、和市场波动时10-100x流量突增。
2026-09-10
第七阶段 - Web3专题深度系统设计面试Web3架构限时练习
日期: 2026-09-10 (Day 164) 阶段: 第七阶段 - Web3专题深度 标签: #系统设计 #面试 #Web3 #架构 #限时练习
核心概念
一句话定义
Web3系统设计面试不是"画架构图",而是展示你在约束条件下做trade-off决策的能力。与Web2最大的区别:必须处理链上/链下数据分离、区块确认的概率性最终性、24/7不间断运行、和市场波动时10-100x流量突增。
知识点详解
1. Web3 vs Web2系统设计差异
| 维度 | Web2 | Web3 |
|---|---|---|
| 数据源 | 单一数据库 | 链上状态+链下数据库 |
| 一致性 | 强一致 | 概率性最终性(reorg风险) |
| 可用性 | 99.99% | 24/7/365必须+突发10-100x |
| 安全 | 常规auth | 私钥管理、MEV保护、合约安全 |
| 合规 | GDPR/SOC2 | KYC/AML + 链上透明性 |
2. 8步答题框架
1. 需求澄清 (3min)
├── 功能需求(核心用户故事)
├── 非功能需求(延迟/吞吐/链支持)
└── Web3特有:哪些链?链上还是链下?
2. 规模估算 (2min)
├── 用户量/交易量/QPS
└── 存储量估算
3. 高层架构 (5min)
├── 核心组件图
└── 链上/链下边界
4. 数据模型 (5min)
├── 链上状态 vs 链下数据库
└── 索引策略
5. API设计 (5min)
├── 核心端点
└── WebSocket/Webhook
6. 深入核心组件 (15min)
├── 选1-2个核心组件深入
└── 讨论实现细节
7. 扩展性 (5min)
├── 水平扩展方案
└── 缓存策略
8. Trade-offs讨论 (5min)
├── 安全性 vs 性能
└── 去中心化 vs 用户体验
3. Web3系统设计Checklist
每道题都要考虑:
- Reorg处理(区块回滚怎么办?)
- Gas优化(如何减少链上交易成本?)
- 私钥管理(HSM/MPC/多签?)
- MEV保护(前端运行/三明治攻击?)
- 多链支持(如何抽象链差异?)
- 合规要求(KYC/AML/地理限制?)
4. 各公司面试风格
| 公司 | 风格 | 注意事项 |
|---|---|---|
| Coinbase | 安全优先,KYC/AML是核心 | "负余额=自动挂" |
| Chainlink | 两轮1小时技术轮 | 分布式系统+组件实现 |
| Alchemy | 基础设施视角 | RPC性能/可靠性 |
| Circle | 支付/合规视角 | 稳定币/结算 |
面试题
问题:面试中如何处理"我不确定"的情况?
回答:坦诚+"提出假设"——"I'm not sure about the exact TPS of Solana validators, but let me assume 3,000 TPS and design around that. We can adjust if the actual number is different." 面试官看的不是你记住了多少数字,而是你的思考过程和trade-off能力。