使用 bitcoin-cli 發送或接收比特幣,無需下載完整的區塊鏈
我已經從 github 成功下載、編譯和安裝了 bitcoin-cli。
我可以使用 sendtoaddress 和 getnewaddress 方法發送或接收比特幣。
它工作得很好,我很高興在不安裝第三方軟體的情況下做到這一點(我不信任他們)
但我有一個問題:我需要在我的電腦上下載完整的區塊鏈文件(使用 bitcoind)。
有沒有辦法在我的電腦上只有 wallet.dat 文件來執行 sendtoaddress 和 getnewaddress 方法?我不想下載完整的區塊鏈文件。可能嗎 ?
分類帳錢包密鑰如何工作?這個小密鑰不包含區塊鏈的副本。它有效!
謝謝
我認為您可以使用資源管理器 API 和 rawtransactions 完成您所要求的事情,但是在使用 rawtransactions 時需要小心,因為如果您不知道自己在做什麼,您可能會損失很多硬幣(請參閱最後的註釋)。
交易由輸入和輸出組成。假設您在地址 A 上有 10 個硬幣,您可能有兩個未使用的交易輸出(您存入 10 個硬幣時的 2 個輸出),可能一個未使用的輸出有 7 個硬幣,另外 3 個硬幣(總共 10 個)。
如果你想給你的朋友1個硬幣,你可以拿3個硬幣的可用未花費交易,給你的朋友1個硬幣,1.9999個硬幣(扣除0.0001的費用)將作為“找零”退還給你。這是一個範例交易<https://chainz.cryptoid.info/btc/tx.dws?499936575.htm> 您可以看到 1 個先前的輸出,成為輸入,以及兩個結果輸出。
你的 bitcoin-cli 錢包需要完整的區塊鏈,因為你的未使用交易列表是由所有輸入和輸出構成的。但是請注意,我連結到的資源管理器也有一個 API,並且(如果您請求並被授予 API 密鑰)以下查詢將為您提供該特定地址的所有輸入;
<https://chainz.cryptoid.info/BTC/api.dws?q=unspent&key=(YOUR_API_KEY)&active=18mcGpg2e3Fj6djLxiCbdjgh3cD46VayLC>
然後,您將使用 RPC 控制台: 1/ createrawtransaction 2/ signrawtransaction 3/ sendrawtransaction
有關此主題的用法和其他有用的 CLI 命令,請參閱<https://en.bitcoin.it/wiki/Raw_Transactions> Wiki。
警告:請注意,使用 createrawtransaction 時,您必須手動計算交易費用和更改,如果您未能正確執行此操作,更改將作為費用消耗!!!
因此,現在您可以看到在沒有本地區塊鏈副本的情況下進行交易和發送交易是如何可能的(儘管非常尷尬!)。就賬本的工作方式而言,我懷疑他們在不安全的環境中執行步驟 1/createrawtransaction 和 3/sendrawtransaction,他們只是使用賬本本身執行步驟 2/signrawtransaction,因為這是私鑰的唯一點是需要的。
- 分類帳錢包之所以有效,是因為大量工作是在第三方伺服器上完成的。Ledger 桌面應用程序正在與這些伺服器通信,以獲取有關您的錢包和可用硬幣的實際資訊。
- 一般來說,你不能在不與區塊鏈互動的情況下使用錢包。核心錢包或 ,
bitcoin-cli
要求在客戶端啟用交易索引,以便錢包可以從區塊鏈中獲取餘額。- 如果你在某處執行 Bitcoin Core,你可以使用它的 RPC 介面並遠端呼叫程序。看這裡<https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29>