Go 語言實現開源優雅的跨平臺 USDT 收付中間件

Epusdt(全稱:Easy Payment Usdt)是一個由 Go 語言編寫的私有化部署 Usdt 支付中間件 (Trc20 網絡)。站長或開發者可以通過 Epusdt 提供的 http api 集成至任何系統,無需過多的配置,僅僅依賴 mysql 和 redis。通過它,可以實現 USDT 的在線支付和消息回調,均可在優雅和瞬間完成。私有化搭建使得無需額外的手續費和簽約費用,Usdt 代幣直接進入您的錢包。Epusdt 遵守 GPLv3 開源協議。

Epusdt 項目特點

Epusdt 前所未有的採用了 Go 語言進行開發,這意味着它可以跨平臺實現,支持 x86 和 arm 芯片架構的 win/linux 設備。下面列舉了 Epusdt 的一些主要特點:

  1. 支持私有化部署,無需擔心錢包被篡改和吞單

  2. Go 語言跨平臺實現,支持 x86 和 arm 芯片架構的 win/linux 設備

  3. 多錢包地址輪詢,提高訂單併發率

  4. 異步隊列響應,優雅及高性能

  5. 無需額外環境配置,僅運行一個編譯後二進制文件即可

  6. 支持 http api,其他系統亦可接入

  7. Telegram 機器人接入,便捷使用和支付消息快速通知

Epusdt 項目結構

Epusdt 的項目結構清晰明瞭,下面是其主要的組成部分:

Epusdt
    ├── plugins ---> (已集成的插件庫,例如dujiaoka)
    ├── src ---> (項目核心目錄)
    ├── sdk ---> (接入SDK)
    ├── sql ---> (安裝sql文件或更新sql文件)
    └── wiki ---> (知識庫)

Epusdt 教程

作爲一款開源的軟件,Epusdt 還提供了詳細的使用教程,包括寶塔運行 epusdt 教程,手動運行 epusdt 教程,開發者接入 epusdt 文檔,以及使用 PHPAPI-for-epusdt 極速接入 epusdt 的指導。

Epusdt 設計實現

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 節點。如果發現有入賬金額與待支付的金額相等。則判斷該筆訂單支付成功。

在這個過程中,開發者只需要關注自身業務邏輯,可以忽略關於區塊鏈交易的所有細節問題,大大降低了開發難度和投入的時間成本。

聲明與注意事項

Epusdt 爲開源的產品,僅用於學習交流使用,不可用於任何違反中華人民共和國 (含臺灣省) 或使用者所在地區法律法規的用途。同時項目中所涉及區塊鏈代幣均爲學習用途,作者並不贊成區塊鏈所繁衍出代幣的金融屬性,亦不鼓勵和支持任何 "挖礦","炒幣","虛擬幣 ICO" 等非法行爲。虛擬幣市場行爲不受監管要求和控制,投資交易需謹慎,僅供學習區塊鏈知識。

參考資料

[1]

assimon/epusdt: https://github.com/assimon/epusdt

[2]

寶塔運行 epusdt: https://github.com/assimon/epusdt/blob/master/wiki/BT_RUN.md

[3]

手動運行 epusdt: https://github.com/assimon/epusdt/blob/master/wiki/manual_RUN.md

[4]

開發者接入 epusdt: https://github.com/assimon/epusdt/blob/master/wiki/API.md

[5]

使用 PHPAPI-for-epusdt 極速接入 epusdt: https://github.com/BlueSkyXN/PHPAPI-for-epusdt

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/VoNCMKw5y37fy1WxEkxp0Q