Transactions
全節點錢包的walletnotify的可擴展性如何
我正在考慮大型交易所如何處理客戶存款,似乎有兩種可用的解決方案,一種是使用外部通知 api,如 blockchain.info 的通知 api,另一種是執行完整節點並使用 walletnotify 功能。由於第一種方法帶來了對第三方服務的依賴,而且它不支持我們在開發過程中使用的測試網通知,所以我正在嘗試執行一個完整的節點。我的問題是它的可擴展性如何?假設有 10,000 個使用者,平台必須支持為一個使用者添加更多地址,比如平均每個使用者生成 10 個地址,即 100,000 個地址觀看。如果我將這 100,000 個地址作為 watch 僅添加到完整節點並啟用 walletnotify,這是處理它的好方法嗎?會不會有技術問題?
使用
walletnotify
已被證明是有效的,並且今天被許多可擴展的應用程序使用。我不會完全依賴它。walletnotify
的工作是在每次收到錢包交易時執行一個 shell 命令。這意味著數據在程序之間流動,這並不能讓我作為開發人員完全適應。畢竟,某人失去資金只需要一個錯誤。我建議不僅使用
walletnotify
,而且還要在 Y 分鐘後檢查 X 塊。您可以跟踪通過的塊,如果有任何交易未被處理walletnotify
,您的檢查交易的 cronjob 將恢復交易。您可以listsinceblock
在每次檢查交易時使用 RPC 命令並跟踪塊高度。您可以將已處理的事務儲存在某處的數據庫中。畢竟,這是一個財務應用程序,所以我認為備份檢查至關重要。