Releases: 1227cwx/HDupay
Releases · 1227cwx/HDupay
Release list
v0.1.0
✨ 更新亮点
Tip
本次更新是以 安全性、稳定性、可维护性 为主的系统升级
- 支付订单查询安全性
- 链上监听准确性
- 归集和转出任务稳定性
- Gas 钱包并发保护
- OpenAPI / 易支付兼容安全性
- 数据库初始化完整度
- 后台路由和访问控制规范性
🧩 新增功能
- 支付页面公开访问开关
- 订单访问令牌保护
- 每笔订单独立监听进度
- Gas 补充交易状态记录
- 默认网络、代币、汇率初始化数据
🛠 优化调整
1. 订单监听更安全
监听逻辑从原来的全局游标方式,优化为:
订单级监听起点 + 网络/代币统一扫块
这样既避免每个订单单独扫块造成 RPC 压力,也避免全局游标导致新订单漏扫。
2. 归集任务按网络串行处理
归集任务现在按网络加锁执行:
- 同一个网络同一时间只处理一个归集任务。
- 避免多个任务同时使用 Gas 钱包,导致 nonce 冲突。
- 已发送交易的任务不会重复发交易。
3. 转出任务按网络串行处理
转出任务也改为按网络串行处理:
- 防止重复转出。
- 防止 Gas 钱包并发发交易。
- 异常任务可按状态恢复。
4. 统一 Gas 钱包锁
归集和转出只要需要 Gas 钱包发交易,都会先拿统一网络锁,这样可以更好地保护 Gas 钱包交易顺序。
5. 钱包加密密钥缓存
WALLET_ENCRYPTION_KEY 现在会缓存到内存中:
- 不再每次加密/解密都读取
.env文件。 - 减少长驻进程下的文件读取开销。
6. 钱包密钥结构优化
网络账户密钥改为保存账户级 xprv:
- 根钱包保存根 seed。
- 网络账户保存当前账户级 xprv。
- 单个网络账户泄露时,不会直接影响其它网络账户。
7. Pay 页面加载体验优化
支付页面在带订单号访问时:
- 不再先加载创建订单选项。
- 直接加载订单状态。
- 易支付订单也可以直接通过易支付订单号轮询状态。
- 支付成功后会自动清理 URL,回到默认
/pay。
🐞 BUG 修复
1. 修复订单过期不冻结问题
订单过期检查提前执行,不再依赖 RPC 请求成功。
即使当前网络暂时没有继续扫块,也可以正确处理过期订单和冻结子地址。
2. 修复监听可能跳块的问题
移除旧的全局监听游标表,改为每个订单保存自己的扫描进度,避免新订单被旧游标跳过。
3. 修复公开订单详情暴露问题
删除公开订单详情接口,只保留必要的订单状态查询,并要求携带访问令牌。
4. 修复地址分配并发风险
创建订单、分配地址、写入订单现在放在同一个事务中处理。
地址分配也增加了原子条件,避免多个订单抢到同一个地址。
5. 修复易支付绑定重复问题
易支付订单绑定收款订单时增加原子条件,避免并发情况下重复绑定。
6. 修复 OpenAPI 删除风险
API 配置删除前会检查是否有关联数据:
- 交易订单
- 易支付订单
- 回调日志
如果已经有关联数据,则不能删除,只能禁用。
7. 修复归集/转出 processing 卡死问题
如果任务异常停留在处理中状态,系统会按网络账户超时时间自动恢复:
- 已有交易哈希:恢复到链上确认状态。
- 没有交易哈希:转为需要手动处理。
8. 修复后台历史路由残留
删除 /hdupay/transactions 历史兼容路由,避免无效页面继续访问。
🔐 安全增强
1. URL 安全校验
回调地址和同步跳转地址增加安全校验:
- 只允许
http://和https://。 - 禁止 localhost。
- 禁止内网 IP。
- 域名解析后如果指向内网地址,也会拒绝。
- 禁止自动跟随回调重定向。
⚠️ 升级注意事项
- 历史订单不做兼容处理,建议使用新订单测试本功能。
- 建议升级前备份数据库与
.env配置文件。
v0.0.3
v0.0.2
🛠 优化调整
1. 后台页面改用后台专用收款配置接口
- 后台页面不再请求公开接口。
- 后台和公开页面接口路径更清晰。
- 配合后台域名隔离功能,避免跨域名访问逻辑冲突。
2. 后台域名与公开访问域名隔离
- 提高后台入口隔离性。
- 避免公开域名暴露后台页面。
- 避免后台域名被用于公开支付页。
3. 按订单金额绑定确认区块数
- 小额订单可以更快确认。
- 大额订单可以等待更多确认。
- 订单确认进度与每笔订单绑定,页面显示更准确。
- 归集任务确认数与来源订单一致。
- 转出任务统一按最大确认数处理。
⚠️ 升级注意事项
- 历史订单不做兼容处理,建议使用新订单测试本功能。
- 建议升级前备份数据库与
.env配置文件。
v0.0.1
✨ 更新亮点
- 新增按订单金额自动匹配确认区块数的逻辑,全链路确认规则统一清晰。
- 全网络支持「小额确认数 + 大额确认数」双档位配置,灵活适配不同场景。
- 充值、监听、归集、转出全流程确认逻辑对齐,业务规则更透明。
- Polygon 网络默认确认数优化,小额订单确认效率大幅提升。
🧩 新增功能
1. 网络配置新增双档位确认规则
- 每个网络现已支持两套确认区块数配置,实现按金额差异化确认
- 最小确认区块数:适用于小额订单,兼顾到账速度。
- 最大确认区块数:适用于大额订单,保障交易安全性。
- 同时新增大额阈值配置项,系统以此为边界自动判断订单档位。
2. 订单创建自动锁定确认区块数
- 创建充值订单时,系统将根据订单应付稳定币金额,自动匹配对应档位的确认区块数并固定生效。
🛠 优化调整
- 梳理充值订单、区块监听进度、归集任务、转出任务的确认判定逻辑,规则边界更清晰。
- Polygon 网络默认确认数由固定 128 调整为:小额 20 区块、大额 32 区块,显著提升小额订单确认体验。
🐞 BUG 修复
- 修复 Polygon 固定 128 个确认导致小额订单等待过久的问题。
- 修复充值监听、确认进度、归集确认过度依赖网络全局确认数的问题。
⚠️ 升级注意事项
- 历史订单不做兼容处理,建议使用新订单测试本功能。
- 建议升级前备份数据库与
.env配置文件。