6#ifndef ALT_INTEGRATION_VERIBLOCK_POP_STATELESS_VALIDATOR_HPP
7#define ALT_INTEGRATION_VERIBLOCK_POP_STATELESS_VALIDATOR_HPP
12#include <veriblock/pop/blockchain/alt_chain_params.hpp>
13#include <veriblock/pop/blockchain/btc_chain_params.hpp>
14#include <veriblock/pop/blockchain/vbk_chain_params.hpp>
15#include <veriblock/pop/validation_state.hpp>
17#include "veriblock/pop/third_party/thread_pool/mpmc_bounded_queue.hpp"
18#include "veriblock/pop/third_party/thread_pool/thread_pool.hpp"
21#include <veriblock/pop/third_party/thread_pool.hpp>
32using ValidationThreadPool =
33 tp::ThreadPoolImpl<tp::FixedFunction<void(), 128>, tp::MPMCBoundedQueue>;
39 PopValidator(
const VbkChainParams& vbk,
40 const BtcChainParams& btc,
41 const AltChainParams& alt,
45 void start(
size_t threads = 0);
48 template <
typename CheckType>
49 std::future<ValidationState> addCheck(
const CheckType& block);
51 const VbkChainParams& getVbkParams()
const {
return vbk_; }
52 const BtcChainParams& getBtcParams()
const {
return btc_; }
53 const AltChainParams& getAltParams()
const {
return alt_; }
60 std::shared_ptr<ValidationThreadPool> workers;
62 const VbkChainParams& vbk_;
63 const BtcChainParams& btc_;
64 const AltChainParams& alt_;