Skip to content

Commit f2e3495

Browse files
committed
Create epoch length chainparam
1 parent 85467c0 commit f2e3495

File tree

3 files changed

+6
-0
lines changed

3 files changed

+6
-0
lines changed

src/chainparams.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,8 @@ class CCustomParams : public CRegTestParams {
482482

483483
consensus.nMinimumChainWork = uint256S(args.GetArg("-con_nminimumchainwork", "0x0"));
484484
consensus.defaultAssumeValid = uint256S(args.GetArg("-con_defaultassumevalid", "0x00"));
485+
// TODO: Embed in genesis block in nTime field with new genesis block type
486+
consensus.dynamic_epoch_length = args.GetArg("-dynamic_epoch_length", 10);
485487
// TODO: pass in serialized vector of byte vectors, parse into extension space
486488
// Junk keys for testing
487489
consensus.first_extension_space = {ParseHex("02fcba7ecf41bc7e1be4ee122d9d22e3333671eb0a3a87b5cdf099d59874e1940f02fcba7ecf41bc7e1be4ee122d9d22e3333671eb0a3a87b5cdf099d59874e1940f")};

src/chainparamsbase.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ void SetupChainParamsBaseOptions()
4747
gArgs.AddArg("-pak", "Entries in the PAK list. Order of entries matter.", false, OptionsCategory::ELEMENTS);
4848
gArgs.AddArg("-multi_data_permitted", "Allow relay of multiple OP_RETURN outputs. (default: -enforce_pak)", false, OptionsCategory::ELEMENTS);
4949
gArgs.AddArg("-con_csv_deploy_start", "Starting height for CSV deployment. (default: -1, which means ACTIVE from genesis)", false, OptionsCategory::ELEMENTS);
50+
gArgs.AddArg("-dynamic_epoch_length", "Per-chain parameter that sets how many blocks dynamic federation voting and enforcement are in effect for.", false, OptionsCategory::ELEMENTS);
5051
// END ELEMENTS
5152
//
5253
}

src/consensus/params.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@ struct Params {
100100
CScript signblockscript;
101101
uint32_t max_block_signature_size;
102102
// g_signed_blocks - Whether blocks are signed or not, get around circular dep
103+
// Set positive to avoid division by 0
104+
// for non-dynafed chains and unit tests
105+
uint32_t dynamic_epoch_length = std::numeric_limits<uint32_t>::max();
103106
// Used to seed the extension space for first dynamic blocks
104107
std::vector<std::vector<unsigned char>> first_extension_space;
105108
};

0 commit comments

Comments
 (0)