mirror of
https://github.com/monero-project/monero.git
synced 2024-10-01 11:49:47 -04:00
Merge pull request #1099
c2faab5
fix v5 height (Riccardo Spagni)70bd7d8
remove dead backup seed nodes, add new ones (Riccardo Spagni)cebbcf0
fix v5 fork date description (Riccardo Spagni)eb60fa2
update version (Riccardo Spagni)c41098a
updated fork heights for v4 and v5 (Riccardo Spagni)c69b8a1
update block headers (Riccardo Spagni)f148af2
add checkpoints (Riccardo Spagni)c15da0e
switch wallet API from std thread/mutex to boost (Riccardo Spagni)8a274ea
switch wallet API from std thread/mutex to boost (Riccardo Spagni)
This commit is contained in:
commit
68e6678ab7
Binary file not shown.
@ -85,6 +85,12 @@ static const struct {
|
|||||||
|
|
||||||
// version 3 starts from block 1141317, which is on or around the 24th of September, 2016. Fork time finalised on 2016-03-21.
|
// version 3 starts from block 1141317, which is on or around the 24th of September, 2016. Fork time finalised on 2016-03-21.
|
||||||
{ 3, 1141317, 0, 1458558528 },
|
{ 3, 1141317, 0, 1458558528 },
|
||||||
|
|
||||||
|
// version 4 starts from block 1220517, which is on or around the 5th of January, 2017. Fork time finalised on 2016-09-18.
|
||||||
|
{ 4, 1220517, 0, 1483574400 },
|
||||||
|
|
||||||
|
// version 5 starts from block 1406997, which is on or around the 20th of September, 2017. Fork time finalised on 2016-09-18.
|
||||||
|
{ 5, 1406997, 0, 1505865600 },
|
||||||
};
|
};
|
||||||
static const uint64_t mainnet_hard_fork_version_1_till = 1009826;
|
static const uint64_t mainnet_hard_fork_version_1_till = 1009826;
|
||||||
|
|
||||||
@ -100,6 +106,7 @@ static const struct {
|
|||||||
// version 2 starts from block 624634, which is on or around the 23rd of November, 2015. Fork time finalised on 2015-11-20. No fork voting occurs for the v2 fork.
|
// version 2 starts from block 624634, which is on or around the 23rd of November, 2015. Fork time finalised on 2015-11-20. No fork voting occurs for the v2 fork.
|
||||||
{ 2, 624634, 0, 1445355000 },
|
{ 2, 624634, 0, 1445355000 },
|
||||||
|
|
||||||
|
// versions 3-5 were passed in rapid succession from September 18th, 2016
|
||||||
{ 3, 800500, 0, 1472415034 },
|
{ 3, 800500, 0, 1472415034 },
|
||||||
{ 4, 801220, 0, 1472415035 },
|
{ 4, 801220, 0, 1472415035 },
|
||||||
{ 5, 802660, 0, 1472415036 },
|
{ 5, 802660, 0, 1472415036 },
|
||||||
|
@ -184,6 +184,8 @@ namespace cryptonote
|
|||||||
ADD_CHECKPOINT(825000, "56503f9ad766774b575be3aff73245e9d159be88132c93d1754764f28da2ff60");
|
ADD_CHECKPOINT(825000, "56503f9ad766774b575be3aff73245e9d159be88132c93d1754764f28da2ff60");
|
||||||
ADD_CHECKPOINT(900000, "d9958d0e7dcf91a5a7b11de225927bf7efc6eb26240315ce12372be902cc1337");
|
ADD_CHECKPOINT(900000, "d9958d0e7dcf91a5a7b11de225927bf7efc6eb26240315ce12372be902cc1337");
|
||||||
ADD_CHECKPOINT(913193, "5292d5d56f6ba4de33a58d9a34d263e2cb3c6fee0aed2286fd4ac7f36d53c85f");
|
ADD_CHECKPOINT(913193, "5292d5d56f6ba4de33a58d9a34d263e2cb3c6fee0aed2286fd4ac7f36d53c85f");
|
||||||
|
ADD_CHECKPOINT(1000000, "a886ef5149902d8342475fee9bb296341b891ac67c4842f47a833f23c00ed721");
|
||||||
|
ADD_CHECKPOINT(1100000, "3fd720c5c8b3072fc1ccda922dec1ef25f9ed88a1e6ad4103d0fe00b180a5903");
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -360,10 +360,9 @@ namespace nodetool
|
|||||||
if (testnet)
|
if (testnet)
|
||||||
{
|
{
|
||||||
memcpy(&m_network_id, &::config::testnet::NETWORK_ID, 16);
|
memcpy(&m_network_id, &::config::testnet::NETWORK_ID, 16);
|
||||||
full_addrs.insert("197.242.158.240:28080");
|
full_addrs.insert("163.172.182.165:28080");
|
||||||
full_addrs.insert("107.152.130.98:28080");
|
full_addrs.insert("204.12.248.66:28080");
|
||||||
full_addrs.insert("5.9.25.103:28080");
|
full_addrs.insert("5.9.100.248:28080");
|
||||||
full_addrs.insert("5.9.55.70:28080");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -439,28 +438,11 @@ namespace nodetool
|
|||||||
if (!full_addrs.size())
|
if (!full_addrs.size())
|
||||||
{
|
{
|
||||||
LOG_PRINT_L0("DNS seed node lookup either timed out or failed, falling back to defaults");
|
LOG_PRINT_L0("DNS seed node lookup either timed out or failed, falling back to defaults");
|
||||||
full_addrs.insert("46.165.232.77:18080");
|
|
||||||
full_addrs.insert("63.141.254.186:18080");
|
|
||||||
full_addrs.insert("119.81.118.164:18080");
|
|
||||||
full_addrs.insert("60.191.33.112:18080");
|
|
||||||
full_addrs.insert("198.74.231.92:18080");
|
full_addrs.insert("198.74.231.92:18080");
|
||||||
full_addrs.insert("5.9.55.70:18080");
|
|
||||||
full_addrs.insert("119.81.118.165:18080");
|
|
||||||
full_addrs.insert("202.112.0.100:18080");
|
|
||||||
full_addrs.insert("84.106.163.174:18080");
|
|
||||||
full_addrs.insert("178.206.94.87:18080");
|
|
||||||
full_addrs.insert("119.81.118.163:18080");
|
|
||||||
full_addrs.insert("95.37.217.253:18080");
|
|
||||||
full_addrs.insert("161.67.132.39:18080");
|
full_addrs.insert("161.67.132.39:18080");
|
||||||
full_addrs.insert("119.81.48.114:18080");
|
full_addrs.insert("163.172.182.165:18080");
|
||||||
full_addrs.insert("119.81.118.166:18080");
|
full_addrs.insert("204.12.248.66:18080");
|
||||||
full_addrs.insert("93.120.240.209:18080");
|
full_addrs.insert("5.9.100.248:18080");
|
||||||
full_addrs.insert("46.183.145.69:18080");
|
|
||||||
full_addrs.insert("108.170.123.66:18080");
|
|
||||||
full_addrs.insert("5.9.83.204:18080");
|
|
||||||
full_addrs.insert("104.130.19.193:18080");
|
|
||||||
full_addrs.insert("119.81.48.115:18080");
|
|
||||||
full_addrs.insert("80.71.13.36:18080");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#define MONERO_VERSION_TAG "@VERSIONTAG@"
|
#define MONERO_VERSION_TAG "@VERSIONTAG@"
|
||||||
#define MONERO_VERSION "0.9.4.0"
|
#define MONERO_VERSION "0.10.0.0"
|
||||||
#define MONERO_RELEASE_NAME "Hydrogen Helix"
|
#define MONERO_RELEASE_NAME "Wolfram Warptangent"
|
||||||
#define MONERO_VERSION_FULL MONERO_VERSION "-" MONERO_VERSION_TAG
|
#define MONERO_VERSION_FULL MONERO_VERSION "-" MONERO_VERSION_TAG
|
||||||
|
@ -170,7 +170,7 @@ WalletImpl::WalletImpl(bool testnet)
|
|||||||
m_refreshThreadDone = false;
|
m_refreshThreadDone = false;
|
||||||
m_refreshEnabled = false;
|
m_refreshEnabled = false;
|
||||||
m_refreshIntervalSeconds = DEFAULT_REFRESH_INTERVAL_SECONDS;
|
m_refreshIntervalSeconds = DEFAULT_REFRESH_INTERVAL_SECONDS;
|
||||||
m_refreshThread = std::thread([this] () {
|
m_refreshThread = boost::thread([this] () {
|
||||||
this->refreshThreadFunc();
|
this->refreshThreadFunc();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -632,12 +632,12 @@ void WalletImpl::refreshThreadFunc()
|
|||||||
LOG_PRINT_L3(__FUNCTION__ << ": starting refresh thread");
|
LOG_PRINT_L3(__FUNCTION__ << ": starting refresh thread");
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
std::unique_lock<std::mutex> lock(m_refreshMutex);
|
boost::mutex::scoped_lock lock(m_refreshMutex);
|
||||||
if (m_refreshThreadDone) {
|
if (m_refreshThreadDone) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
LOG_PRINT_L3(__FUNCTION__ << ": waiting for refresh...");
|
LOG_PRINT_L3(__FUNCTION__ << ": waiting for refresh...");
|
||||||
m_refreshCV.wait_for(lock, std::chrono::seconds(m_refreshIntervalSeconds));
|
m_refreshCV.wait(lock);
|
||||||
LOG_PRINT_L3(__FUNCTION__ << ": refresh lock acquired...");
|
LOG_PRINT_L3(__FUNCTION__ << ": refresh lock acquired...");
|
||||||
LOG_PRINT_L3(__FUNCTION__ << ": m_refreshEnabled: " << m_refreshEnabled);
|
LOG_PRINT_L3(__FUNCTION__ << ": m_refreshEnabled: " << m_refreshEnabled);
|
||||||
LOG_PRINT_L3(__FUNCTION__ << ": m_status: " << m_status);
|
LOG_PRINT_L3(__FUNCTION__ << ": m_status: " << m_status);
|
||||||
@ -652,7 +652,7 @@ void WalletImpl::refreshThreadFunc()
|
|||||||
void WalletImpl::doRefresh()
|
void WalletImpl::doRefresh()
|
||||||
{
|
{
|
||||||
// synchronizing async and sync refresh calls
|
// synchronizing async and sync refresh calls
|
||||||
std::lock_guard<std::mutex> guarg(m_refreshMutex2);
|
boost::lock_guard<boost::mutex> guarg(m_refreshMutex2);
|
||||||
try {
|
try {
|
||||||
m_wallet->refresh();
|
m_wallet->refresh();
|
||||||
} catch (const std::exception &e) {
|
} catch (const std::exception &e) {
|
||||||
|
@ -35,9 +35,9 @@
|
|||||||
#include "wallet/wallet2.h"
|
#include "wallet/wallet2.h"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <thread>
|
#include <boost/thread/mutex.hpp>
|
||||||
#include <mutex>
|
#include <boost/thread/thread.hpp>
|
||||||
#include <condition_variable>
|
#include <boost/thread/condition_variable.hpp>
|
||||||
|
|
||||||
|
|
||||||
namespace Bitmonero {
|
namespace Bitmonero {
|
||||||
@ -113,12 +113,12 @@ private:
|
|||||||
std::atomic<bool> m_refreshThreadDone;
|
std::atomic<bool> m_refreshThreadDone;
|
||||||
std::atomic<int> m_refreshIntervalSeconds;
|
std::atomic<int> m_refreshIntervalSeconds;
|
||||||
// synchronizing refresh loop;
|
// synchronizing refresh loop;
|
||||||
std::mutex m_refreshMutex;
|
boost::mutex m_refreshMutex;
|
||||||
|
|
||||||
// synchronizing sync and async refresh
|
// synchronizing sync and async refresh
|
||||||
std::mutex m_refreshMutex2;
|
boost::mutex m_refreshMutex2;
|
||||||
std::condition_variable m_refreshCV;
|
boost::condition_variable m_refreshCV;
|
||||||
std::thread m_refreshThread;
|
boost::thread m_refreshThread;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user