Wallet

在網頁上主動顯示錢包資金 - 如何?

  • April 15, 2021

我正在從事一個項目,人們可以在比特幣或乙太坊中為該項目做出貢獻。對於每一個,我都需要一種能夠在每種貨幣的錢包中顯示活動餘額的方法。類似這樣的東西:

您已選擇向項目貢獻 BTC。謝謝你。非常歡迎您的貢獻。請將您的 BTC 發送至 123abc456def。該錢包目前包含 X 個比特幣,而 Y 已被捐贈,捐贈的資金已用於以下目的。

並且每次該人訪問該頁面時,X 和 Y 都會在那個時刻反映該錢包。我真的不想為此執行區塊鏈的完整副本。我已經用一個 4GB 修剪過的數據庫執行了 bitcoind,我希望這已經足夠了。

我需要在 PHP 中完成所有這些工作。是否有一個好的 PHP 工具包/庫/我可以用來呼叫資訊的任何東西?

謝謝!

我已經用一個 4GB 修剪過的數據庫執行了 bitcoind,我希望這已經足夠了。

它是!通過執行 bitcoin-core,您可以以一種簡單、無需信任的方式提取這些數據。

我建議在每次收到新捐款時為您的顧客創建並顯示一個新地址(以避免地址重複使用,這會損害您的隱私,也許更重要的是您的顧客的隱私),否則您應該能夠毫無問題地完成你的目標。你也許可以看看像btcpayserver這樣的東西來幫助你網站上的支付流程自動化。

這是一個一般的工作流程:

  1. 使用您選擇的錢包生成將用於接收資金的私鑰(理想情況下,這將在離線環境中完成)
  2. 將源自您在第一步中生成的密鑰的地址導入比特幣核心。您可以使用bitcoin-cli importaddress來完成此步驟。請注意,如果地址是全新的,並且您確定它以前從未收到過資金,那麼您可以設置rescanfalse,以節省相當多的計算時間。
  3. 使用該命令bitcoin-cli listunspent返回鎖定到錢包正在監視的地址的 UTXO 列表。您可以選擇按地址過濾返回的資訊,bitcoin-cli help listunspent有關詳細資訊,請參閱。
  4. (或者,您可以使用bitcoin-cli getreceivedbyaddress,如果您重複使用單個接收地址,這可能會更容易)
  5. 從那裡,您只需要解析返回的 JSON 數據,並總結相關的地址餘額,即可顯示在您的網頁上。

您希望顯示的餘額特定於查看頁面的使用者,還是所有使用者貢獻的總餘額?

前者需要更多的工作,後者非常簡單。

您可以使用類似 blockstream API 的東西,通過 PHP 中的 cURL 呼叫

<https://blockstream.info/api/address/AddressHere>

“chain_stats”包含確認交易的資訊,可用於計算地址餘額

引用自:https://bitcoin.stackexchange.com/questions/105410