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