v03413 / bepusdt

一款更好用的个人USDT收款网关,兼容所有 Epusdt 插件,可无缝切换,支持交易所动态汇率、支持Docker一键部署;支持独角发卡 易支付 异次元发卡
GNU General Public License v3.0
334 stars 79 forks source link

并发下创建交易会存在相同金额 #27

Closed echo-ix closed 6 days ago

echo-ix commented 3 weeks ago

并发创建10CNY金额,汇率为1的交易订单,返回的实际需要支付的金额actual_amount会出现相同金额,保证不了并发,并且金额不是4为小数,修改源码Atomicity之后才会0.0001开始自增。

v03413 commented 2 weeks ago

当初写的时候有考虑过并发问题,但是细想有并发需求的应该或许可能不会用这个吧,于是就没深入细写。🤔
而至于精度问题 常量 Atomicity,当初是考虑到大部分交易所和交易场景都是两位小数,虽然也有考虑过自定义引入;但 忙 + 拖延症 没动力就耽搁啦。

不过感谢有人反馈了这些问题,后续调整会优先考虑。

v03413 commented 2 weeks ago

并发创建10CNY金额,汇率为1的交易订单,返回的实际需要支付的金额actual_amount会出现相同金额,保证不了并发,并且金额不是4为小数,修改源码Atomicity之后才会0.0001开始自增。

不过您可以给出稍微详细点的压力方法吗,我尝试复现;如果存在多个钱包地址,相同金额是允许的。

zbuse commented 1 week ago

U 的金额改成小数点后 4位吧

v03413 commented 6 days ago

此 issue 先关掉,遇到同样问题的,提供相关日志或具体信息后可 reopen