案例研究
ZestAMC
加密货币投资管理平台,连接投资者与专业基金经理。
$10M+
平台管理资产
200K+
注册用户
5
基于角色的门户
179
SQL 迁移
面临的挑战
一家没有平台的加密基金管理公司
ZestAMC的团队通过电子表格和手动银行转账管理多个加密货币基金。基金经理手动跟踪投资者分配。付款需要数天时间。一个$2M基金上的单个小数错误意味着真实的资金损失。
他们需要一个平台,让投资者可以浏览基金、完成KYC验证、投资并接收自动加密货币付款,同时基金经理以金融级精度跟踪业绩。五种不同的用户类型(管理员、基金经理、投资者、基金管理员、客服)各自需要不同的视图和权限。
该平台还必须遵守KYC/AML法规,支持多个加密网络(TRC20、ERC20、BEP20),并处理复杂推荐链中的利润分配,所有这些都不能有一个舍入误差。
我们构建了什么
10个系统。一个平台。
5个基于角色的门户
每种用户类型看到不同的应用。管理员管理基金和用户。基金经理跟踪管理资产并分配利润。投资者浏览指数、投资和提款。基金管理员处理合规工作流。客服人员通过实时聊天解决问题。一套代码库,五种不同体验,全部共享同一数据层。
自动加密货币支付引擎
我们集成了NOWPayments来处理TRC20、ERC20和BEP20网络的支付。BullMQ后台任务处理两步利润分配:先给投资者,再给推荐链。每笔支付作为原子事务运行。如果任何步骤失败,整个批次回滚。
KYC/AML合规和金融精度
Sumsub通过其SDK和webhook回调处理身份验证。每个投资者在首次投资前完成KYC。在财务方面,所有货币值在Postgres中使用NUMERIC(30,8),并在应用层配合decimal.js。浮点运算不接触资金。30位数字,8位小数,零舍入误差。
智能批次和免密认证
投资者通过批次购买基金份额。延迟聚合系统将小额投资合并为更大的资金池条目,减少数据库写入并提高基金分析的查询性能。认证使用免密OTP,消除与密码相关的客服工单并减少攻击面。
基础设施和工具
- 通过Supabase Realtime实现实时客服聊天,客服人员和投资者无需刷新页面或轮询即可沟通。
- 功能标志系统用于渐进式发布,让团队在全面发布前先向部分用户推出。
- 179个SQL迁移文件配合pgTAP数据库测试,确保架构变更不会破坏生产数据。
- 通过BullMQ后台任务进行两步利润和推荐分配,异步处理支付而不阻塞主线程。
技术决策
我们为什么选择这个技术栈
React 19 + Vite 6
五个门户共享一套React代码库。Vite的模块联邦保持每个门户的包体积较小。React 19的并发特性让仪表板在大数据获取时渲染基金分析而不冻结UI。
Hono on Fly.io
Hono运行API层。启动时间不到50毫秒,这对Fly.io的缩放到零模型很重要。冷启动会发生,它们需要快速。Hono的中间件系统以可组合链的方式处理认证、速率限制和请求验证。
Supabase + Upstash Redis
Supabase提供Postgres、认证原语和用于客服聊天的Realtime订阅。Upstash Redis在边缘处理会话缓存和速率限制。两个服务都无需运维开销即可扩展。
NUMERIC(30,8) + decimal.js
JavaScript原生Number类型在2^53以上会丢失精度。对于管理$10M+加密资产的平台,这是不可接受的。我们将所有货币值存储为Postgres中的NUMERIC(30,8),并在应用层使用decimal.js进行每次计算。浮点运算永远不接触资金。
成果
生产数据
$10M+
平台管理资产
200K+
所有门户注册用户
179
SQL迁移配合pgTAP测试
5
基于角色的门户,一套代码库
消息已收到
我们将审核您的项目,并在24小时内回复。
您也可以通过 hello@savibm.com 联系我们