/ src / consensus / consensus.h
consensus.h
 1  // Copyright (c) 2009-2010 Satoshi Nakamoto
 2  // Copyright (c) 2009-2022 The Bitcoin Core developers
 3  // Distributed under the MIT software license, see the accompanying
 4  // file COPYING or http://www.opensource.org/licenses/mit-license.php.
 5  
 6  #ifndef BITCOIN_CONSENSUS_CONSENSUS_H
 7  #define BITCOIN_CONSENSUS_CONSENSUS_H
 8  
 9  #include <cstdlib>
10  #include <stdint.h>
11  
12  /** The maximum allowed size for a serialized block, in bytes (only for buffer size limits) */
13  static const unsigned int MAX_BLOCK_SERIALIZED_SIZE = 4000000;
14  /** The maximum allowed weight for a block, see BIP 141 (network rule) */
15  static const unsigned int MAX_BLOCK_WEIGHT = 4000000;
16  /** The maximum allowed number of signature check operations in a block (network rule) */
17  static const int64_t MAX_BLOCK_SIGOPS_COST = 80000;
18  /** Coinbase transaction outputs can only be spent after this number of new blocks (network rule) */
19  static const int COINBASE_MATURITY = 100;
20  
21  static const int WITNESS_SCALE_FACTOR = 4;
22  
23  static const size_t MIN_TRANSACTION_WEIGHT = WITNESS_SCALE_FACTOR * 60; // 60 is the lower bound for the size of a valid serialized CTransaction
24  static const size_t MIN_SERIALIZABLE_TRANSACTION_WEIGHT = WITNESS_SCALE_FACTOR * 10; // 10 is the lower bound for the size of a serialized CTransaction
25  
26  /** Flags for nSequence and nLockTime locks */
27  /** Interpret sequence numbers as relative lock-time constraints. */
28  static constexpr unsigned int LOCKTIME_VERIFY_SEQUENCE = (1 << 0);
29  
30  #endif // BITCOIN_CONSENSUS_CONSENSUS_H