aboutsummaryrefslogtreecommitdiff
path: root/src/blockchain_utilities/bootstrap_serialization.h
diff options
context:
space:
mode:
authorwarptangent <warptangent@inbox.com>2015-05-08 14:20:32 -0700
committerwarptangent <warptangent@inbox.com>2015-05-08 14:24:51 -0700
commitac011b43126cc4dce4c3ee0c0f3e406f99a0f514 (patch)
treebff39e4cc466874cc6cbe312e7f658e595f4947b /src/blockchain_utilities/bootstrap_serialization.h
parentAdd --block-number option to blockchain_import (diff)
downloadmonero-ac011b43126cc4dce4c3ee0c0f3e406f99a0f514.tar.xz
Rename src/blockchain_converter/ to src/blockchain_utilities/
Update appropriate files (CMakeLists.txt, README.md)
Diffstat (limited to 'src/blockchain_utilities/bootstrap_serialization.h')
-rw-r--r--src/blockchain_utilities/bootstrap_serialization.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/blockchain_utilities/bootstrap_serialization.h b/src/blockchain_utilities/bootstrap_serialization.h
new file mode 100644
index 000000000..6fa949353
--- /dev/null
+++ b/src/blockchain_utilities/bootstrap_serialization.h
@@ -0,0 +1,88 @@
+// Copyright (c) 2014-2015, The Monero Project
+//
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without modification, are
+// permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this list of
+// conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice, this list
+// of conditions and the following disclaimer in the documentation and/or other
+// materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its contributors may be
+// used to endorse or promote products derived from this software without specific
+// prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#pragma once
+
+#include "cryptonote_core/cryptonote_boost_serialization.h"
+#include "cryptonote_core/difficulty.h"
+
+
+namespace cryptonote
+{
+ namespace bootstrap
+ {
+
+ struct file_info
+ {
+ uint8_t major_version;
+ uint8_t minor_version;
+ uint32_t header_size;
+
+ BEGIN_SERIALIZE_OBJECT()
+ FIELD(major_version);
+ FIELD(minor_version);
+ VARINT_FIELD(header_size);
+ END_SERIALIZE()
+ };
+
+ struct blocks_info
+ {
+ // block heights of file's first and last blocks, zero-based indexes
+ uint64_t block_first;
+ uint64_t block_last;
+
+ // file position, for directly reading last block
+ uint64_t block_last_pos;
+
+ BEGIN_SERIALIZE_OBJECT()
+ VARINT_FIELD(block_first);
+ VARINT_FIELD(block_last);
+ VARINT_FIELD(block_last_pos);
+ END_SERIALIZE()
+ };
+
+ struct block_package
+ {
+ cryptonote::block block;
+ std::vector<transaction> txs;
+ size_t block_size;
+ difficulty_type cumulative_difficulty;
+ uint64_t coins_generated;
+
+ BEGIN_SERIALIZE()
+ FIELD(block)
+ FIELD(txs)
+ VARINT_FIELD(block_size)
+ VARINT_FIELD(cumulative_difficulty)
+ VARINT_FIELD(coins_generated)
+ END_SERIALIZE()
+ };
+
+ }
+
+}