LCOV - code coverage report
Current view: top level - src/kernel - chainstatemanager_opts.h Coverage Total Hit
Test: test_bitcoin_coverage.info Lines: 100.0 % 1 1
Test Date: 2026-07-17 06:52:43 Functions: - 0 0

            Line data    Source code
       1              : // Copyright (c) 2022-present The Bitcoin Core developers
       2              : // Distributed under the MIT software license, see the accompanying
       3              : // file COPYING or http://www.opensource.org/licenses/mit-license.php.
       4              : 
       5              : #ifndef BITCOIN_KERNEL_CHAINSTATEMANAGER_OPTS_H
       6              : #define BITCOIN_KERNEL_CHAINSTATEMANAGER_OPTS_H
       7              : 
       8              : #include <kernel/notifications_interface.h>
       9              : 
      10              : #include <arith_uint256.h>
      11              : #include <dbwrapper.h>
      12              : #include <script/sigcache.h>
      13              : #include <txdb.h>
      14              : #include <uint256.h>
      15              : #include <util/time.h>
      16              : 
      17              : #include <cstdint>
      18              : #include <functional>
      19              : #include <optional>
      20              : 
      21              : class CChainParams;
      22              : class ValidationSignals;
      23              : 
      24              : static constexpr auto DEFAULT_MAX_TIP_AGE{24h};
      25              : static constexpr int32_t DEFAULT_PREVOUTFETCH_THREADS{8};
      26              : 
      27              : namespace kernel {
      28              : 
      29              : /**
      30              :  * An options struct for `ChainstateManager`, more ergonomically referred to as
      31              :  * `ChainstateManager::Options` due to the using-declaration in
      32              :  * `ChainstateManager`.
      33              :  */
      34         2560 : struct ChainstateManagerOpts {
      35              :     const CChainParams& chainparams;
      36              :     fs::path datadir;
      37              :     std::optional<int32_t> check_block_index{};
      38              :     //! If set, it will override the minimum work we will assume exists on some valid chain.
      39              :     std::optional<arith_uint256> minimum_chain_work{};
      40              :     //! If set, it will override the block hash whose ancestors we will assume to have valid scripts without checking them.
      41              :     std::optional<uint256> assumed_valid_block{};
      42              :     //! If the tip is older than this, the node is considered to be in initial block download.
      43              :     std::chrono::seconds max_tip_age{DEFAULT_MAX_TIP_AGE};
      44              :     DBOptions coins_db{};
      45              :     CoinsViewOptions coins_view{};
      46              :     Notifications& notifications;
      47              :     ValidationSignals* signals{nullptr};
      48              :     //! Number of script check worker threads. Zero means no parallel verification.
      49              :     int worker_threads_num{0};
      50              :     //! Number of worker threads used for prefetching block input prevouts. Zero means no parallel fetching.
      51              :     int32_t prevoutfetch_threads_num{DEFAULT_PREVOUTFETCH_THREADS};
      52              :     size_t script_execution_cache_bytes{DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES};
      53              :     size_t signature_cache_bytes{DEFAULT_SIGNATURE_CACHE_BYTES};
      54              : };
      55              : 
      56              : } // namespace kernel
      57              : 
      58              : #endif // BITCOIN_KERNEL_CHAINSTATEMANAGER_OPTS_H
        

Generated by: LCOV version 2.0-1