Go to the documentation of this file.
17 #ifndef USGOV_bf993116c1d89300316c0dd4fa2ef165d5b9128da89d33c44cfe50e95622fce8
18 #define USGOV_bf993116c1d89300316c0dd4fa2ef165d5b9128da89d33c44cfe50e95622fce8
34 #include <unordered_set>
39 namespace us {
namespace gov {
60 daemon(uint16_t port, uint16_t pport, uint8_t edges, uint8_t devices, uint8_t workers);
62 void dump(
const string& prefix, ostream&)
const;
68 ko wait_ready(
const chrono::system_clock::time_point& deadline)
const override;
72 inline void wakeup() { b::wakeup(); }
73 inline bool isup()
const {
return b::isup(); }
84 account_t(uint32_t net_address, uint16_t port, uint16_t seen);
110 void dump(
const string& prefix, ostream&)
const;
133 void add(uint32_t a, uint16_t p);
139 #ifdef CFG_TOPOLOGY_MESH
140 virtual bool wait_rnd_before_start()
const {
return true; }
173 condition_variable
cv;
175 chrono::system_clock::time_point
tlo;
176 bool force_seeds{
false};
ko add_seed_node(const pair< uint32_t, uint16_t > &)
uint8_t edges
Definition: daemon.h:167
void hash_data(crypto::ripemd160 &) const
nodes_t seed_nodes
Definition: daemon.h:165
iterator bi
Definition: daemon.h:128
void hash_data_to_sign(crypto::ec::sigmsg_hasher_t &) const
mutex mx_hall
Definition: daemon.h:163
condition_variable cv
Definition: daemon.h:173
vector< pair< uint32_t, uint16_t > > list_neighbours() const
pub_t::hash_t hash_t
Definition: daemon.h:57
bool lookup_node(const hash_t &p, ostream &os) const
bool find(const hash_t &) const
void wakeup()
Definition: daemon.h:72
void hash_data(crypto::ripemd160 &) const
void on_destroy(client &) override
Definition: ripemd160.h:38
bgtask b
Definition: daemon.h:46
void to_stream(ostream &os) const
void from_stream(istream &os)
vector< pair< uint32_t, uint16_t > > list_dev_neighbours() const
void dump_random_nodes(size_t num, ostream &os) const
void dump(ostream &) const
grid_t grid
Definition: daemon.h:168
virtual void remote_port(const crypto::ec::keys::pub_t &, uint16_t port)
Definition: daemon.h:79
Definition: tuple.java:19
grid_t grid_dev
Definition: daemon.h:177
void set_nodes(const vector< pair< hash_t, pair< uint32_t, uint16_t >>> &)
chrono::system_clock::time_point tlo
Definition: daemon.h:175
ko wait_ready(const chrono::system_clock::time_point &deadline) const override
uint16_t seen
Definition: daemon.h:100
Definition: datagram.h:44
void watch(ostream &) const
void dump(ostream &) const
mutex mx
Definition: daemon.h:132
daemon(uint16_t port, uint16_t pport, uint8_t edges, uint8_t devices, uint8_t workers)
int num_edges_minage(int secs_old) const
account_t(uint32_t net_address, uint16_t port, uint16_t seen)
hash_t index_type
Definition: daemon.h:106
socket::client * prepare_worker_send(unordered_set< const socket::client * > &visited)
bool is_active() const
Definition: daemon.h:71
uint16_t port
Definition: daemon.h:99
bool grid_connect_test(peer::peer_t *p, uint32_t netaddr, uint16_t port, ostream &os)
mutex mx_nodes
Definition: daemon.h:162
nodes_t & get_nodes()
Definition: daemon.h:158
void collect_as_wallet_endpoints(vector< tuple< hash_t, uint32_t, uint16_t >> &) const
const nodes_t & get_nodes() const
Definition: daemon.h:159
ko add_seed_node_(const pair< uint32_t, uint16_t > &)
auth::daemon b
Definition: daemon.h:52
peer::mezzanine t
Definition: daemon.h:53
account_t account_type
Definition: daemon.h:105
bool process_work(socket::peer_t *p, datagram *d) override
account_t()
Definition: daemon.h:83
void to_stream(ostream &os) const
keys::pub_t pub_t
Definition: daemon.h:56
Definition: ripemd160.h:34
void visit(const function< void(socket::client &)> &visitor)
ko add_node_(const pair< hash_t, pair< uint32_t, uint16_t >> &)
uint32_t net_address
Definition: daemon.h:98
void set_seed_nodes(const vector< pair< uint32_t, uint16_t >> &)
bool isup() const
Definition: daemon.h:73
hash_t myself
Definition: daemon.h:174
void from_stream(istream &os)
mutex mx_seed_nodes
Definition: daemon.h:166
void add(uint32_t a, uint16_t p)
client * grid_connect(uint32_t netaddr, uint16_t port)
daemon * d
Definition: daemon.h:48
void dump(const string &prefix, ostream &) const
crypto::ec::keys keys
Definition: daemon.h:55
void dump_as_seeds(ostream &) const
void from_stream_prev(istream &os)
void dump(const string &prefix, ostream &) const
faillog_t faillog
Definition: daemon.h:136
account_t(const account_t &other)
bool add(client &, bool check_unique)
grid_t()
Definition: daemon.h:119
mutex mx
Definition: daemon.h:129
void from_stream_prev(istream &os)
void grid_rotate(nodes_t &)
void dump_as_seeds(ostream &) const
nodes_t nodes
Definition: daemon.h:170
socket::client client
Definition: daemon.h:54
void hash_data_to_sign(crypto::ec::sigmsg_hasher_t &) const
nodes_t hall
Definition: daemon.h:164
void dump(ostream &os) const
static ko check(const hash_t &id, const account_t &)