Go to the documentation of this file.
17 #ifndef USGOV_1889feb46c109de0a04e33395e575f90dccd36322bcf52a8e6c93042928b612a
18 #define USGOV_1889feb46c109de0a04e33395e575f90dccd36322bcf52a8e6c93042928b612a
31 #include <unordered_set>
32 #include <unordered_map>
43 namespace us {
namespace gov {
59 friend struct test::auth_app;
64 #ifdef CFG_PERMISSIONED_NETWORK
65 static pub_t node_master_pubkey;
81 void dump(ostream&os)
const;
96 void to_stream(ostream& os)
const override;
99 struct merger:map<hash_t,engine::majority_merger<account_t>> {
112 bool allow(uint32_t ip_addr);
113 void rm(uint32_t ip_addr);
137 struct counters_t final {
138 uint32_t basic_auth_completed{0};
139 uint32_t not_authorized{0};
140 uint32_t invalid_net_address{0};
141 uint32_t sysop_connections{0};
142 uint32_t node_connections{0};
143 uint32_t out_connections{0};
144 uint32_t hall_connections{0};
146 void dump(ostream&os)
const;
148 static counters_t counters;
157 string name()
const override {
return "auth::app::node_address"; }
159 void dump(
const string& prefix, ostream&)
const;
167 constexpr
static const char* name={
"auth"};
168 static constexpr
int id() {
return 20; }
176 int get_id()
const override {
return id(); }
197 #ifdef CFG_PERMISSIONLESS_NETWORK
198 void add_growth_transactions(
unsigned int seed);
199 void layoff(
nodes_t& n, uint16_t cut);
202 #ifdef CFG_PERMISSIONED_NETWORK
203 bool process(
const acl_tx&);
void hash_data_to_sign(crypto::ec::sigmsg_hasher_t &) const override
void to_stream(ostream &os) const
pubkey_t pubkey
Definition: signed_data.h:51
void update(const nodes_t &)
crypto::ripemd160 hasher_t
Definition: app.h:44
bool process(const evidence &) override
void save_db(ostream &) const override
string ref
Definition: install_script_response.h:52
bool account_state(const local_delta &, const hash_t &pubkeyh, uint32_t &netaddr, uint16_t &port, peer_t::stage_t &stage) const
local_delta(const local_delta &)
void rm(uint32_t ip_addr)
Definition: auth_app.cpp:679
mutex mx_pool
Definition: auth_app.h:218
void dump(ostream &os) const
nodes_t hall
Definition: auth_app.h:84
app(pub_t &, engine::daemon &)
uint16_t pport
Definition: auth_app.h:164
void hash_data(crypto::ripemd160 &) const override
bool allow(uint32_t ip_addr)
Definition: auth_app.cpp:664
peer_t::stage_t get_stage(const hash_t &) const
Definition: auth_app.cpp:758
hasher_t::value_type hash_t
Definition: app.h:55
string response
Definition: install_script_response.h:51
bool lookup_node(const hash_t &p, ostream &os) const
Definition: auth_app.h:57
Definition: install_script_response.h:32
#define AUTOMATIC_UPDATES_PUBKEY
Definition: config.h:15
static unsigned int get_seed()
void import(const nodes_t &src, nodes_t &dst)
Definition: auth_app.cpp:689
size_t operator()(const us::gov::sys::app::local_delta &) const
Definition: app.cpp:36
uint16_t decode_sequence() const
void finalize(unsigned char hash[output_size])
delta()
Definition: auth_app.h:90
engine::app b
Definition: auth_app.h:58
@ out
Definition: peer_t.h:32
void write(const unsigned char *data, size_t len)
Definition: auth_app.h:151
nodes_t & nodes
Definition: auth_app.h:131
bool send_response__gov_engine_nodes(peer_t *c, socket::datagram *d)
db_t db
Definition: auth_app.h:215
engine::evidence evidence
Definition: app.h:57
void from_stream_prev(istream &is) override
relay::peer_t peer_t
Definition: daemon.h:31
nodes_t nodes
Definition: auth_app.h:83
Definition: ripemd160.h:38
Definition: auth_app.h:118
#define unlikely(x)
Definition: likely.h:30
void to_stream(ostream &os) const
bool process_query(peer_t *, datagram *) override
keys::pub_t pubkey_t
Definition: app.h:53
void from_stream(istream &os)
uint8_t eid
Definition: evidence.h:56
void from_stream(istream &os)
bool send_response__gov_engine_lookup_node(peer_t *c, socket::datagram *d)
void dump_random_nodes(size_t num, ostream &os) const
bool account_state(const nodes_t &, const hash_t &pubkeyh, uint32_t &netaddr, uint16_t &port) const
string script
Definition: install_script.h:56
string get_name() const override
Definition: auth_app.h:175
networking peerd
Definition: daemon.h:295
void dump(const string &prefix, ostream &) const
Definition: auth_app.h:70
mutex & mx_nodes
Definition: auth_app.h:130
void process(const node_address &)
local_delta * pool
Definition: auth_app.h:217
Definition: tuple.java:19
static delta * from_stream(istream &is)
pub_t::hash_t hash_t
Definition: auth_app.h:54
Definition: auth_app.h:39
void collect_as_wallet_endpoints(vector< tuple< hash_t, uint32_t, uint16_t >> &) const
static delta * from_stream_prev(istream &is)
engine::peer_t::stage_t stage
Definition: auth_app.h:161
Definition: datagram.h:44
static constexpr int id()
Definition: app.h:322
static const char * KO_73291
Definition: auth_app.h:62
stage_t
Definition: peer_t.h:29
static String version()
Definition: vcs.java:39
static unsigned char max_nodes_per_ip
Definition: auth_app.h:111
id::daemon daemon
Definition: daemon.h:25
db_t(nodes_t &n, mutex &mn, nodes_t &h, mutex &mh)
Definition: auth_app.h:119
static delta * from_stream(istream &is)
void basic_auth_completed(peer_t *p, uint16_t rpport)
delta(const delta &)=delete
bool load_db(istream &is) override
static const char * KO_78101
Definition: auth_app.h:61
@ hall
Definition: peer_t.h:33
void dump(ostream &) const
uint16_t service
Definition: datagram.h:200
constexpr static array< const char *, num_stages > stagestr
Definition: peer_t.h:38
uint32_t net_addr
Definition: auth_app.h:163
static constexpr int id()
Definition: auth_app.h:168
peer::daemon::pub_t pub_t
Definition: auth_app.h:53
void to_streamx(ostream &) const
Definition: auth_app.h:87
nodes_t & hall
Definition: auth_app.h:133
void end_merge(nodes_t &, uint16_t seen)
static constexpr int id()
Definition: app.h:200
static final int gov_engine_lookup_node
Definition: protocol.java:67
@ unknown
Definition: peer_t.h:30
void merge(const nodes_t &)
bool shell_command(istream &, ostream &) override
void from_stream(istream &is) override
void dump(ostream &os) const
engine::evidence b
Definition: auth_app.h:152
Definition: auth_app.h:99
peer_t::stage_t cache_my_stage
Definition: auth_app.h:219
engine::app::delta b
Definition: auth_app.h:88
static delta * from_stream_prev(istream &is)
ripemd160 hasher_t
Definition: app.h:54
Definition: ripemd160.h:34
bool is_node() const
Definition: auth_app.h:191
static bool validate_payload(const string &payload)
static void from_stream(acl_tx &, istream &)
node_address(peer_t::stage_t stage, const hash_t &pkh, uint32_t net_addr, uint16_t pport)
Definition: auth_app.h:110
peer::daemon::account_t account_t
Definition: auth_app.h:68
peer::daemon::keys keys
Definition: auth_app.h:52
Definition: client.cpp:417
static constexpr ko ok
Definition: ko.h:28
const pub_t & node_pubkey
Definition: auth_app.h:214
us::gov::engine::auth::app c
Definition: auth_app.cpp:33
bool load_db_prev(istream &is) override
#define NODEMASTER_PUBKEY
Definition: config.h:16
#define CFG_MAX_NODES
Definition: config.h:35
bool account_state(const hash_t &pubkeyh, uint32_t &netaddr, uint16_t &port, peer_t::stage_t &stage) const
static delta * from_stream_prev(istream &is)
static final int gov_engine_nodes
Definition: protocol.java:66
#define likely(x)
Definition: likely.h:29
peer_t::stage_t my_stage() const
ko parse(vector< t > &content) const
Definition: datagram.h:170
int app_id() const override
nodes_t hall
Definition: auth_app.h:104
void write_pretty(ostream &os) const override
engine::app::local_delta * create_local_delta() override
static evidence * evidence_from_stream(uint8_t evid, istream &)
us::gov::engine::app c
Definition: app.cpp:26
~delta() override
Definition: auth_app.h:91
const keys & get_keys() const
const hash_t & hash() const
Definition: ec.cpp:105
daemon & demon
Definition: app.h:101
uint64_t merge(engine::app::local_delta *other0) override
ripemd160::value_type hash() const
void end_merge() override
void write(const vector< unsigned char > &)
mutex & mx_hall
Definition: auth_app.h:132
peer::daemon::nodes_t nodes_t
Definition: auth_app.h:55
string name() const override
Definition: auth_app.h:157
Definition: protocol.cs:20
void hash(hasher_t &) const
pubkey_t::hash_t pubkeyh_t
Definition: diff.h:41
void to_stream(ostream &os) const override
Definition: auth_app.cpp:636
hash_t pkh
Definition: auth_app.h:162
static delta * from_stream(istream &is)
Definition: evidence.h:31
Definition: auth_app.h:49
#define LAYOFF_DAYS
Definition: config.h:21
void dump_as_seeds(ostream &) const
Definition: install_script.h:32
bool verify(ostream &os) const override
size_t operator()(const us::gov::engine::auth::app::account_t &) const noexcept
merger hall_merger
Definition: auth_app.h:107
const hash_t & get_hash() const
nodes_t nodes
Definition: auth_app.h:103
void from_stream_prev(istream &os)
#define log
Definition: gov.h:83
#define logdump
Definition: gov.h:84
hash_t compute_hash() const override
static string ip4_decode(uint32_t addr)
collusion_control_t collusion_control
Definition: auth_app.h:213
merger nodes_merger
Definition: auth_app.h:106
@ node
Definition: peer_t.h:34
void to_stream(ostream &os) const override
int get_id() const override
Definition: auth_app.h:176