交易所網站如何知道所有使用者存款交易?
如果他們使用交易/錢包監聽器,他們如何在服務未執行時檢測存款交易,他們是否在每個高度獲取塊以掃描存款以避免任何失去?謝謝,
有幾種方法可以做到這一點。首先,正如上面所說的 chytrik,不執行自己的節點是危險的,但在我看來,只有當你計劃送出交易時。說到看錢包,有兩種方法。
- 主動掃描。此方法涉及詢問節點/服務對於特定地址存在哪些事務。
- 被動觸發。這通常通過要求第三方通知您已檢測到存款來完成。
在 1 的情況下,掃描每個使用過的地址可能會很昂貴,尤其是在為每筆交易創建新地址或擴展到大量使用者或錢包數量時。
在 2 的情況下,僅依賴第三方可能會很棘手。
處理此問題的最具成本效益的方法是兩者兼而有之。使用第三方進行主要通知。如果您希望在 10 分鐘的視窗內進行交易,您可以讓您的系統在第三方觸發後處理該請求,並且您可以通過詢問所有交易並解析結果來直接從節點執行“手動檢查”對於預期的交易。這將為您提供最快的響應和最低的延遲。您甚至可以只在 10 分鐘結束時發出一次節點請求,作為使交易無效之前的“最終檢查”(常見於比特幣支付服務)。
如果您正在做一些長期的事情,那麼您可以再次依靠第三方來觸發即時更新。作為備份掃描,每小時/每天/每週一次,具體取決於案例。如果它是最終使用者應用程序,則允許他們觸發掃描(當然在合理範圍內,這樣您自己的客戶就不會因為點擊“重新掃描”而受到 DoS 攻擊)。
這就是整個“信任但驗證”。沒有第三方會擁有您的鑰匙。如果您是交易所,您可能會進行掃描,但根據您的客戶群規模,為了獲得更好的使用者體驗,每 5 秒掃描數百萬個錢包是不可行的。您也可以使用多個第三方。對於交換,這些服務不會那麼昂貴。
如果打算在這些範例中成為第三方,則解析從區塊鏈到達的每個塊。當您在您的一個地址上檢測到存款時,請執行您需要做的事情。
注意:我將此形成為對交流概念的“大規模”響應。還有其他可以小規模完成的事情,例如:個人錢包和設置節點來監視地址。