Initial commit
This commit is contained in:
parent
198323aaf2
commit
e399973550
180 changed files with 238 additions and 426 deletions
|
@ -43,4 +43,6 @@ add_dependencies(simplewallet version)
|
|||
|
||||
set_property(TARGET common crypto cryptonote_core rpc wallet PROPERTY FOLDER "libs")
|
||||
set_property(TARGET daemon simplewallet connectivity_tool simpleminer PROPERTY FOLDER "prog")
|
||||
set_property(TARGET daemon PROPERTY OUTPUT_NAME "bytecoind")
|
||||
#TODO Specify the name of daemon for your currency
|
||||
#set_property(TARGET daemon PROPERTY OUTPUT_NAME "cryptonoted")
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
@ -8,8 +8,10 @@
|
|||
#define CRYPTONOTE_MAX_BLOCK_SIZE 500000000 // block header blob limit, never used!
|
||||
#define CRYPTONOTE_MAX_TX_SIZE 1000000000
|
||||
#define CRYPTONOTE_PUBLIC_ADDRESS_TEXTBLOB_VER 0
|
||||
#define CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX 6 // addresses start with "2"
|
||||
#define CRYPTONOTE_MINED_MONEY_UNLOCK_WINDOW 10
|
||||
//TODO Define the first letter of your currency address
|
||||
#define CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX
|
||||
//TODO Choose maturity period for your currency
|
||||
#define CRYPTONOTE_MINED_MONEY_UNLOCK_WINDOW
|
||||
#define CURRENT_TRANSACTION_VERSION 1
|
||||
#define CURRENT_BLOCK_MAJOR_VERSION 1
|
||||
#define CURRENT_BLOCK_MINOR_VERSION 0
|
||||
|
@ -17,22 +19,26 @@
|
|||
|
||||
#define BLOCKCHAIN_TIMESTAMP_CHECK_WINDOW 60
|
||||
|
||||
// MONEY_SUPPLY - total number coins to be generated
|
||||
#define MONEY_SUPPLY ((uint64_t)(-1))
|
||||
//TODO Specify total number of available coins
|
||||
//TODO ((uint64_t)(-1)) equals to 18446744073709551616 coins
|
||||
//TODO or you can define number explicitly UINT64_C(858986905600000000)
|
||||
#define MONEY_SUPPLY
|
||||
#define EMISSION_SPEED_FACTOR (18)
|
||||
|
||||
#define CRYPTONOTE_REWARD_BLOCKS_WINDOW 100
|
||||
#define CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE 10000 //size of block (bytes) after which reward for block calculated using block size
|
||||
#define CRYPTONOTE_COINBASE_BLOB_RESERVED_SIZE 600
|
||||
#define CRYPTONOTE_DISPLAY_DECIMAL_POINT 8
|
||||
// COIN - number of smallest units in one coin
|
||||
#define COIN ((uint64_t)100000000) // pow(10, 8)
|
||||
#define DEFAULT_FEE ((uint64_t)1000000) // pow(10, 6)
|
||||
|
||||
//TODO Define number of smallest units in one coin
|
||||
#define COIN
|
||||
//TODO Define default fee for transactions
|
||||
#define DEFAULT_FEE
|
||||
|
||||
//TODO There are options to tune CryptoNote's difficulty retargeting function.
|
||||
//TODO We recommend not to change it.
|
||||
#define DIFFICULTY_TARGET 120 // seconds
|
||||
#define DIFFICULTY_WINDOW 720 // blocks
|
||||
#define DIFFICULTY_LAG 15 // !!!
|
||||
#define DIFFICULTY_LAG 15
|
||||
#define DIFFICULTY_CUT 60 // timestamps to cut after sorting
|
||||
#define DIFFICULTY_BLOCKS_COUNT DIFFICULTY_WINDOW + DIFFICULTY_LAG
|
||||
|
||||
|
@ -41,16 +47,17 @@
|
|||
#define CRYPTONOTE_LOCKED_TX_ALLOWED_DELTA_BLOCKS 1
|
||||
|
||||
|
||||
#define DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN DIFFICULTY_TARGET //just alias
|
||||
#define DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN DIFFICULTY_TARGET
|
||||
|
||||
|
||||
#define BLOCKS_IDS_SYNCHRONIZING_DEFAULT_COUNT 10000 //by default, blocks ids count in synchronizing
|
||||
#define BLOCKS_SYNCHRONIZING_DEFAULT_COUNT 200 //by default, blocks count in blocks downloading
|
||||
#define CRYPTONOTE_PROTOCOL_HOP_RELAX_COUNT 3 //value of hop, after which we use only announce of new block
|
||||
|
||||
|
||||
#define P2P_DEFAULT_PORT 8080
|
||||
#define RPC_DEFAULT_PORT 8081
|
||||
//TODO This port will be used by the daemon to establish connections with p2p network
|
||||
#define P2P_DEFAULT_PORT
|
||||
//TODO This port will be used by the daemon to interact with simlewallet
|
||||
#define RPC_DEFAULT_PORT
|
||||
#define COMMAND_RPC_GET_BLOCKS_FAST_MAX_COUNT 1000
|
||||
|
||||
#define P2P_LOCAL_WHITE_PEERLIST_LIMIT 1000
|
||||
|
@ -69,10 +76,12 @@
|
|||
|
||||
#define ALLOW_DEBUG_COMMANDS
|
||||
|
||||
#define CRYPTONOTE_NAME "bytecoin"
|
||||
//TODO Put here the name of your currency
|
||||
#define CRYPTONOTE_NAME
|
||||
#define CRYPTONOTE_BLOCKS_FILENAME "blocks.dat"
|
||||
#define CRYPTONOTE_BLOCKINDEXES_FILENAME "blockindexes.dat"
|
||||
#define CRYPTONOTE_BLOCKSCACHE_FILENAME "blockscache.dat"
|
||||
#define CRYPTONOTE_POOLDATA_FILENAME "poolstate.bin"
|
||||
#define CRYPTONOTE_BLOCKCHAINDATA_FILENAME "blockchain.bin"
|
||||
#define CRYPTONOTE_BLOCKCHAINDATA_TEMP_FILENAME "blockchain.bin.tmp"
|
||||
#define P2P_NET_DATA_FILENAME "p2pstate.bin"
|
||||
#define MINER_CONFIG_FILE_NAME "miner_conf.json"
|
||||
|
||||
|
|
|
@ -1 +1,5 @@
|
|||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#include "SwappedMap.h"
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
|
|
|
@ -1 +1,5 @@
|
|||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#include "SwappedVector.h"
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
206
src/cryptonote_core/blockchain_storage.cpp
Normal file → Executable file
206
src/cryptonote_core/blockchain_storage.cpp
Normal file → Executable file
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
@ -17,18 +17,6 @@
|
|||
#include "file_io_utils.h"
|
||||
#include "common/boost_serialization_helper.h"
|
||||
|
||||
//namespace {
|
||||
// std::string hashHex(const crypto::hash& hash) {
|
||||
// std::string result;
|
||||
// for (size_t i = 0; i < crypto::HASH_SIZE; ++i) {
|
||||
// result += "0123456789ABCDEF"[static_cast<uint8_t>(hash.data[i]) >> 4];
|
||||
// result += "0123456789ABCDEF"[static_cast<uint8_t>(hash.data[i]) & 15];
|
||||
// }
|
||||
//
|
||||
// return result;
|
||||
// }
|
||||
//}
|
||||
|
||||
namespace {
|
||||
std::string appendPath(const std::string& path, const std::string& fileName) {
|
||||
std::string result = path;
|
||||
|
@ -61,8 +49,6 @@ namespace cryptonote {
|
|||
uint64_t m_keeper_block_height;
|
||||
size_t m_blob_size;
|
||||
std::vector<uint64_t> m_global_output_indexes;
|
||||
|
||||
template<class archive_t> void serialize(archive_t & ar, unsigned int version);
|
||||
};
|
||||
|
||||
struct block_extended_info {
|
||||
|
@ -71,37 +57,7 @@ namespace cryptonote {
|
|||
size_t block_cumulative_size;
|
||||
difficulty_type cumulative_difficulty;
|
||||
uint64_t already_generated_coins;
|
||||
|
||||
template<class archive_t> void serialize(archive_t & ar, unsigned int version);
|
||||
};
|
||||
|
||||
template<class archive_t> void transaction_chain_entry::serialize(archive_t & ar, unsigned int version) {
|
||||
ar & tx;
|
||||
ar & m_keeper_block_height;
|
||||
ar & m_blob_size;
|
||||
ar & m_global_output_indexes;
|
||||
}
|
||||
|
||||
template<class archive_t> void block_extended_info::serialize(archive_t & ar, unsigned int version) {
|
||||
ar & bl;
|
||||
ar & height;
|
||||
ar & cumulative_difficulty;
|
||||
ar & block_cumulative_size;
|
||||
ar & already_generated_coins;
|
||||
}
|
||||
}
|
||||
|
||||
template<class Archive> void cryptonote::blockchain_storage::Transaction::serialize(Archive& archive, unsigned int version) {
|
||||
archive & tx;
|
||||
}
|
||||
|
||||
template<class Archive> void cryptonote::blockchain_storage::Block::serialize(Archive& archive, unsigned int version) {
|
||||
archive & bl;
|
||||
archive & height;
|
||||
archive & block_cumulative_size;
|
||||
archive & cumulative_difficulty;
|
||||
archive & already_generated_coins;
|
||||
archive & transactions;
|
||||
}
|
||||
|
||||
template<class Archive> void cryptonote::blockchain_storage::TransactionIndex::serialize(Archive& archive, unsigned int version) {
|
||||
|
@ -109,87 +65,6 @@ template<class Archive> void cryptonote::blockchain_storage::TransactionIndex::s
|
|||
archive & transaction;
|
||||
}
|
||||
|
||||
namespace cryptonote {
|
||||
#define CURRENT_BLOCKCHAIN_STORAGE_ARCHIVE_VER 13
|
||||
|
||||
template<class archive_t> void blockchain_storage::serialize(archive_t & ar, const unsigned int version) {
|
||||
CRITICAL_REGION_LOCAL(m_blockchain_lock);
|
||||
if (version < 12) {
|
||||
LOG_PRINT_L0("Detected blockchain of unsupported version, migration is not possible.");
|
||||
return;
|
||||
}
|
||||
|
||||
LOG_PRINT_L0("Blockchain of previous version detected, migrating. This may take several minutes, please be patient...");
|
||||
|
||||
std::vector<block_extended_info> blocks;
|
||||
ar & blocks;
|
||||
|
||||
{
|
||||
std::unordered_map<crypto::hash, size_t> blocks_index;
|
||||
ar & blocks_index;
|
||||
}
|
||||
|
||||
std::unordered_map<crypto::hash, transaction_chain_entry> transactions;
|
||||
ar & transactions;
|
||||
|
||||
{
|
||||
std::unordered_set<crypto::key_image> spent_keys;
|
||||
ar & spent_keys;
|
||||
}
|
||||
|
||||
{
|
||||
std::unordered_map<crypto::hash, block_extended_info> alternative_chains;
|
||||
ar & alternative_chains;
|
||||
}
|
||||
|
||||
{
|
||||
std::map<uint64_t, std::vector<std::pair<crypto::hash, size_t>>> outputs;
|
||||
ar & outputs;
|
||||
}
|
||||
|
||||
{
|
||||
std::unordered_map<crypto::hash, block_extended_info> invalid_blocks;
|
||||
ar & invalid_blocks;
|
||||
}
|
||||
|
||||
size_t current_block_cumul_sz_limit;
|
||||
ar & current_block_cumul_sz_limit;
|
||||
LOG_PRINT_L0("Old blockchain storage:" << ENDL <<
|
||||
"blocks: " << blocks.size() << ENDL <<
|
||||
"transactions: " << transactions.size() << ENDL <<
|
||||
"current_block_cumul_sz_limit: " << current_block_cumul_sz_limit);
|
||||
|
||||
Block block;
|
||||
Transaction transaction;
|
||||
for (uint32_t b = 0; b < blocks.size(); ++b) {
|
||||
block.bl = blocks[b].bl;
|
||||
block.height = b;
|
||||
block.block_cumulative_size = blocks[b].block_cumulative_size;
|
||||
block.cumulative_difficulty = blocks[b].cumulative_difficulty;
|
||||
block.already_generated_coins = blocks[b].already_generated_coins;
|
||||
block.transactions.resize(1 + blocks[b].bl.tx_hashes.size());
|
||||
block.transactions[0].tx = blocks[b].bl.miner_tx;
|
||||
TransactionIndex transactionIndex = { b, 0 };
|
||||
pushTransaction(block, get_transaction_hash(blocks[b].bl.miner_tx), transactionIndex);
|
||||
for (uint32_t t = 0; t < blocks[b].bl.tx_hashes.size(); ++t) {
|
||||
block.transactions[1 + t].tx = transactions[blocks[b].bl.tx_hashes[t]].tx;
|
||||
transactionIndex.transaction = 1 + t;
|
||||
pushTransaction(block, blocks[b].bl.tx_hashes[t], transactionIndex);
|
||||
}
|
||||
|
||||
pushBlock(block);
|
||||
}
|
||||
|
||||
update_next_comulative_size_limit();
|
||||
if (m_current_block_cumul_sz_limit != current_block_cumul_sz_limit) {
|
||||
LOG_ERROR("Migration was unsuccessful.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_CLASS_VERSION(cryptonote::blockchain_storage, CURRENT_BLOCKCHAIN_STORAGE_ARCHIVE_VER)
|
||||
|
||||
|
||||
bool blockchain_storage::have_tx(const crypto::hash &id) {
|
||||
CRITICAL_REGION_LOCAL(m_blockchain_lock);
|
||||
return m_transactionMap.find(id) != m_transactionMap.end();
|
||||
|
@ -209,19 +84,16 @@ bool blockchain_storage::init(const std::string& config_folder) {
|
|||
CRITICAL_REGION_LOCAL(m_blockchain_lock);
|
||||
m_config_folder = config_folder;
|
||||
LOG_PRINT_L0("Loading blockchain...");
|
||||
if (!m_blocks.open(appendPath(config_folder, "blocks.dat"), appendPath(config_folder, "blockindexes.dat"), 1024)) {
|
||||
if (!m_blocks.open(appendPath(config_folder, CRYPTONOTE_BLOCKS_FILENAME), appendPath(config_folder, CRYPTONOTE_BLOCKINDEXES_FILENAME), 1024)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_blocks.empty()) {
|
||||
const std::string filename = appendPath(m_config_folder, CRYPTONOTE_BLOCKCHAINDATA_FILENAME);
|
||||
if (!tools::unserialize_obj_from_file(*this, filename)) {
|
||||
LOG_PRINT_L0("Can't load blockchain storage from file.");
|
||||
}
|
||||
LOG_PRINT_L0("Can't load blockchain storage from file.");
|
||||
} else {
|
||||
bool rebuild = true;
|
||||
try {
|
||||
std::ifstream file(appendPath(config_folder, "blockscache.dat"), std::ios::binary);
|
||||
std::ifstream file(appendPath(config_folder, CRYPTONOTE_BLOCKSCACHE_FILENAME), std::ios::binary);
|
||||
boost::archive::binary_iarchive archive(file);
|
||||
crypto::hash lastBlockHash;
|
||||
archive & lastBlockHash;
|
||||
|
@ -282,7 +154,7 @@ bool blockchain_storage::init(const std::string& config_folder) {
|
|||
|
||||
bool blockchain_storage::store_blockchain() {
|
||||
try {
|
||||
std::ofstream file(appendPath(m_config_folder, "blockscache.dat"), std::ios::binary);
|
||||
std::ofstream file(appendPath(m_config_folder, CRYPTONOTE_BLOCKSCACHE_FILENAME), std::ios::binary);
|
||||
boost::archive::binary_oarchive archive(file);
|
||||
crypto::hash lastBlockHash = get_block_hash(m_blocks.back().bl);
|
||||
archive & lastBlockHash;
|
||||
|
@ -290,73 +162,9 @@ bool blockchain_storage::store_blockchain() {
|
|||
archive & m_transactionMap;
|
||||
archive & m_spent_keys;
|
||||
archive & m_outputs;
|
||||
LOG_PRINT_L0("Saved blockchain cache.");
|
||||
} catch (std::exception& e) {
|
||||
LOG_ERROR("Failed to save blockchain, " << e.what());
|
||||
}
|
||||
|
||||
//{
|
||||
// std::ofstream file(appendPath(m_config_folder, "blockscache2.dat"), std::ios::binary);
|
||||
|
||||
// crypto::hash lastBlockHash = get_block_hash(m_blocks.back().bl);
|
||||
// file.write(reinterpret_cast<char*>(&lastBlockHash), sizeof(lastBlockHash));
|
||||
|
||||
// uint32_t blockMapSize = m_blockMap.size();
|
||||
// file.write(reinterpret_cast<char*>(&blockMapSize), sizeof(blockMapSize));
|
||||
// for (auto& i : m_blockMap) {
|
||||
// crypto::hash blockHash = i.first;
|
||||
// file.write(reinterpret_cast<char*>(&blockHash), sizeof(blockHash));
|
||||
|
||||
// uint32_t blockIndex = i.second;
|
||||
// file.write(reinterpret_cast<char*>(&blockIndex), sizeof(blockIndex));
|
||||
// }
|
||||
|
||||
// uint32_t transactionMapSize = m_transactionMap.size();
|
||||
// file.write(reinterpret_cast<char*>(&transactionMapSize), sizeof(transactionMapSize));
|
||||
// for (auto& i : m_transactionMap) {
|
||||
// crypto::hash transactionHash = i.first;
|
||||
// file.write(reinterpret_cast<char*>(&transactionHash), sizeof(transactionHash));
|
||||
|
||||
// uint32_t blockIndex = i.second.block;
|
||||
// file.write(reinterpret_cast<char*>(&blockIndex), sizeof(blockIndex));
|
||||
|
||||
// uint32_t transactionIndex = i.second.transaction;
|
||||
// file.write(reinterpret_cast<char*>(&transactionIndex), sizeof(transactionIndex));
|
||||
// }
|
||||
|
||||
// uint32_t spentKeysSize = m_spent_keys.size();
|
||||
// file.write(reinterpret_cast<char*>(&spentKeysSize), sizeof(spentKeysSize));
|
||||
// for (auto& i : m_spent_keys) {
|
||||
// crypto::key_image key = i;
|
||||
// file.write(reinterpret_cast<char*>(&key), sizeof(key));
|
||||
// }
|
||||
|
||||
// uint32_t outputsSize = m_outputs.size();
|
||||
// file.write(reinterpret_cast<char*>(&outputsSize), sizeof(outputsSize));
|
||||
// for (auto& i : m_outputs) {
|
||||
// uint32_t indexesSize = i.second.size();
|
||||
// file.write(reinterpret_cast<char*>(&indexesSize), sizeof(indexesSize));
|
||||
// for (auto& j : i.second) {
|
||||
// uint32_t blockIndex = j.first.block;
|
||||
// file.write(reinterpret_cast<char*>(&blockIndex), sizeof(blockIndex));
|
||||
|
||||
// uint32_t transactionIndex = j.first.transaction;
|
||||
// file.write(reinterpret_cast<char*>(&transactionIndex), sizeof(transactionIndex));
|
||||
|
||||
// uint32_t outputIndex = j.second;
|
||||
// file.write(reinterpret_cast<char*>(&outputIndex), sizeof(outputIndex));
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
{
|
||||
//std::ofstream file(appendPath(m_config_folder, "blockscache3.dat"), std::ios::binary);
|
||||
//binary_archive<true> archive(file);
|
||||
//crypto::hash lastBlockHash = get_block_hash(m_blocks.back().bl);
|
||||
//do_serialize(archive, lastBlockHash);
|
||||
//do_serialize(archive, m_blockMap);
|
||||
//do_serialize(archive, m_transactionMap);
|
||||
//do_serialize(archive, m_spent_keys);
|
||||
//do_serialize(archive, m_outputs);
|
||||
LOG_ERROR("Failed to save blockchain cache, " << e.what());
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
6
src/cryptonote_core/blockchain_storage.h
Normal file → Executable file
6
src/cryptonote_core/blockchain_storage.h
Normal file → Executable file
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
@ -105,8 +105,6 @@ namespace cryptonote {
|
|||
transaction tx;
|
||||
std::vector<uint32_t> m_global_output_indexes;
|
||||
|
||||
template<class archive_t> void serialize(archive_t & ar, unsigned int version);
|
||||
|
||||
BEGIN_SERIALIZE_OBJECT()
|
||||
FIELD(tx)
|
||||
FIELD(m_global_output_indexes)
|
||||
|
@ -121,8 +119,6 @@ namespace cryptonote {
|
|||
uint64_t already_generated_coins;
|
||||
std::vector<Transaction> transactions;
|
||||
|
||||
template<class Archive> void serialize(Archive& archive, unsigned int version);
|
||||
|
||||
BEGIN_SERIALIZE_OBJECT()
|
||||
FIELD(bl)
|
||||
VARINT_FIELD(height)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
@ -12,22 +12,6 @@
|
|||
namespace cryptonote {
|
||||
inline bool create_checkpoints(cryptonote::checkpoints& checkpoints)
|
||||
{
|
||||
ADD_CHECKPOINT(79000, "cae33204e624faeb64938d80073bb7bbacc27017dc63f36c5c0f313cad455a02");
|
||||
ADD_CHECKPOINT(140000, "993059fb6ab92db7d80d406c67a52d9c02d873ca34b6290a12b744c970208772");
|
||||
ADD_CHECKPOINT(200000, "a5f74c7542077df6859f48b5b1f9c3741f29df38f91a47e14c94b5696e6c3073");
|
||||
ADD_CHECKPOINT(230580, "32bd7cb6c68a599cf2861941f29002a5e203522b9af54f08dfced316f6459103");
|
||||
ADD_CHECKPOINT(260000, "f68e70b360ca194f48084da7a7fd8e0251bbb4b5587f787ca65a6f5baf3f5947");
|
||||
ADD_CHECKPOINT(300000, "8e80861713f68354760dc10ea6ea79f5f3ff28f39b3f0835a8637463b09d70ff");
|
||||
ADD_CHECKPOINT(390285, "e00bdc9bf407aeace2f3109de11889ed25894bf194231d075eddaec838097eb7");
|
||||
ADD_CHECKPOINT(417000, "2dc96f8fc4d4a4d76b3ed06722829a7ab09d310584b8ecedc9b578b2c458a69f");
|
||||
ADD_CHECKPOINT(427193, "00feabb08f2d5759ed04fd6b799a7513187478696bba2db2af10d4347134e311");
|
||||
ADD_CHECKPOINT(453537, "d17de6916c5aa6ffcae575309c80b0f8fdcd0a84b5fa8e41a841897d4b5a4e97");
|
||||
ADD_CHECKPOINT(462250, "13468d210a5ec884cf839f0259f247ccf3efef0414ac45172033d32c739beb3e");
|
||||
ADD_CHECKPOINT(468000, "251bcbd398b1f593193a7210934a3d87f692b2cb0c45206150f59683dd7e9ba1");
|
||||
ADD_CHECKPOINT(480200, "363544ac9920c778b815c2fdbcbca70a0d79b21f662913a42da9b49e859f0e5b");
|
||||
ADD_CHECKPOINT(484500, "5cdf2101a0a62a0ab2a1ca0c15a6212b21f6dbdc42a0b7c0bcf65ca40b7a14fb");
|
||||
ADD_CHECKPOINT(506000, "3d54c1132f503d98d3f0d78bb46a4503c1a19447cb348361a2232e241cb45a3c");
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
@ -622,15 +622,20 @@ namespace cryptonote
|
|||
//genesis block
|
||||
bl = boost::value_initialized<block>();
|
||||
|
||||
|
||||
//TODO Uncomment this code block on teh first network lounch. It will generate and print you genesis block's hash.
|
||||
//TODO Then you must copy it and put to genesis_coinbase_tx_hex variable
|
||||
/*
|
||||
account_public_address ac = boost::value_initialized<account_public_address>();
|
||||
std::vector<size_t> sz;
|
||||
construct_miner_tx(0, 0, 0, 0, 0, ac, bl.miner_tx); // zero fee in genesis
|
||||
blobdata txb = tx_to_blob(bl.miner_tx);
|
||||
std::string hex_tx_represent = string_tools::buff_to_hex_nodelimer(txb);
|
||||
std::cout << "Genesis block hex: " << hex_to_represent << endl;
|
||||
*/
|
||||
|
||||
//hard code coinbase tx in genesis block, because "tru" generating tx use random, but genesis should be always the same
|
||||
std::string genesis_coinbase_tx_hex = "010a01ff0001ffffffffffff0f029b2e4c0281c0b02e7c53291a94d1d0cbff8883f8024f5142ee494ffbbd08807121013c086a48c15fb637a96991bc6d53caf77068b5ba6eeb3c82357228c49790584a";
|
||||
//TODO After you obtain hash of the genesis block put it here and recompile sources!
|
||||
std::string genesis_coinbase_tx_hex = "";
|
||||
|
||||
blobdata tx_bl;
|
||||
string_tools::parse_hexstr_to_binbuff(genesis_coinbase_tx_hex, tx_bl);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
@ -193,16 +193,8 @@ namespace nodetool
|
|||
template<class t_payload_net_handler>
|
||||
bool node_server<t_payload_net_handler>::init(const boost::program_options::variables_map& vm)
|
||||
{
|
||||
ADD_HARDCODED_SEED_NODE("seed.bytecoin.org:8080");
|
||||
ADD_HARDCODED_SEED_NODE("85.25.201.95:8080");
|
||||
ADD_HARDCODED_SEED_NODE("85.25.196.145:8080");
|
||||
ADD_HARDCODED_SEED_NODE("85.25.196.146:8080");
|
||||
ADD_HARDCODED_SEED_NODE("85.25.196.144:8080");
|
||||
ADD_HARDCODED_SEED_NODE("5.199.168.138:8080");
|
||||
ADD_HARDCODED_SEED_NODE("62.75.236.152:8080");
|
||||
ADD_HARDCODED_SEED_NODE("85.25.194.245:8080");
|
||||
ADD_HARDCODED_SEED_NODE("95.211.224.160:8080");
|
||||
ADD_HARDCODED_SEED_NODE("144.76.200.44:8080");
|
||||
//TODO add seed for your network
|
||||
//ADD_HARDCODED_SEED_NODE("your_seed_ip.com:8080");
|
||||
|
||||
bool res = handle_command_line(vm);
|
||||
CHECK_AND_ASSERT_MES(res, false, "Failed to handle command line");
|
||||
|
@ -376,7 +368,7 @@ namespace nodetool
|
|||
return;
|
||||
}
|
||||
|
||||
if(rsp.node_data.network_id != BYTECOIN_NETWORK)
|
||||
if(rsp.node_data.network_id != CRYPTONOTE_NETWORK)
|
||||
{
|
||||
LOG_ERROR_CCONTEXT("COMMAND_HANDSHAKE Failed, wrong network! (" << epee::string_tools::get_str_from_guid_a(rsp.node_data.network_id) << "), closing connection.");
|
||||
return;
|
||||
|
@ -784,7 +776,7 @@ namespace nodetool
|
|||
node_data.my_port = m_external_port ? m_external_port : m_listenning_port;
|
||||
else
|
||||
node_data.my_port = 0;
|
||||
node_data.network_id = BYTECOIN_NETWORK;
|
||||
node_data.network_id = CRYPTONOTE_NETWORK;
|
||||
return true;
|
||||
}
|
||||
//-----------------------------------------------------------------------------------
|
||||
|
@ -1004,7 +996,7 @@ namespace nodetool
|
|||
template<class t_payload_net_handler>
|
||||
int node_server<t_payload_net_handler>::handle_handshake(int command, typename COMMAND_HANDSHAKE::request& arg, typename COMMAND_HANDSHAKE::response& rsp, p2p_connection_context& context)
|
||||
{
|
||||
if(arg.node_data.network_id != BYTECOIN_NETWORK)
|
||||
if(arg.node_data.network_id != CRYPTONOTE_NETWORK)
|
||||
{
|
||||
|
||||
LOG_PRINT_CCONTEXT_L0("WRONG NETWORK AGENT CONNECTED! id=" << epee::string_tools::get_str_from_guid_a(arg.node_data.network_id));
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
@ -6,5 +6,5 @@
|
|||
|
||||
namespace nodetool
|
||||
{
|
||||
const static boost::uuids::uuid BYTECOIN_NETWORK = { { 0x11 ,0x10, 0x01, 0x11 , 0x11, 0x00 , 0x01, 0x01, 0x10, 0x11, 0x00, 0x12, 0x10, 0x11, 0x01, 0x10} }; //Bender's nightmare
|
||||
const static boost::uuids::uuid CRYPTONOTE_NETWORK = { { 0x11 ,0x10, 0x01, 0x11 , 0x11, 0x00 , 0x01, 0x01, 0x10, 0x11, 0x00, 0x12, 0x10, 0x11, 0x01, 0x10} };
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Copyright (c) 2011-2014 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue