Wallet
在網頁上主動顯示錢包資金 - 如何?
我正在從事一個項目,人們可以在比特幣或乙太坊中為該項目做出貢獻。對於每一個,我都需要一種能夠在每種貨幣的錢包中顯示活動餘額的方法。類似這樣的東西:
您已選擇向項目貢獻 BTC。謝謝你。非常歡迎您的貢獻。請將您的 BTC 發送至 123abc456def。該錢包目前包含 X 個比特幣,而 Y 已被捐贈,捐贈的資金已用於以下目的。
並且每次該人訪問該頁面時,X 和 Y 都會在那個時刻反映該錢包。我真的不想為此執行區塊鏈的完整副本。我已經用一個 4GB 修剪過的數據庫執行了 bitcoind,我希望這已經足夠了。
我需要在 PHP 中完成所有這些工作。是否有一個好的 PHP 工具包/庫/我可以用來呼叫資訊的任何東西?
謝謝!
我已經用一個 4GB 修剪過的數據庫執行了 bitcoind,我希望這已經足夠了。
它是!通過執行 bitcoin-core,您可以以一種簡單、無需信任的方式提取這些數據。
我建議在每次收到新捐款時為您的顧客創建並顯示一個新地址(以避免地址重複使用,這會損害您的隱私,也許更重要的是您的顧客的隱私),否則您應該能夠毫無問題地完成你的目標。你也許可以看看像btcpayserver這樣的東西來幫助你網站上的支付流程自動化。
這是一個一般的工作流程:
- 使用您選擇的錢包生成將用於接收資金的私鑰(理想情況下,這將在離線環境中完成)
- 將源自您在第一步中生成的密鑰的地址導入比特幣核心。您可以使用
bitcoin-cli importaddress
來完成此步驟。請注意,如果地址是全新的,並且您確定它以前從未收到過資金,那麼您可以設置rescan
為false
,以節省相當多的計算時間。- 使用該命令
bitcoin-cli listunspent
返回鎖定到錢包正在監視的地址的 UTXO 列表。您可以選擇按地址過濾返回的資訊,bitcoin-cli help listunspent
有關詳細資訊,請參閱。- (或者,您可以使用
bitcoin-cli getreceivedbyaddress
,如果您重複使用單個接收地址,這可能會更容易)- 從那裡,您只需要解析返回的 JSON 數據,並總結相關的地址餘額,即可顯示在您的網頁上。
您希望顯示的餘額特定於查看頁面的使用者,還是所有使用者貢獻的總餘額?
前者需要更多的工作,後者非常簡單。
您可以使用類似 blockstream API 的東西,通過 PHP 中的 cURL 呼叫
<https://blockstream.info/api/address/AddressHere>
“chain_stats”包含確認交易的資訊,可用於計算地址餘額