Technical Crypto OS第三阶段 · Full-stack Onchain Application
第三阶段导读
Full-stack Onchain Application。钱包、前端状态机、后端、数据库、索引与实时推送。
这一阶段要解决的问题
合约只是系统的一小部分。一个真实可用的产品,还需要回答:
- 用户怎样登录,签名到底授权了什么,怎样撤销?
- 交易在等待确认的十几秒里,界面该显示什么?
- 链上已经有数据了,为什么还需要后端和数据库?
- 区块重组以后,你已经写进数据库的数据怎么办?
最后一个问题是这一阶段的分水岭。能正确处理重组的索引器,和能跑通 demo 的索引器,是两个东西。
六章
T13Wallet Connection
登录一个 DApp,到底发生了什么?
Wallet AdapterSIWESessionApproveRevoke
T14Web3 Frontend
交易在等待确认的这十几秒里,界面该显示什么?
Transaction StateOptimistic UIError MappingReorg Handling
T15Backend for Crypto
链上已经有数据了,为什么还要后端?
APIQueueCacheIdempotencyRate Limit
T16数据库与链上数据
链上数据应该怎样落库?
PostgreSQLRedisEvent ModelUpsertCheckpoint
T17Indexer
区块重组以后,你的数据怎么办?
Block ScannerEvent IndexReorgCheckpointBackfill
T18Realtime System
怎样把链上的变化实时推给用户?
WebSocketSubscriptionStreamBackpressureReplay
这一阶段之后
你能独立交付一个完整的 DApp:连钱包、发交易、索引事件、实时刷新。
阶段作品:一个全栈 DApp。
学习建议
- T14 的交易状态机建议照着实现一遍完整的六个状态,包括被替换和失败。多数教程只做成功路径。
- T17 的验收标准很硬:从任意高度重跑,结果必须与原结果完全一致。做到这一条,你就超过了大多数自称做过索引的人。