TARAXA
Loading...
Searching...
No Matches
light.hpp
Go to the documentation of this file.
2#include "logger/logger.hpp"
3#include "plugin/plugin.hpp"
4
5namespace taraxa::net {} // namespace taraxa::net
6
7namespace taraxa::plugin {
8
9class Light : public Plugin {
10 public:
11 explicit Light(std::shared_ptr<AppBase> app);
12
13 std::string name() const override { return "light"; }
14 std::string description() const override { return "Light node plugin"; }
15
16 void init(const boost::program_options::variables_map& options) override;
17 void addOptions(boost::program_options::options_description& command_line_options) override;
18
19 void start() override;
20 void shutdown() override;
21
22 void clearLightNodeHistory(bool live_cleanup = false);
23
24 private:
28 void clearHistory(PbftPeriod end_period, uint64_t dag_level_to_keep, bool live_cleanup);
29 void clearNonBlockData(PbftPeriod start, PbftPeriod end, bool live_cleanup);
30 void recreateNonBlockData(PbftPeriod last_block_number);
31 void pruneStateDb();
32
33 uint64_t getCleanupPeriod(uint64_t dag_period, std::optional<uint64_t> proposal_period) const;
34
35 static constexpr uint64_t kPeriodsToKeepNonBlockData = 1000;
36 std::shared_ptr<util::ThreadPool> cleanup_pool_ = std::make_shared<util::ThreadPool>(1);
37 uint64_t& history_;
40 std::atomic<bool> live_cleanup_in_progress_ = false;
41
43};
44
45} // namespace taraxa::plugin
Definition plugin.hpp:9
std::shared_ptr< AppBase > app() const
Definition plugin.hpp:14
Definition light.hpp:9
void init(const boost::program_options::variables_map &options) override
Definition light.cpp:16
static constexpr uint64_t kPeriodsToKeepNonBlockData
Definition light.hpp:35
void start() override
Definition light.cpp:45
void shutdown() override
Definition light.cpp:64
uint64_t getCleanupPeriod(uint64_t dag_period, std::optional< uint64_t > proposal_period) const
Definition light.cpp:66
void addOptions(boost::program_options::options_description &command_line_options) override
Definition light.cpp:39
void clearNonBlockData(PbftPeriod start, PbftPeriod end, bool live_cleanup)
Definition light.cpp:103
void recreateNonBlockData(PbftPeriod last_block_number)
Definition light.cpp:129
std::shared_ptr< util::ThreadPool > cleanup_pool_
Definition light.hpp:36
bool state_db_pruning_
Definition light.hpp:38
void clearLightNodeHistory(bool live_cleanup=false)
Definition light.cpp:70
bool live_cleanup_
Definition light.hpp:39
std::string name() const override
Definition light.hpp:13
uint64_t & history_
Definition light.hpp:37
void pruneStateDb()
Definition light.cpp:196
std::atomic< bool > live_cleanup_in_progress_
Definition light.hpp:40
void clearHistory(PbftPeriod end_period, uint64_t dag_level_to_keep, bool live_cleanup)
Clears light node history.
Definition light.cpp:155
std::string description() const override
Definition light.hpp:14
#define LOG_OBJECTS_DEFINE
Definition logger.hpp:60
Definition http_processor.hpp:11
Definition light.hpp:7
EthBlockNumber PbftPeriod
Definition types.hpp:24