一筆穩定幣付款請求從 API 進來,要通過重試、queue、relayer、鏈上確認才算數,每一層都可能重複、卡住或失敗。
我想從零蓋一套企業級穩定幣結算系統,把所有設計想法和取捨寫下來:Payment Intent 狀態機與雙鍵冪等、複式記帳 ledger 與稽核日誌、Go relayer 的交易序列化與失敗任務處理、鏈上鏈下對帳、結算合約與 Permit2、批次付款,最後延伸到 EVM 之外,Solana、TON、SUI 各自需要處理什麼問題等等。
寫給在 Web3 打滾的後端工程師,重心在為什麼這樣設計,不程式碼逐行導讀。完整程式碼會放在公開 repo。
現實總是殘酷的 想像你負責一個支付系統的 API。某天凌晨,一個客戶的 server 因為網路不穩定,對同一筆 $50,000 USDC 的付款請求重送了三次。...
本日程式碼:repo tag day-02 一顆 ERC-20 穩定幣在鏈上長怎樣 一顆 ERC-20 穩定幣,本質上是一份住在合約裡的帳本。你「持有 10...
本日程式碼:repo tag day-03 昨天的測試成果無法輕易 reproduce 昨天用四隻 mock 把四類例外都列舉了,但那些 token 只存在...
本日程式碼:repo tag day-04 我們現在 devnet 上有 USDC 和 USDT、有一個有錢的 payer、有動不了錢的黑名單地址,所以可以...
本日程式碼:repo tag day-05 昨天的狀態機從 created 開始,但 created 之前其實還有「API 收到請求、決定要不要長出一筆 i...
本日程式碼:repo tag day-06 Day 4 的 Example 裡,Payment Intent pi_0001 從狀態 created 走到...
本日程式碼:repo tag day-07 昨天 Payment Intent pi_0001 已經跑到 settled,而 History 記著它走過的所...
本日程式碼:repo tag day-08 昨天帳本定義完之後,鏈下的核心三件事都齊了:狀態機、雙鍵、ledger。但到目前為止,Payment Inten...
本日程式碼:repo tag day-09 昨天的 Worker 其實已經可以同時跑好幾個:它自己沒有狀態,八個 goroutine 對同一個 Worker...
本日程式碼:repo tag day-10 昨天 pool 建起來之後,現在 N 個 worker 各領各的 job,誰先誰後都無所謂;但那 N 筆交易要上...