LCOV - code coverage report
Current view: top level - src/kernel - chainstatemanager_opts.h Coverage Total Hit
Test: fuzz_coverage.info Lines: 100.0 % 1 1
Test Date: 2025-01-22 04:09:46 Functions: - 0 0

            Line data    Source code
       1              : // Copyright (c) 2022 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 bool DEFAULT_CHECKPOINTS_ENABLED{true};
      25              : static constexpr auto DEFAULT_MAX_TIP_AGE{24h};
      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        15552 : struct ChainstateManagerOpts {
      35              :     const CChainParams& chainparams;
      36              :     fs::path datadir;
      37              :     std::optional<int32_t> check_block_index{};
      38              :     bool checkpoints_enabled{DEFAULT_CHECKPOINTS_ENABLED};
      39              :     //! If set, it will override the minimum work we will assume exists on some valid chain.
      40              :     std::optional<arith_uint256> minimum_chain_work{};
      41              :     //! If set, it will override the block hash whose ancestors we will assume to have valid scripts without checking them.
      42              :     std::optional<uint256> assumed_valid_block{};
      43              :     //! If the tip is older than this, the node is considered to be in initial block download.
      44              :     std::chrono::seconds max_tip_age{DEFAULT_MAX_TIP_AGE};
      45              :     DBOptions block_tree_db{};
      46              :     DBOptions coins_db{};
      47              :     CoinsViewOptions coins_view{};
      48              :     Notifications& notifications;
      49              :     ValidationSignals* signals{nullptr};
      50              :     //! Number of script check worker threads. Zero means no parallel verification.
      51              :     int worker_threads_num{0};
      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