1. 业务场景定义
场景描述:用户 Alice 在某头部交易所 APP 发起一笔 10 ETH 的提现请求,目标地址为您的平台为您分配的充值地址。您的平台检测到大额入账后,自动通知用户并触发资金归集流程。
2. 第一阶段:发送侧架构流程 (The Departure)
逻辑:交易所内部系统响应用户请求,完成风控、签名,并将交易广播到区块链网络。
-
Step 1.1 流量接入与防护
用户点击"提现" \\rightarrow 请求经过 AWS WAF (拦截恶意 IP/CC 攻击) \\rightarrow 进入 ALB (负载均衡与 SSL 卸载) \\rightarrow 转发至 EKS API Pod (业务网关)。
-
Step 1.2 业务风控与编排
EKS API Pod 冻结用户 RDS 余额 \\rightarrow 触发 AWS Step Functions (启动提现风控工作流)。
- Step Functions 逻辑:自动检查用户异地登录情况、今日累计提现额度。
-
Step 1.3 安全签名 (离线)
风控通过 \\rightarrow Step Functions 调度 EKS Signer Pod (签名服务) \\rightarrow 从 AWS Secrets Manager 读取节点 API Key \\rightarrow 调用 AWS KMS 使用私钥对交易哈希进行签名 (Private Key 从不离开 KMS 硬件安全模块)。
-
Step 1.4 交易广播 (上链)
EKS Signer Pod 拿到签名后的 Hex 数据 \\rightarrow 通过 RPC 接口 (
eth_sendRawTransaction) 发送给 Amazon Managed Blockchain (AMB) 节点 \\rightarrow AMB 将交易广播至公网区块链 P2P 网络。
3. 第二阶段:接收侧架构流程 (The Arrival)
逻辑:您的平台感知链上数据,经过缓冲、处理、入账,最终通知用户并归集资金。
-
Step 2.1 扫链与感知 (Source)
AMB (您的节点) 同步到包含该交易的最新区块 \\rightarrow EKS Scanner Pod (扫链程序) 通过 RPC (
eth_getBlock) 轮询发现该充值交易。 -
Step 2.2 数据缓冲与削峰
EKS Scanner Pod 将原始区块数据打包 \\rightarrow 生产消息发送至 Amazon MSK (Kafka) 的
deposit-topic主题。- 作用:解耦扫链与记账,防止链上流量洪峰冲垮数据库。
-
Step 2.3 消费与核心记账
EKS Consumer Pod 消费 MSK 数据 \\rightarrow 开启事务写入 Amazon RDS (增加 Alice 余额) \\rightarrow 同时将交易哈希写入 Amazon OpenSearch (供前端查询交易详情) \\rightarrow 更新 Amazon ElastiCache (Redis) (热数据缓存)。
- 监控:此时 AWS X-Ray 记录全链路耗时,CloudWatch 监控 MSK 消费延迟。
-
Step 2.4 实时通知 (User Experience)
EKS Consumer Pod 确认入账成功 \\rightarrow 发布消息到 Amazon SNS \\rightarrow AWS AppSync 收到触发 \\rightarrow 通过 WebSocket 推送至 Alice 的 APP。
- 结果:Alice 手机无需刷新,余额数字自动跳动 +10 ETH。
-
Step 2.5 自动化归集 (Orchestration)
EKS Consumer Pod 判断金额 (10 ETH) > 归集阈值 \\rightarrow 异步触发 AWS Step Functions (归集工作流)。
- 流程 :Step Functions \\rightarrow 调用 EKS Signer \\rightarrow KMS 签名 (归集交易) \\rightarrow AMB 广播 \\rightarrow 进入
Wait状态等待 12 个区块确认 \\rightarrow 成功后更新 RDS 状态。
- 流程 :Step Functions \\rightarrow 调用 EKS Signer \\rightarrow KMS 签名 (归集交易) \\rightarrow AMB 广播 \\rightarrow 进入
-
Step 2.6 数据审计 (Audit)
Amazon RDS 的历史快照导出至 Amazon S3 \\rightarrow 审计人员使用 AWS Glue 爬取数据目录 \\rightarrow 通过 Amazon Athena 直接运行 SQL 查询历史账目,生成财务报表。
4. 最终架构拓扑图
graph TD
%% --- User Action ---
User((Alice)) --1.提现请求--> WAF[🛡️ WAF]
%% --- Phase 1: Sender (Exchange) ---
subgraph Sender_Exchange [Phase 1: 交易所发送侧]
WAF --> ALB[⚖️ ALB]
ALB --> API[EKS: API Pod]
API --2.触发风控--> SF_Send[⚙️ Step Functions]
SF_Send --3.读余额--> RDS_Send[(RDS)]
SF_Send --4.请求签名--> Signer[EKS: Signer]
Signer --5.取Key--> Secrets[🔐 Secrets Manager]
Signer --6.签名--> KMS_Send[🔑 KMS]
Signer --7.广播 RPC--> AMB_Send[🔗 AMB Node]
end
%% --- Public Chain ---
AMB_Send -.->|8. P2P 网络传播 & 挖矿| AMB_Recv[🔗 AMB Node]
%% --- Phase 2: Receiver (Your Platform) ---
subgraph Receiver_Platform [Phase 2: 平台接收侧]
%% Ingestion
AMB_Recv --9. 轮询 RPC--> Scanner[EKS: Scanner Pod]
Scanner --10. 写入缓冲--> MSK[📨 Amazon MSK]
%% Processing
MSK --11. 消费--> Consumer[EKS: Consumer Pod]
Consumer --12. 记账--> RDS_Recv[(RDS: Ledger)]
Consumer --13. 索引--> ES[🔍 OpenSearch]
%% Notification
Consumer --14. 通知--> SNS[📢 SNS]
SNS --> AppSync[🔄 AppSync]
AppSync --15. WebSocket 推送--> User_App[📱 Alice's APP]
%% Orchestration (Sweep)
Consumer --16. 触发归集--> SF_Sweep[⚙️ Step Functions]
SF_Sweep --17. 归集签名--> KMS_Recv[🔑 KMS]
SF_Sweep --18. 广播归集--> AMB_Recv
%% Audit & Monitor
Consumer -.->|Trace| XRay[📊 X-Ray/CloudWatch]
RDS_Recv -.->|Archive| S3[🗄️ S3]
S3 -.->|SQL Query| Athena[🧐 Athena]
end
style Sender_Exchange fill:#f1f8e9,stroke:#33691e,stroke-width:2px
style Receiver_Platform fill:#e3f2fd,stroke:#0d47a1,stroke-width:2px