Go to the documentation of this file.
17 #ifndef USGOV_5be98661b464a5d857a59dc71f31d27ce8d4c8f8f678e03cca8653a2a3372b9f
18 #define USGOV_5be98661b464a5d857a59dc71f31d27ce8d4c8f8f678e03cca8653a2a3372b9f
22 #include <unordered_map>
33 namespace us {
namespace gov {
36 using socket::datagram;
38 using crypto::ripemd160;
51 void hash_data(
ripemd160&)
const override;
52 void dump(ostream&)
const;
53 void to_stream(ostream&)
const override;
57 void save(ostream&)
const;
62 struct pow_t final:map<pubkey_t::hash_t, uint64_t> {
64 void dump(ostream&os)
const;
67 struct diff final: map<int,app::delta*> {
68 typedef map<int,app::delta*>
b;
74 ~diff() {
for (
auto& i:*
this)
delete i.second; }
86 mutable bool h{
false};
uint64_t id
Definition: diff.h:59
static delta * create(int id)
crypto::ec::keys keys
Definition: diff.h:39
pubkey_t pubkey
Definition: signed_data.h:51
local_deltas()
Definition: diff.h:47
pow_t proof_of_work
Definition: diff.h:90
void hash_data(ripemd160 &) const override
Definition: diff.cpp:43
virtual void to_stream(ostream &) const
void save(ostream &) const
Definition: diff.cpp:90
hasher_t::value_type hash_t
Definition: app.h:55
static local_delta * create_prev(int appid, istream &)
void dump(ostream &) const
void write(const unsigned char *data, size_t len)
us::gov::engine::diff c
Definition: diff.cpp:29
relay::peer_t peer_t
Definition: daemon.h:31
Definition: ripemd160.h:38
#define unlikely(x)
Definition: likely.h:30
diff()
Definition: diff.h:72
mutex mx_proof_of_work
Definition: diff.h:91
app::hash_t hash_t
Definition: diff.h:70
static constexpr char streams_version
Definition: diff.h:44
const hash_t & hash() const
static delta * create_prev(int id, istream &)
static hash_t hash(const string &)
map< int, app::delta * > b
Definition: diff.h:68
uint64_t add(int appid, app::local_delta *g)
local_deltas(const local_deltas &other)=delete
diff(const diff &)=delete
hash_t hash_cached
Definition: diff.h:85
void to_stream(ostream &) const override
Definition: diff.cpp:65
mutex mx
Definition: diff.h:89
hash_t prev
Definition: diff.h:87
virtual ~local_deltas()
Definition: diff.cpp:31
string signature
Definition: signed_data.h:52
ripemd160 hasher_t
Definition: app.h:54
Definition: ripemd160.h:34
void dump(ostream &) const
Definition: diff.cpp:51
~diff()
Definition: diff.h:74
Definition: client.cpp:417
Definition: signed_data.h:29
static local_delta * create(int id)
static void version(ostream &os)
Definition: vcs.h:36
app::hasher_t hasher_t
Definition: diff.h:69
uint64_t sum() const
Definition: diff.cpp:339
static void from_stream_prev(signed_data &, istream &)
static local_deltas * load(istream &is)
Definition: diff.cpp:76
uint64_t id
Definition: diff.h:88
void dump(ostream &os) const
Definition: diff.cpp:347
const hash_t & hash() const
Definition: ec.cpp:105
static diff * create(istream &)
void to_stream(ostream &) const
diff base
Definition: diff.h:94
void write(const vector< unsigned char > &)
static local_deltas * from_stream_prev(istream &)
Definition: diff.cpp:130
static local_deltas * from_stream(istream &)
Definition: diff.cpp:95
pubkey_t::hash_t pubkeyh_t
Definition: diff.h:41
static void from_stream(signed_data &, istream &)
keys::pub_t pubkey_t
Definition: diff.h:40
#define log
Definition: gov.h:83
void hash_data_to_sign(crypto::ec::sigmsg_hasher_t &) const override
Definition: diff.cpp:35