Monero
Toggle main menu visibility
Loading...
Searching...
No Matches
src
blockchain_utilities
bootstrap_serialization.h
Go to the documentation of this file.
1
// Copyright (c) 2014-2022, The Monero Project
2
//
3
// All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without modification, are
6
// permitted provided that the following conditions are met:
7
//
8
// 1. Redistributions of source code must retain the above copyright notice, this list of
9
// conditions and the following disclaimer.
10
//
11
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
12
// of conditions and the following disclaimer in the documentation and/or other
13
// materials provided with the distribution.
14
//
15
// 3. Neither the name of the copyright holder nor the names of its contributors may be
16
// used to endorse or promote products derived from this software without specific
17
// prior written permission.
18
//
19
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
20
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
22
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
27
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
29
#pragma once
30
31
#include "
cryptonote_basic/cryptonote_boost_serialization.h
"
32
#include "
serialization/difficulty_type.h
"
33
34
35
namespace
cryptonote
36
{
37
namespace
bootstrap
38
{
39
40
struct
file_info
41
{
42
uint8_t
major_version
;
43
uint8_t
minor_version
;
44
uint32_t
header_size
;
45
46
BEGIN_SERIALIZE_OBJECT
()
47
FIELD
(
major_version
);
48
FIELD
(
minor_version
);
49
VARINT_FIELD
(
header_size
);
50
END_SERIALIZE
()
51
};
52
53
struct
blocks_info
54
{
55
// block heights of file's first and last blocks, zero-based indexes
56
uint64_t
block_first
;
57
uint64_t
block_last
;
58
59
// file position, for directly reading last block
60
uint64_t
block_last_pos
;
61
62
BEGIN_SERIALIZE_OBJECT
()
63
VARINT_FIELD
(
block_first
);
64
VARINT_FIELD
(
block_last
);
65
VARINT_FIELD
(
block_last_pos
);
66
END_SERIALIZE
()
67
};
68
69
struct
block_package_1
70
{
71
cryptonote::block
block
;
72
std::vector<transaction>
txs
;
73
size_t
block_weight
;
74
uint64_t
cumulative_difficulty
;
75
uint64_t
coins_generated
;
76
77
BEGIN_SERIALIZE
()
78
FIELD
(
block
)
79
FIELD
(
txs
)
80
VARINT_FIELD
(
block_weight
)
81
VARINT_FIELD
(
cumulative_difficulty
)
82
VARINT_FIELD
(
coins_generated
)
83
END_SERIALIZE
()
84
};
85
86
struct
block_package
87
{
88
cryptonote::block
block
;
89
std::vector<transaction>
txs
;
90
size_t
block_weight
;
91
difficulty_type
cumulative_difficulty
;
92
uint64_t
coins_generated
;
93
94
BEGIN_SERIALIZE
()
95
FIELD
(
block
)
96
FIELD
(
txs
)
97
VARINT_FIELD
(
block_weight
)
98
FIELD
(
cumulative_difficulty
)
99
VARINT_FIELD
(
coins_generated
)
100
END_SERIALIZE
()
101
};
102
103
}
104
105
}
cryptonote_boost_serialization.h
difficulty_type.h
BEGIN_SERIALIZE
#define BEGIN_SERIALIZE()
BEGIN_SERIALIZE_OBJECT
#define BEGIN_SERIALIZE_OBJECT()
FIELD
#define FIELD(f)
END_SERIALIZE
#define END_SERIALIZE()
VARINT_FIELD
#define VARINT_FIELD(f)
block_weight
Definition
block_weight.py:1
cryptonote::bootstrap
Definition
bootstrap_serialization.h:38
cryptonote
Holds cryptonote related classes and helpers.
Definition
blockchain_db.cpp:45
cryptonote::difficulty_type
boost::multiprecision::uint128_t difficulty_type
Definition
difficulty.h:41
uint32_t
unsigned int uint32_t
Definition
stdint.h:126
uint8_t
unsigned char uint8_t
Definition
stdint.h:124
uint64_t
unsigned __int64 uint64_t
Definition
stdint.h:136
cryptonote::block
Definition
cryptonote_basic.h:475
cryptonote::bootstrap::block_package_1
Definition
bootstrap_serialization.h:70
cryptonote::bootstrap::block_package_1::coins_generated
uint64_t coins_generated
Definition
bootstrap_serialization.h:75
cryptonote::bootstrap::block_package_1::block
cryptonote::block block
Definition
bootstrap_serialization.h:71
cryptonote::bootstrap::block_package_1::cumulative_difficulty
uint64_t cumulative_difficulty
Definition
bootstrap_serialization.h:74
cryptonote::bootstrap::block_package_1::txs
std::vector< transaction > txs
Definition
bootstrap_serialization.h:72
cryptonote::bootstrap::block_package
Definition
bootstrap_serialization.h:87
cryptonote::bootstrap::block_package::txs
std::vector< transaction > txs
Definition
bootstrap_serialization.h:89
cryptonote::bootstrap::block_package::block
cryptonote::block block
Definition
bootstrap_serialization.h:88
cryptonote::bootstrap::block_package::cumulative_difficulty
difficulty_type cumulative_difficulty
Definition
bootstrap_serialization.h:91
cryptonote::bootstrap::block_package::coins_generated
uint64_t coins_generated
Definition
bootstrap_serialization.h:92
cryptonote::bootstrap::blocks_info
Definition
bootstrap_serialization.h:54
cryptonote::bootstrap::blocks_info::VARINT_FIELD
VARINT_FIELD(block_first)
cryptonote::bootstrap::blocks_info::block_first
uint64_t block_first
Definition
bootstrap_serialization.h:56
cryptonote::bootstrap::blocks_info::block_last_pos
uint64_t block_last_pos
Definition
bootstrap_serialization.h:60
cryptonote::bootstrap::blocks_info::block_last
uint64_t block_last
Definition
bootstrap_serialization.h:57
cryptonote::bootstrap::file_info
Definition
bootstrap_serialization.h:41
cryptonote::bootstrap::file_info::header_size
uint32_t header_size
Definition
bootstrap_serialization.h:44
cryptonote::bootstrap::file_info::VARINT_FIELD
VARINT_FIELD(header_size)
cryptonote::bootstrap::file_info::major_version
uint8_t major_version
Definition
bootstrap_serialization.h:42
cryptonote::bootstrap::file_info::minor_version
uint8_t minor_version
Definition
bootstrap_serialization.h:43
cryptonote::bootstrap::file_info::FIELD
FIELD(major_version)
Generated on
for Monero by
1.17.0