hardfork: allow per-fork voting thresholds

And setup the first fork to not vote
This commit is contained in:
moneromooo-monero
2015-11-08 13:04:41 +00:00
parent 6a01030533
commit 4187e569d8
4 changed files with 70 additions and 21 deletions

View File

@@ -72,23 +72,25 @@ DISABLE_VS_WARNINGS(4267)
static const struct {
uint8_t version;
uint64_t height;
uint8_t threshold;
time_t time;
} mainnet_hard_forks[] = {
// version 1 from the start of the blockchain
{ 1, 1, 1341378000 },
{ 1, 1, 0, 1341378000 },
// version 2 can start from block 1009827, setup on the 20th of september
{ 2, 1009827, 1442763710 },
// version 2 can start from block 1009827, setup on the 20th of september. No vote.
{ 2, 1009827, 0, 1442763710 },
};
static const uint64_t mainnet_hard_fork_version_1_till = 750000;
static const struct {
uint8_t version;
uint64_t height;
uint8_t threshold;
time_t time;
} testnet_hard_forks[] = {
// version 1 from the start of the blockchain
{ 1, 1, 1341378000 },
{ 1, 1, 0, 1341378000 },
};
static const uint64_t testnet_hard_fork_version_1_till = 540000;
@@ -252,13 +254,13 @@ bool Blockchain::init(BlockchainDB* db, const bool testnet)
if (testnet) {
m_hardfork = new HardFork(*db, 1, testnet_hard_fork_version_1_till);
for (size_t n = 0; n < sizeof(testnet_hard_forks) / sizeof(testnet_hard_forks[0]); ++n)
m_hardfork->add(testnet_hard_forks[n].version, testnet_hard_forks[n].height, testnet_hard_forks[n].time);
m_hardfork->add(testnet_hard_forks[n].version, testnet_hard_forks[n].height, testnet_hard_forks[n].threshold, testnet_hard_forks[n].time);
}
else
{
m_hardfork = new HardFork(*db, 1, mainnet_hard_fork_version_1_till);
for (size_t n = 0; n < sizeof(mainnet_hard_forks) / sizeof(mainnet_hard_forks[0]); ++n)
m_hardfork->add(mainnet_hard_forks[n].version, mainnet_hard_forks[n].height, mainnet_hard_forks[n].time);
m_hardfork->add(mainnet_hard_forks[n].version, mainnet_hard_forks[n].height, mainnet_hard_forks[n].threshold, mainnet_hard_forks[n].time);
}
m_hardfork->init();