Title: Where is the limit check ? [ANSWERED, VERIFIED] Post by: ArsenShnurkov on March 18, 2011, 04:43:50 PM I am looking into CTransaction::CheckTransaction function and doesn't see the check for transaction inputs.
Testing scenario: 1) Malicious node generates and signs the block after MAX_MONEY coins was generated, 2) Malicious node includes new transaction for money generation in that block. 3) Why a correct node will not accept new coins ? This transaction will be checked with code: if (IsCoinBase()) { if (vin[0].scriptSig.size() < 2 || vin[0].scriptSig.size() > 100) return error("CTransaction::CheckTransaction() : coinbase script size"); } And this code doesn't check total amount of money function bool CBlock::CheckBlock() const doesn't contain such checks either Please explain, how the code prevents new coins after MAX_MONEY was generated. UPD: Found similar topics: http://bitcointalk.org/index.php?topic=681.0 http://bitcointalk.org/index.php?topic=2252.0 now I am checking them Title: Re: Where is the limit check ? Post by: Mike Hearn on March 18, 2011, 06:06:55 PM See line 1421 of main.cpp in CBlock::ConnectBlock
Code: if (vtx[0].GetValueOut() > GetBlockValue(pindex->nHeight, nFees)) GetBlockValue is defined as Code: int64 GetBlockValue(int nHeight, int64 nFees) |