Skip to content

Latest commit

 

History

History
86 lines (73 loc) · 4.87 KB

README.md

File metadata and controls

86 lines (73 loc) · 4.87 KB

Epusdt (Easy Payment Usdt)

license GPLV3 Go version 1.16 Echo Framework v4 Telebot Framework-v3 version v0.0.1

项目简介

Epusdt(全称:Easy Payment Usdt)是一个由Go语言编写的私有化部署Usdt支付中间件(Trc20网络)
站长或开发者可通过Epusdt提供的http api集成至您的任何系统,无需过多的配置,仅仅依赖mysqlredis
可实现USDT的在线支付和消息回调,这一切在优雅和顷刻间完成!🎉
私有化搭建使得无需额外的手续费和签约费用,Usdt代币直接进入您的钱包💰
Epusdt 遵守 GPLv3 开源协议!

项目特点

  • 支持私有化部署,无需担心钱包被篡改和吞单😁
  • Go语言跨平台实现,支持x86和arm芯片架构的win/linux设备
  • 多钱包地址轮询,提高订单并发率
  • 异步队列响应,优雅及高性能
  • 无需额外环境配置,仅运行一个编译后二进制文件即可使用
  • 支持http api,其他系统亦可接入
  • Telegram机器人接入,便捷使用和支付消息快速通知

项目结构

Epusdt
    ├── plugins ---> (已集成的插件库,例如dujiaoka)
    ├── src ---> (项目核心目录)
    ├── sdk ---> (接入SDK)
    ├── sql ---> (安装sql文件或更新sql文件)
    └── wiki ---> (知识库)

教程:

已适配系统插件

加入交流/意见反馈

设计实现

Epusdt的实现方式与其他项目原理类似,都是通过监听trc20网络的api或节点,
监听钱包地址usdt代币入账事件,通过金额差异时效性来判定交易归属信息,
可参考下方流程图

简单的原理:
1.客户需要支付20.05usdt
2.服务器有一个hash表存储钱包地址对应的待支付金额 例如:address_1 : 20.05
3.发起支付的时候,我们可以判定钱包address_1的20.05金额是否被占用,如果没有被占用那么可以直接返回这个钱包地址和金额给客户,告知客户需按规定金额20.05准确支付,少一分都不行。且将钱包地址和金额 address_1:20.05锁起来,有效期10分钟。
4.如果订单并发下,又有一个20.05元需要支付,但是在第3步的时候上一个客户已经锁定了该金额,还在等待支付中...,那么我们将待支付金额加上0.0001,再次尝试判断address_1:20.0501金额是否被占用?如果没有则重复第三步,如果还是被占用就继续累加尝试,直到加了100次后都失败
5.新开一个线程去监听所有钱包的USDT入账事件,网上有公开的api或rpc节点。如果发现有入账金额与待支付的金额相等。则判断该笔订单支付成功!

流程图:

Implementation principle

打赏

如果该项目对您有所帮助,希望可以请我喝一杯咖啡☕️

Usdt(trc20)打赏地址: TNEns8t9jbWENbStkQdVQtHMGpbsYsQjZK

usdt扫码打赏

声明

Epusdt为开源的产品,仅用于学习交流使用!
不可用于任何违反中华人民共和国(含台湾省)或使用者所在地区法律法规的用途。
因为作者即本人仅完成代码的开发和开源活动(开源即任何人都可以下载使用或修改分发),从未参与用户的任何运营和盈利活动。
且不知晓用户后续将程序源代码用于何种用途,故用户使用过程中所带来的任何法律责任即由用户自己承担。

!!!Warning!!!
项目中所涉及区块链代币均为学习用途,作者并不赞成区块链所繁衍出代币的金融属性
亦不鼓励和支持任何"挖矿","炒币","虚拟币ICO"等非法行为
虚拟币市场行为不受监管要求和控制,投资交易需谨慎,仅供学习区块链知识