Bitcoin ABC  0.29.2
P2P Digital Currency
options.h
Go to the documentation of this file.
1 // Copyright (c) 2022 The Bitcoin 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_SEEDER_OPTIONS_H
6 #define BITCOIN_SEEDER_OPTIONS_H
7 
8 #include <chrono>
9 #include <set>
10 #include <string>
11 
12 class ArgsManager;
13 
14 namespace seeder {
15 
16 static const int CONTINUE_EXECUTION = -1;
17 
18 static const int DEFAULT_DUMP_INTERVAL_SECONDS = 60 * 60;
19 static const int DEFAULT_NUM_THREADS = 96;
20 static const int DEFAULT_PORT = 53;
21 static const int DEFAULT_NUM_DNS_THREADS = 4;
22 static const bool DEFAULT_WIPE_BAN = false;
23 static const bool DEFAULT_WIPE_IGNORE = false;
24 static const std::string DEFAULT_EMAIL = "";
25 static const std::string DEFAULT_NAMESERVER = "";
26 static const std::string DEFAULT_HOST = "";
27 static const std::string DEFAULT_TOR_PROXY = "";
28 static const std::string DEFAULT_LISTEN_ADDRESS = "::";
29 static const std::string DEFAULT_IPV4_PROXY = "";
30 static const std::string DEFAULT_IPV6_PROXY = "";
31 
32 class CDnsSeedOpts {
33 public:
35  std::chrono::seconds dumpInterval;
36  int nThreads;
37  int nPort;
39  bool fWipeBan;
41  std::string mbox;
42  std::string ns;
43  std::string host;
44  std::string tor;
45  std::string ip_addr;
46  std::string ipv4_proxy;
47  std::string ipv6_proxy;
48  std::set<uint64_t> filter_whitelist;
49 
51  : argsManager(argsMan),
59 
60  int ParseCommandLine(int argc, const char **argv);
61 
62  void SetupSeederArgs();
63 };
64 
65 } // namespace seeder
66 
67 #endif // BITCOIN_SEEDER_OPTIONS_H
std::string ip_addr
Definition: options.h:45
std::chrono::seconds dumpInterval
Definition: options.h:35
std::string tor
Definition: options.h:44
std::string ipv4_proxy
Definition: options.h:46
std::string ns
Definition: options.h:42
int ParseCommandLine(int argc, const char **argv)
Definition: options.cpp:15
std::string host
Definition: options.h:43
std::string mbox
Definition: options.h:41
std::set< uint64_t > filter_whitelist
Definition: options.h:48
ArgsManager * argsManager
Definition: options.h:34
CDnsSeedOpts(ArgsManager *argsMan)
Definition: options.h:50
std::string ipv6_proxy
Definition: options.h:47
static const bool DEFAULT_WIPE_BAN
Definition: options.h:22
static const int CONTINUE_EXECUTION
Definition: options.h:16
static const std::string DEFAULT_IPV4_PROXY
Definition: options.h:29
static const int DEFAULT_NUM_DNS_THREADS
Definition: options.h:21
static const std::string DEFAULT_IPV6_PROXY
Definition: options.h:30
static const int DEFAULT_DUMP_INTERVAL_SECONDS
Definition: options.h:18
static const std::string DEFAULT_HOST
Definition: options.h:26
static const std::string DEFAULT_LISTEN_ADDRESS
Definition: options.h:28
static const bool DEFAULT_WIPE_IGNORE
Definition: options.h:23
static const int DEFAULT_NUM_THREADS
Definition: options.h:19
static const std::string DEFAULT_EMAIL
Definition: options.h:24
static const std::string DEFAULT_TOR_PROXY
Definition: options.h:27
static const int DEFAULT_PORT
Definition: options.h:20
static const std::string DEFAULT_NAMESERVER
Definition: options.h:25
Implement std::hash so RCUPtr can be used as a key for maps or sets.
Definition: rcu.h:257