TARAXA
Loading...
Searching...
No Matches
app_base.hpp
Go to the documentation of this file.
1#pragma once
2
5
6#include <memory>
7
8#include "config/config.hpp"
9
10namespace taraxa {
11struct FullNodeConfig;
12class Network;
13class TransactionManager;
14class DagManager;
15class DbStorage;
16class PbftManager;
17class VoteManager;
18class PbftChain;
19class DagBlockProposer;
20class GasPricer;
21
22namespace final_chain {
23class FinalChain;
24}
25namespace pillar_chain {
27}
28
29namespace metrics {
30class MetricsService;
31}
32
33class AppBase {
34 public:
36
37 virtual ~AppBase() = default;
38
39 virtual const FullNodeConfig &getConfig() const = 0;
40 virtual std::shared_ptr<Network> getNetwork() const = 0;
41 virtual std::shared_ptr<TransactionManager> getTransactionManager() const = 0;
42 virtual std::shared_ptr<DagManager> getDagManager() const = 0;
43 virtual std::shared_ptr<DbStorage> getDB() const = 0;
44 virtual std::shared_ptr<PbftManager> getPbftManager() const = 0;
45 virtual std::shared_ptr<VoteManager> getVoteManager() const = 0;
46 virtual std::shared_ptr<PbftChain> getPbftChain() const = 0;
47 virtual std::shared_ptr<final_chain::FinalChain> getFinalChain() const = 0;
48 virtual std::shared_ptr<metrics::MetricsService> getMetrics() const = 0;
49 // used only in tests
50 virtual std::shared_ptr<DagBlockProposer> getDagBlockProposer() const = 0;
51 virtual std::shared_ptr<GasPricer> getGasPricer() const = 0;
52
54 const Secret &getSecretKey() const { return conf_.getFirstWallet().node_secret; }
56
57 virtual std::shared_ptr<pillar_chain::PillarChainManager> getPillarChainManager() const = 0;
58
59 bool isStarted() const { return started_; }
60
61 virtual void start() = 0;
62
63 protected:
64 // configuration
66
67 std::atomic_bool started_ = 0;
68 std::atomic_bool stopped_ = true;
69};
70
71} // namespace taraxa
Definition FixedHash.h:35
Definition app_base.hpp:33
virtual std::shared_ptr< GasPricer > getGasPricer() const =0
virtual std::shared_ptr< PbftChain > getPbftChain() const =0
const dev::Address & getAddress() const
Definition app_base.hpp:53
virtual std::shared_ptr< DagManager > getDagManager() const =0
virtual ~AppBase()=default
AppBase()
Definition app_base.hpp:35
const Secret & getSecretKey() const
Definition app_base.hpp:54
virtual std::shared_ptr< VoteManager > getVoteManager() const =0
vrf_wrapper::vrf_sk_t getVrfSecretKey() const
Definition app_base.hpp:55
bool isStarted() const
Definition app_base.hpp:59
virtual std::shared_ptr< pillar_chain::PillarChainManager > getPillarChainManager() const =0
FullNodeConfig conf_
Definition app_base.hpp:65
virtual std::shared_ptr< PbftManager > getPbftManager() const =0
std::atomic_bool started_
Definition app_base.hpp:67
std::atomic_bool stopped_
Definition app_base.hpp:68
virtual std::shared_ptr< DagBlockProposer > getDagBlockProposer() const =0
virtual const FullNodeConfig & getConfig() const =0
virtual std::shared_ptr< Network > getNetwork() const =0
virtual std::shared_ptr< DbStorage > getDB() const =0
virtual std::shared_ptr< final_chain::FinalChain > getFinalChain() const =0
virtual std::shared_ptr< TransactionManager > getTransactionManager() const =0
virtual std::shared_ptr< metrics::MetricsService > getMetrics() const =0
virtual void start()=0
class for metrics collecting. Registering specific metrics classes and creating prometheus server(exp...
Definition metrics_service.hpp:16
main responsibility is blocks execution in EVM, getting data from EVM state
Definition final_chain.hpp:28
PillarChainMgr class contains functionality related to pillar chain.
Definition pillar_chain_manager.hpp:31
Definition app.hpp:16
Definition config.hpp:41
const WalletConfig & getFirstWallet() const
Definition config.cpp:129
const vrf_wrapper::vrf_sk_t vrf_secret
Definition config.hpp:37
const dev::Secret node_secret
Definition config.hpp:33
const addr_t node_addr
Definition config.hpp:35