34 #include "serialization/keyvalue_serialization.h"
42 #define BC_COMMANDS_POOL_BASE 2000
89 BEGIN_KV_SERIALIZE_MAP()
115 END_KV_SERIALIZE_MAP()
125 BEGIN_KV_SERIALIZE_MAP()
127 KV_SERIALIZE_VAL_POD_AS_BLOB(prunable_hash)
128 END_KV_SERIALIZE_MAP()
137 std::vector<tx_blob_entry>
txs;
138 BEGIN_KV_SERIALIZE_MAP()
139 KV_SERIALIZE_OPT(pruned,
false)
141 KV_SERIALIZE_OPT(block_weight, (uint64_t)0)
148 std::vector<blobdata> txs;
151 txs.reserve(this_ref.txs.size());
152 for (
const auto &e: this_ref.txs) txs.push_back(e.blob);
159 self.txs.reserve(txs.size());
163 END_KV_SERIALIZE_MAP()
181 BEGIN_KV_SERIALIZE_MAP()
183 KV_SERIALIZE(current_blockchain_height)
184 END_KV_SERIALIZE_MAP()
198 std::vector<blobdata>
txs;
202 BEGIN_KV_SERIALIZE_MAP()
205 KV_SERIALIZE_OPT(dandelionpp_fluff,
true)
206 END_KV_SERIALIZE_MAP()
222 BEGIN_KV_SERIALIZE_MAP()
223 KV_SERIALIZE_CONTAINER_POD_AS_BLOB(
blocks)
225 END_KV_SERIALIZE_MAP()
236 std::vector<block_complete_entry>
blocks;
240 BEGIN_KV_SERIALIZE_MAP()
242 KV_SERIALIZE_CONTAINER_POD_AS_BLOB(missed_ids)
243 KV_SERIALIZE(current_blockchain_height)
244 END_KV_SERIALIZE_MAP()
259 BEGIN_KV_SERIALIZE_MAP()
260 KV_SERIALIZE(current_height)
261 KV_SERIALIZE(cumulative_difficulty)
263 KV_SERIALIZE(cumulative_difficulty_top64)
265 KV_SERIALIZE_OPT(cumulative_difficulty_top64, (uint64_t)0)
266 KV_SERIALIZE_VAL_POD_AS_BLOB(top_id)
267 KV_SERIALIZE_OPT(top_version, (uint8_t)0)
269 END_KV_SERIALIZE_MAP()
281 BEGIN_KV_SERIALIZE_MAP()
282 KV_SERIALIZE_CONTAINER_POD_AS_BLOB(block_ids)
284 END_KV_SERIALIZE_MAP()
303 BEGIN_KV_SERIALIZE_MAP()
304 KV_SERIALIZE(start_height)
305 KV_SERIALIZE(total_height)
306 KV_SERIALIZE(cumulative_difficulty)
308 KV_SERIALIZE(cumulative_difficulty_top64)
310 KV_SERIALIZE_OPT(cumulative_difficulty_top64, (uint64_t)0)
311 KV_SERIALIZE_CONTAINER_POD_AS_BLOB(m_block_ids)
312 KV_SERIALIZE_CONTAINER_POD_AS_BLOB(m_block_weights)
313 KV_SERIALIZE(first_block)
314 END_KV_SERIALIZE_MAP()
331 BEGIN_KV_SERIALIZE_MAP()
333 KV_SERIALIZE(current_blockchain_height)
334 END_KV_SERIALIZE_MAP()
352 BEGIN_KV_SERIALIZE_MAP()
353 KV_SERIALIZE_VAL_POD_AS_BLOB(block_hash)
354 KV_SERIALIZE(current_blockchain_height)
355 KV_SERIALIZE_CONTAINER_POD_AS_BLOB(missing_tx_indices)
356 END_KV_SERIALIZE_MAP()
372 BEGIN_KV_SERIALIZE_MAP()
373 KV_SERIALIZE_CONTAINER_POD_AS_BLOB(hashes)
374 END_KV_SERIALIZE_MAP()
static void prune(MDB_env *env0, MDB_env *env1)
Definition: blockchain_prune.cpp:246
#define BC_COMMANDS_POOL_BASE
Definition: cryptonote_protocol_defs.h:42
int b
Definition: base.py:1
Definition: blocks.cpp:13
void serialize(Archive &a, std::unordered_map< h_key, hval > &x, const boost::serialization::version_type ver)
Definition: unordered_containers_boost_serialization.h:126
const
Definition: build_protob.py:9
constexpr static crypto::hash null_hash
Definition: hash.h:92
POD_CLASS hash
Definition: hash.h:48
Holds cryptonote related classes and helpers.
Definition: blockchain_db.cpp:45
std::string blobdata
Definition: blobdatatype.h:39
Definition: cryptonote_format_utils.h:44
#define true
Definition: stdbool.h:36
#define false
Definition: stdbool.h:37
Definition: cryptonote_protocol_defs.h:251
uint64_t cumulative_difficulty_top64
Definition: cryptonote_protocol_defs.h:254
uint32_t pruning_seed
Definition: cryptonote_protocol_defs.h:257
uint64_t cumulative_difficulty
Definition: cryptonote_protocol_defs.h:253
uint8_t top_version
Definition: cryptonote_protocol_defs.h:256
uint64_t current_height
Definition: cryptonote_protocol_defs.h:252
crypto::hash top_id
Definition: cryptonote_protocol_defs.h:255
Definition: cryptonote_protocol_defs.h:369
std::vector< crypto::hash > hashes
Definition: cryptonote_protocol_defs.h:370
Definition: cryptonote_protocol_defs.h:365
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:376
Definition: cryptonote_protocol_defs.h:177
uint64_t current_blockchain_height
Definition: cryptonote_protocol_defs.h:179
block_complete_entry b
Definition: cryptonote_protocol_defs.h:178
Definition: cryptonote_protocol_defs.h:173
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:186
Definition: cryptonote_protocol_defs.h:327
uint64_t current_blockchain_height
Definition: cryptonote_protocol_defs.h:329
block_complete_entry b
Definition: cryptonote_protocol_defs.h:328
Definition: cryptonote_protocol_defs.h:323
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:336
Definition: cryptonote_protocol_defs.h:197
std::string _
Definition: cryptonote_protocol_defs.h:199
bool dandelionpp_fluff
Definition: cryptonote_protocol_defs.h:200
std::vector< blobdata > txs
Definition: cryptonote_protocol_defs.h:198
Definition: cryptonote_protocol_defs.h:193
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:208
Definition: cryptonote_protocol_defs.h:277
std::list< crypto::hash > block_ids
Definition: cryptonote_protocol_defs.h:278
bool prune
Definition: cryptonote_protocol_defs.h:279
Definition: cryptonote_protocol_defs.h:273
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:286
Definition: cryptonote_protocol_defs.h:347
uint64_t current_blockchain_height
Definition: cryptonote_protocol_defs.h:349
std::vector< uint64_t > missing_tx_indices
Definition: cryptonote_protocol_defs.h:350
crypto::hash block_hash
Definition: cryptonote_protocol_defs.h:348
Definition: cryptonote_protocol_defs.h:343
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:358
Definition: cryptonote_protocol_defs.h:218
bool prune
Definition: cryptonote_protocol_defs.h:220
std::vector< crypto::hash > blocks
Definition: cryptonote_protocol_defs.h:219
Definition: cryptonote_protocol_defs.h:214
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:227
Definition: cryptonote_protocol_defs.h:294
std::vector< uint64_t > m_block_weights
Definition: cryptonote_protocol_defs.h:300
uint64_t total_height
Definition: cryptonote_protocol_defs.h:296
uint64_t cumulative_difficulty_top64
Definition: cryptonote_protocol_defs.h:298
cryptonote::blobdata first_block
Definition: cryptonote_protocol_defs.h:301
uint64_t cumulative_difficulty
Definition: cryptonote_protocol_defs.h:297
std::vector< crypto::hash > m_block_ids
Definition: cryptonote_protocol_defs.h:299
uint64_t start_height
Definition: cryptonote_protocol_defs.h:295
Definition: cryptonote_protocol_defs.h:290
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:316
Definition: cryptonote_protocol_defs.h:235
std::vector< block_complete_entry > blocks
Definition: cryptonote_protocol_defs.h:236
std::vector< crypto::hash > missed_ids
Definition: cryptonote_protocol_defs.h:237
uint64_t current_blockchain_height
Definition: cryptonote_protocol_defs.h:238
Definition: cryptonote_protocol_defs.h:231
epee::misc_utils::struct_init< request_t > request
Definition: cryptonote_protocol_defs.h:246
Definition: cryptonote_protocol_defs.h:133
uint64_t block_weight
Definition: cryptonote_protocol_defs.h:136
std::vector< tx_blob_entry > txs
Definition: cryptonote_protocol_defs.h:137
bool pruned
Definition: cryptonote_protocol_defs.h:134
blobdata block
Definition: cryptonote_protocol_defs.h:135
Definition: cryptonote_basic.h:464
Definition: cryptonote_protocol_defs.h:48
std::string connection_id
Definition: cryptonote_protocol_defs.h:81
uint32_t pruning_seed
Definition: cryptonote_protocol_defs.h:85
std::string address
Definition: cryptonote_protocol_defs.h:54
uint8_t address_type
Definition: cryptonote_protocol_defs.h:87
uint64_t recv_count
Definition: cryptonote_protocol_defs.h:63
uint64_t live_time
Definition: cryptonote_protocol_defs.h:71
uint32_t support_flags
Definition: cryptonote_protocol_defs.h:79
uint32_t rpc_credits_per_hash
Definition: cryptonote_protocol_defs.h:59
bool localhost
Definition: cryptonote_protocol_defs.h:50
std::string port
Definition: cryptonote_protocol_defs.h:57
uint64_t height
Definition: cryptonote_protocol_defs.h:83
uint64_t send_idle_time
Definition: cryptonote_protocol_defs.h:67
std::string host
Definition: cryptonote_protocol_defs.h:55
std::string ip
Definition: cryptonote_protocol_defs.h:56
uint64_t current_download
Definition: cryptonote_protocol_defs.h:74
uint64_t avg_download
Definition: cryptonote_protocol_defs.h:73
uint64_t recv_idle_time
Definition: cryptonote_protocol_defs.h:64
uint16_t rpc_port
Definition: cryptonote_protocol_defs.h:58
uint64_t send_count
Definition: cryptonote_protocol_defs.h:66
std::string state
Definition: cryptonote_protocol_defs.h:69
bool local_ip
Definition: cryptonote_protocol_defs.h:51
bool ssl
Definition: cryptonote_protocol_defs.h:52
bool incoming
Definition: cryptonote_protocol_defs.h:49
std::string peer_id
Definition: cryptonote_protocol_defs.h:61
uint64_t current_upload
Definition: cryptonote_protocol_defs.h:77
uint64_t avg_upload
Definition: cryptonote_protocol_defs.h:76
Definition: cryptonote_protocol_defs.h:122
crypto::hash prunable_hash
Definition: cryptonote_protocol_defs.h:124
blobdata blob
Definition: cryptonote_protocol_defs.h:123
Definition: blake256.h:36