网关
在原生 Rust 服务和 Cloudflare Worker 部署模型之间选择。
两个网关实现共享 gateway-core 的协议行为,并隔离各自运行时 IO。
原生网关
crates/gateway-native 是用于自托管的 Axum 服务,提供最完整的路由、facilitator 和 RPC client、本地开发 store、SQLite 订单模式、notify、幂等和对账能力。
本地 JSON 或 SQLite 适合开发和单实例部署,多实例生产环境需要共享事务存储。
Cloudflare Worker
crates/gateway-worker 运行在边缘,支持 D1/KV 存储模式和显式生产 gate。需要原子 claim 或条件写入的安全关键路径必须使用 D1。不安全的本地模式或最终一致模式在公开生产 origin 上必须保持阻断。
共同约束
- 不接触付款方私钥,不托管用户资金。
- 调用 facilitator 前验证完整上下文。
- Signed offer 和 receipt 使用独立的服务端签名密钥。
- Webhook 经过 SSRF 过滤,且只能作为提示。
- RPC 范围、响应大小、超时和请求速率都必须有边界。
- 默认支付无状态,订单状态必须显式启用。