Transactions

我可以在確認之前花掉寄給自己的硬幣嗎?

  • August 1, 2012

如果我將錢包中的全部餘額花到我自己錢包中的另一個地址,我是否需要等到它得到一個確認才能使用它,或者客戶是否知道這是我自己的資金並且可以使用?

這可以通過 RPC來完成,但這個問題是專門指為此使用 bitcoin-qt 客戶端。

是的。與其他交易不同,您無需等待確認。

從選擇用於資助交易的程式碼中src/wallet.cpp

bool CWallet::SelectCoins(int64 nTargetValue, [...])
{
   vector<COutput> vCoins;
   AvailableCoins(vCoins);

   return (SelectCoinsMinConf(nTargetValue, 1, 6, vCoins, setCoinsRet, nValueRet) ||
           SelectCoinsMinConf(nTargetValue, 1, 1, vCoins, setCoinsRet, nValueRet) ||
           SelectCoinsMinConf(nTargetValue, 0, 1, vCoins, setCoinsRet, nValueRet));
}

其中SelectCoinsMinConf的第二個和第三個參數分別是“一枚硬幣來自我的確認次數”和“一枚硬幣來自其他人的確認次數”:

bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfTheirs, [...])
{
   [...]
}

所以發生的事情是程式碼首先嘗試僅使用您發送給自己的至少有 1 個確認的硬幣和來自其他人的至少有 6 個確認的硬幣來為交易提供資金。如果它無法以這種方式找到足夠的東西,它會再次嘗試,但只需要對硬幣進行 1 次確認,無論它們來自哪裡。如果這也失敗了,它會放寬對您發送給自己的硬幣的確認要求。

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