价格服务
一个小型、独立的 HTTP 服务,用于隔离 dapp 唯一的外部依赖。
为什么它是独立的
代币化股票的美元价格无法来自链上——它来自一个 API。把它放进应用的某个路由中,就等于把这项依赖缝进了产品。
把它分离出来之后,dapp 依然直接从链上读取全部协议状态,并在价格服务宕机时保持可用。此时它会显示“price unavailable”,绝不显示零。
新鲜度规则
这是项目的一条设计规则,而不是实现细节:
任何金融数值,在不知道它是否新鲜的情况下都绝不显示;不可用的价格显示为不可用,绝不显示为零,也绝不显示为静默的估算值。
因此,每一个返回的价格都带有其来源、它在上游被观测到的时间戳,以及一个过期标记。如果至少有一个交易代码未能定价,完整的 payload 还会带有一个“降级”标记。
本地运行
该服务以 fixtures 模式运行:价格固定不变,没有网络调用,这使本地场景可以复现。