Transactions

如何檢測 ETH 存入 Ether 地址?

  • February 11, 2018

我希望能夠以程式方式檢測 ETH 存款,以便在我的應用程序中將其作為付款處理。

我一直在研究 etherscan.io API,我發現檢測傳入事務的唯一方法是執行 cron 作業並不斷監控事務列表。

有沒有更好的辦法?

聽起來你不是從最佳角度接近這個。Etherscan 只是一個監控整個網路的 Web 服務——依賴它來進行諸如事務處理之類的事情遠非與區塊鏈互動的最理想方式。

乙太坊是一個分佈式網路,這意味著任何人都可以執行一個節點來查看 Etherscan 獲取的數據。實際上,這意味著您需要執行GethParity(或其他一些節點)來查看整個鏈。你從 geth 或 parity 中得到什麼?JSON-RPC API 。

大多數時候,當人們使用區塊鏈實施支付系統時,他們會為每個客戶交易生成一個唯一的地址和私鑰。這使您可以確保一位客戶只為一位客戶的帳戶付款,並使您的生活變得更加簡單。eth_getbalance JSON -RPC 端點可以告訴您地址有餘額。如果您為每個客戶生成了一個唯一的地址,您可以重複查詢您的本地 JSON-RPC API 以獲取您發布給他們的地址的餘額。當該地址的餘額與您設定的價格相符時,您就知道交易已經完成。大多數公司在包含你的交易之後等待給定數量的“確認”,也就是網路上的新區塊。

這是最幼稚的方法,但它向您展示了前進所需的技術。簡而言之:

  1. 執行你自己的節點。
  2. 使用 JSON-RPC API 根據客戶的唯一地址查詢您自己的節點以進行交易。
  3. 在給定數量的新塊之後,驗證地址是否具有您期望的金額(此時您的交易已完成)。

您可以通過偵聽新塊、查看其他事件等來改進這一點。JSON-RPC 介面也很粗糙,但在它之上存在一些 API,可以讓您更輕鬆地查詢它。例如,查看web3.js

引用自:https://ethereum.stackexchange.com/questions/39275