Contracts

我可以探勘非最終交易嗎?

  • April 20, 2014

我知道非最終交易(未來的鎖定時間和序列號 < MAX_UINT)不會“被礦工接受”。但是,我無法弄清楚確切的行為。

如果我用非最終交易開采了自己的區塊,該區塊是否會被視為有效,即客戶是否會將其添加到他們的鏈副本中,而其他礦工是否會在該區塊之上建構?(我想答案是“不”,否則可能會攻擊合約。)

否。在參考客戶端中,main.cpp 在“AcceptBlock”期間執行此檢查:

   // Check that all transactions are finalized
   BOOST_FOREACH(const CTransaction& tx, block.vtx)
       if (!IsFinalTx(tx, nHeight, block.GetBlockTime()))
           return state.DoS(10, error("AcceptBlock() : contains a non-final transaction"),
                            REJECT_INVALID, "bad-txns-nonfinal");

如果它包含非最終交易,它將拒絕您的塊。一個客戶端接受一個塊,該塊包含一個具有未來鎖定時間且序列號小於std::numeric_limits&lt;unsigned int&gt;::max()分叉失敗方的交易。

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