Transactions
線上系統如何檢測發送到其離線(冷)錢包的硬幣?
比如說,出於安全原因,比特幣企業有一個線上錢包(又名熱錢包),裡面有足夠的硬幣用於日常運營。其餘資金在離線錢包(又名冷錢包或冷庫)中。
線上伺服器如何檢測硬幣何時發送到離線錢包?
這可以(容易嗎?)用 bitcoind 完成還是需要另一個比特幣客戶端?
技術細節可能很有趣,但我認為更重要的是商家如何實現這種功能。
從 0.10.0 版本開始,bitcoind 支持僅監視地址。
以下是發行說明中的文字:
僅手錶錢包支持
錢包現在可以跟踪進出您知道所有地址(或腳本)的錢包的交易,即使沒有私鑰也是如此。
這可用於跟踪付款,而無需在可能易受攻擊的系統上線上使用私鑰。此外,它可以幫助(手動)建構多重簽名交易,您只是其中一個簽名者。
添加了一個新的 RPC,
importaddress
它的功能類似於importprivkey
,但取而代之的是一個地址或腳本(十六進制)作為參數。使用後,記入此地址或腳本的輸出被視為已收到,消耗這些輸出的交易將被視為已發送。以下 RPC 對 watch-only 有可選支持:
getbalance
,listreceivedbyaddress
,listreceivedbyaccount
,listtransactions
,listaccounts
,listsinceblock
,gettransaction
. 有關更多資訊,請參閱這些方法的 RPC 文件。與使用相比
getrawtransaction
,這種機制不需要-txindex
,擴展性更好,與錢包的集成更好,並且兼容未來的區塊鏈剪枝功能。不過,這確實意味著所有相關地址都需要在付款前添加到錢包中。嘗試
bitcoin-cli help importaddress
(以及上面列出的其他相關命令的幫助文本)以獲取詳細資訊。