PRCYCoin  2.0.0.7rc1
P2P Digital Currency
chainparams.h
Go to the documentation of this file.
1 // Copyright (c) 2009-2010 Satoshi Nakamoto
2 // Copyright (c) 2009-2015 The Bitcoin developers
3 // Copyright (c) 2014-2015 The Dash developers
4 // Copyright (c) 2015-2018 The PIVX developers
5 // Copyright (c) 2018-2020 The DAPS Project developers
6 // Copyright (c) 2020-2022 The PRivaCY Coin Developers
7 // Distributed under the MIT software license, see the accompanying
8 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
9 
10 #ifndef BITCOIN_CHAINPARAMS_H
11 #define BITCOIN_CHAINPARAMS_H
12 
13 #include "chainparamsbase.h"
14 #include "checkpoints.h"
15 #include "primitives/block.h"
16 #include "protocol.h"
17 #include "uint256.h"
18 
19 #include <vector>
20 
21 typedef unsigned char MessageStartChars[MESSAGE_START_SIZE];
22 
23 struct CDNSSeedData {
24  std::string name, host;
26  CDNSSeedData(const std::string& strName, const std::string& strHost, bool supportsServiceBitsFilteringIn = false) : name(strName), host(strHost), supportsServiceBitsFiltering(supportsServiceBitsFilteringIn) {}
27 };
28 
29 struct SeedSpec6 {
30  uint8_t addr[16];
31  uint16_t port;
32 };
33 
42 {
43 public:
44  enum Base58Type {
47  SECRET_KEY, // BIP16
48  EXT_PUBLIC_KEY, // BIP32
49  EXT_SECRET_KEY, // BIP32
50 
52  };
53 
54  const uint256& HashGenesisBlock() const { return hashGenesisBlock; }
55  const MessageStartChars& MessageStart() const { return pchMessageStart; }
56  int GetDefaultPort() const { return nDefaultPort; }
57  const uint256& ProofOfWorkLimit() const { return bnProofOfWorkLimit; }
64  int StakeMinAge() const { return nStakeMinAge; }
65 
67  int DefaultMinerThreads() const { return nMinerThreads; }
68  const CBlock& GenesisBlock() const { return genesis; }
69  bool RequireRPCPassword() const { return fRequireRPCPassword; }
71  bool MiningRequiresPeers() const { return fMiningRequiresPeers; }
81  bool RequireStandard() const { return fRequireStandard; }
82  int64_t TargetTimespan() const { return nTargetTimespan; }
83  int64_t TargetSpacing() const { return nTargetSpacing; }
84  int64_t Interval() const { return nTargetTimespan / nTargetSpacing; }
85  int COINBASE_MATURITY() const { return nMaturity; }
91  bool MineBlocksOnDemand() const { return fMineBlocksOnDemand; }
95  std::string NetworkIDString() const { return strNetworkID; }
96  const std::vector<CDNSSeedData>& DNSSeeds() const { return vSeeds; }
97  const std::vector<unsigned char>& Base58Prefix(Base58Type type) const { return base58Prefixes[type]; }
98  const std::vector<SeedSpec6>& FixedSeeds() const { return vFixedSeeds; }
99  virtual const Checkpoints::CCheckpointData& Checkpoints() const = 0;
104  bool IsRegTestNet() const { return NetworkID() == CBaseChainParams::REGTEST; }
105  int ExtCoinType() const { return nExtCoinType; }
106  int StealthPrefix() const { return nStealthPrefix; }
107  int IntegratedPrefix() const { return nIntegratedPrefix; }
108 
111  int LAST_POW_BLOCK() const { return nLastPOWBlock; }
112  int START_POA_BLOCK() const { return nStartPOABlock; }
113  int SoftFork() const { return nSoftForkBlock;}
114  int PoANewDiff() const { return nPoANewDiff;}
115  int PoAFixTime() const { return nPoAFixTime;}
116  int PoAPaddingBlock() const { return nPoAPaddingBlock;}
117  int PoAPadding() const { return nPoAPadding;}
119  int HardFork() const { return nHardForkBlock;}
122  int SyncFix() const { return nSyncFix;}
123  int FixChecks() const { return nFixChecks;}
124 
125  //For PoA block time
126  int POA_BLOCK_TIME() const { return nPoABlockTime; }
130  CAmount TOTAL_SUPPLY = 70000000 * COIN; //70M PRCY
131 
132 protected:
134 
150  int64_t nTargetSpacing;
156  int nSyncFix;
168  std::vector<CDNSSeedData> vSeeds;
169  std::vector<unsigned char> base58Prefixes[MAX_BASE58_TYPES];
171  std::string strNetworkID;
173  std::vector<SeedSpec6> vFixedSeeds;
187 
188  //For PoA blocks
192 public:
193  void ChangeMaxReorg(int num) const {
195  }
196 };
197 
202 const CChainParams& Params();
203 
206 
207 
210 
216 
217 #endif // BITCOIN_CHAINPARAMS_H
SelectParamsFromCommandLine
bool SelectParamsFromCommandLine()
Looks for -regtest or -testnet and then calls SelectParams as appropriate.
Definition: chainparams.cpp:490
CChainParams::fRequireRPCPassword
bool fRequireRPCPassword
Definition: chainparams.h:174
block.h
CChainParams::fHeadersFirstSyncingActive
bool fHeadersFirstSyncingActive
Definition: chainparams.h:182
CChainParams::AllowMinDifficultyBlocks
bool AllowMinDifficultyBlocks() const
Allow mining of a min-difficulty block.
Definition: chainparams.h:77
CChainParams::EXT_PUBLIC_KEY
@ EXT_PUBLIC_KEY
Definition: chainparams.h:48
CBaseChainParams::Network
Network
Definition: chainparamsbase.h:18
CDNSSeedData::host
std::string host
Definition: chainparams.h:24
CChainParams::nRejectBlockOutdatedMajority
int nRejectBlockOutdatedMajority
Definition: chainparams.h:147
CChainParams::nToCheckBlockUpgradeMajority
int nToCheckBlockUpgradeMajority
Definition: chainparams.h:148
CChainParams::strNetworkID
std::string strNetworkID
Definition: chainparams.h:171
CChainParams::PoAFixTime
int PoAFixTime() const
Definition: chainparams.h:115
CChainParams::nPoolMaxTransactions
int nPoolMaxTransactions
Definition: chainparams.h:183
Checkpoints::CCheckpointData
Definition: checkpoints.h:22
CChainParams::CChainParams
CChainParams()
Definition: chainparams.h:133
CChainParams::hashGenesisBlock
uint256 hashGenesisBlock
Definition: chainparams.h:135
CChainParams::fRequireStandard
bool fRequireStandard
Definition: chainparams.h:178
CChainParams::SkipProofOfWorkCheck
bool SkipProofOfWorkCheck() const
Skip proof-of-work check: allow mining of any difficulty block.
Definition: chainparams.h:79
CChainParams::ProofOfWorkLimit
const uint256 & ProofOfWorkLimit() const
Definition: chainparams.h:57
uint256.h
chainparamsbase.h
CChainParams::nPoABlockTime
int nPoABlockTime
Definition: chainparams.h:189
CChainParams::nPoAPadding
int nPoAPadding
Definition: chainparams.h:161
CChainParams::nTargetSpacing
int64_t nTargetSpacing
Definition: chainparams.h:150
CChainParams
CChainParams defines various tweakable parameters of a given instance of the PRCY system.
Definition: chainparams.h:41
CChainParams::BIP65ActivationHeight
int BIP65ActivationHeight() const
Definition: chainparams.h:118
CChainParams::nPoAPaddingBlock
int nPoAPaddingBlock
Definition: chainparams.h:160
CChainParams::nMaturity
int nMaturity
Definition: chainparams.h:163
CChainParams::vFixedSeeds
std::vector< SeedSpec6 > vFixedSeeds
Definition: chainparams.h:173
CChainParams::fAllowMinDifficultyBlocks
bool fAllowMinDifficultyBlocks
Definition: chainparams.h:176
CChainParams::networkID
CBaseChainParams::Network networkID
Definition: chainparams.h:170
CChainParams::FixedSeeds
const std::vector< SeedSpec6 > & FixedSeeds() const
Definition: chainparams.h:98
CChainParams::IsRegTestNet
bool IsRegTestNet() const
Definition: chainparams.h:104
MessageStartChars
unsigned char MessageStartChars[MESSAGE_START_SIZE]
Definition: chainparams.h:21
CChainParams::nPoANewDiff
int nPoANewDiff
Definition: chainparams.h:158
CChainParams::Checkpoints
virtual const Checkpoints::CCheckpointData & Checkpoints() const =0
CChainParams::fDefaultConsistencyChecks
bool fDefaultConsistencyChecks
Definition: chainparams.h:177
CChainParams::MAX_BASE58_TYPES
@ MAX_BASE58_TYPES
Definition: chainparams.h:51
CChainParams::TestnetToBeDeprecatedFieldRPC
bool TestnetToBeDeprecatedFieldRPC() const
In the future use NetworkIDString() for RPC fields.
Definition: chainparams.h:93
CDNSSeedData::CDNSSeedData
CDNSSeedData(const std::string &strName, const std::string &strHost, bool supportsServiceBitsFilteringIn=false)
Definition: chainparams.h:26
CChainParams::nMasternodeCountDrift
int nMasternodeCountDrift
Definition: chainparams.h:162
CChainParams::genesis
CBlock genesis
Definition: chainparams.h:172
protocol.h
CChainParams::nStartMasternodePayments
int64_t nStartMasternodePayments
Definition: chainparams.h:184
CChainParams::nStealthPrefix
int nStealthPrefix
Definition: chainparams.h:140
CChainParams::nBudget_Fee_Confirmations
int64_t nBudget_Fee_Confirmations
Definition: chainparams.h:185
CDNSSeedData::name
std::string name
Definition: chainparams.h:24
CChainParams::nPoAFixTime
int nPoAFixTime
Definition: chainparams.h:159
CDNSSeedData::supportsServiceBitsFiltering
bool supportsServiceBitsFiltering
Definition: chainparams.h:25
CChainParams::POA_BLOCK_TIME
int POA_BLOCK_TIME() const
Definition: chainparams.h:126
CChainParams::COINBASE_MATURITY
int COINBASE_MATURITY() const
Definition: chainparams.h:85
CChainParams::RejectBlockOutdatedMajority
int RejectBlockOutdatedMajority() const
Definition: chainparams.h:61
CChainParams::nEnforceBlockUpgradeMajority
int nEnforceBlockUpgradeMajority
Definition: chainparams.h:146
CChainParams::SECRET_KEY
@ SECRET_KEY
Definition: chainparams.h:47
CChainParams::nSoftForkBlock
int nSoftForkBlock
Definition: chainparams.h:152
CChainParams::MinimumStakeAmount
CAmount MinimumStakeAmount() const
Definition: chainparams.h:87
CChainParams::MIN_NUM_POS_BLOCKS_AUDITED
int MIN_NUM_POS_BLOCKS_AUDITED() const
Definition: chainparams.h:127
CChainParams::Base58Prefix
const std::vector< unsigned char > & Base58Prefix(Base58Type type) const
Definition: chainparams.h:97
CChainParams::LAST_POW_BLOCK
int LAST_POW_BLOCK() const
Definition: chainparams.h:111
CChainParams::pchMessageStart
MessageStartChars pchMessageStart
Definition: chainparams.h:136
CChainParams::MessageStart
const MessageStartChars & MessageStart() const
Definition: chainparams.h:55
CChainParams::NetworkID
CBaseChainParams::Network NetworkID() const
Definition: chainparams.h:103
CChainParams::HashGenesisBlock
const uint256 & HashGenesisBlock() const
Definition: chainparams.h:54
CAmount
int64_t CAmount
Amount in PRCY (Can be negative)
Definition: amount.h:17
CChainParams::nSubsidyHalvingInterval
int nSubsidyHalvingInterval
Definition: chainparams.h:145
CChainParams::NetworkIDString
std::string NetworkIDString() const
Return the network string.
Definition: chainparams.h:95
CChainParams::fTestnetToBeDeprecatedFieldRPC
bool fTestnetToBeDeprecatedFieldRPC
Definition: chainparams.h:181
CChainParams::PoANewDiff
int PoANewDiff() const
Definition: chainparams.h:114
CChainParams::ModifierUpgradeBlock
int ModifierUpgradeBlock() const
Height or Time Based Activations.
Definition: chainparams.h:110
CChainParams::HardForkRingSize
int HardForkRingSize() const
Definition: chainparams.h:120
CChainParams::ExtCoinType
int ExtCoinType() const
Definition: chainparams.h:105
CChainParams::PoAPadding
int PoAPadding() const
Definition: chainparams.h:117
SelectParams
void SelectParams(CBaseChainParams::Network network)
Sets the params returned by Params() to those for the given network.
Definition: chainparams.cpp:484
CChainParams::GenesisBlock
const CBlock & GenesisBlock() const
Definition: chainparams.h:68
uint256
256-bit unsigned big integer.
Definition: uint256.h:38
CChainParams::nModifierUpdateBlock
int nModifierUpdateBlock
Definition: chainparams.h:164
CChainParams::PoolMaxTransactions
int PoolMaxTransactions() const
Definition: chainparams.h:100
CChainParams::nFixChecks
int nFixChecks
Definition: chainparams.h:157
CChainParams::nDefaultPort
int nDefaultPort
Raw pub key bytes for the broadcast alert signing key.
Definition: chainparams.h:138
CChainParams::SubsidyHalvingInterval
int SubsidyHalvingInterval() const
Definition: chainparams.h:58
CChainParams::nExtCoinType
int nExtCoinType
Definition: chainparams.h:139
CChainParams::nStartPOABlock
int nStartPOABlock
Definition: chainparams.h:151
MESSAGE_START_SIZE
#define MESSAGE_START_SIZE
Definition: protocol.h:21
CChainParams::nBIP65ActivationHeight
int nBIP65ActivationHeight
Definition: chainparams.h:186
CChainParams::nLastPOWBlock
int nLastPOWBlock
Definition: chainparams.h:129
CChainParams::Base58Type
Base58Type
Definition: chainparams.h:44
checkpoints.h
CChainParams::GetDefaultPort
int GetDefaultPort() const
Definition: chainparams.h:56
CChainParams::base58Prefixes
std::vector< unsigned char > base58Prefixes[MAX_BASE58_TYPES]
Definition: chainparams.h:169
CChainParams::MaxReorganizationDepth
int MaxReorganizationDepth() const
Definition: chainparams.h:63
CBlock
Definition: block.h:142
CChainParams::fMiningRequiresPeers
bool fMiningRequiresPeers
Definition: chainparams.h:175
CChainParams::nMinimumStakeAmount
CAmount nMinimumStakeAmount
Definition: chainparams.h:166
CChainParams::EXT_SECRET_KEY
@ EXT_SECRET_KEY
Definition: chainparams.h:49
CChainParams::ChangeMaxReorg
void ChangeMaxReorg(int num) const
Definition: chainparams.h:193
CChainParams::Interval
int64_t Interval() const
Definition: chainparams.h:84
CChainParams::nHardForkBlockRingSize2
int nHardForkBlockRingSize2
Definition: chainparams.h:155
SeedSpec6::port
uint16_t port
Definition: chainparams.h:31
CChainParams::FixChecks
int FixChecks() const
Definition: chainparams.h:123
CChainParams::HeadersFirstSyncingActive
bool HeadersFirstSyncingActive() const
Headers first syncing is disabled.
Definition: chainparams.h:73
CChainParams::nSyncFix
int nSyncFix
Definition: chainparams.h:156
CBaseChainParams::REGTEST
@ REGTEST
Definition: chainparamsbase.h:21
CChainParams::StakeMinAge
int StakeMinAge() const
Definition: chainparams.h:64
CChainParams::nMNCollateralAmt
CAmount nMNCollateralAmt
Definition: chainparams.h:165
CChainParams::START_POA_BLOCK
int START_POA_BLOCK() const
Definition: chainparams.h:112
CChainParams::RequireStandard
bool RequireStandard() const
Make standard checks.
Definition: chainparams.h:81
CChainParams::nMaxReorganizationDepth
int nMaxReorganizationDepth
Definition: chainparams.h:144
CChainParams::MiningRequiresPeers
bool MiningRequiresPeers() const
Make miner wait to have peers to avoid wasting work.
Definition: chainparams.h:71
SeedSpec6::addr
uint8_t addr[16]
Definition: chainparams.h:30
CChainParams::nStakeMinAge
int nStakeMinAge
Definition: chainparams.h:143
CChainParams::RequireRPCPassword
bool RequireRPCPassword() const
Definition: chainparams.h:69
CChainParams::PUBKEY_ADDRESS
@ PUBKEY_ADDRESS
Definition: chainparams.h:45
CChainParams::MineBlocksOnDemand
bool MineBlocksOnDemand() const
Make miner stop after a block is found.
Definition: chainparams.h:91
Params
const CChainParams & Params()
Return the currently selected parameters.
Definition: chainparams.cpp:463
CChainParams::Budget_Fee_Confirmations
int64_t Budget_Fee_Confirmations() const
Definition: chainparams.h:102
CChainParams::nMaxNumPoSBlocks
int nMaxNumPoSBlocks
Definition: chainparams.h:191
CChainParams::nHardForkBlock
int nHardForkBlock
Definition: chainparams.h:153
CChainParams::nTargetTimespan
int64_t nTargetTimespan
Definition: chainparams.h:149
CChainParams::TargetTimespan
int64_t TargetTimespan() const
Definition: chainparams.h:82
SeedSpec6
Definition: chainparams.h:29
CChainParams::MAX_NUM_POS_BLOCKS_AUDITED
int MAX_NUM_POS_BLOCKS_AUDITED() const
Definition: chainparams.h:128
CChainParams::DNSSeeds
const std::vector< CDNSSeedData > & DNSSeeds() const
Definition: chainparams.h:96
CChainParams::nIntegratedPrefix
int nIntegratedPrefix
Definition: chainparams.h:141
CDNSSeedData
Definition: chainparams.h:23
CChainParams::MNCollateralAmt
CAmount MNCollateralAmt() const
Definition: chainparams.h:86
CChainParams::PoAPaddingBlock
int PoAPaddingBlock() const
Definition: chainparams.h:116
CChainParams::TOTAL_SUPPLY
CAmount TOTAL_SUPPLY
Definition: chainparams.h:130
CChainParams::IntegratedPrefix
int IntegratedPrefix() const
Definition: chainparams.h:107
CChainParams::SCRIPT_ADDRESS
@ SCRIPT_ADDRESS
Definition: chainparams.h:46
CChainParams::DefaultMinerThreads
int DefaultMinerThreads() const
Used if GeneratePrcycoins is called with a negative number of threads.
Definition: chainparams.h:67
CChainParams::HardFork
int HardFork() const
Definition: chainparams.h:119
CChainParams::fMineBlocksOnDemand
bool fMineBlocksOnDemand
Definition: chainparams.h:179
CChainParams::nHardForkBlockRingSize
int nHardForkBlockRingSize
Definition: chainparams.h:154
CChainParams::StealthPrefix
int StealthPrefix() const
Definition: chainparams.h:106
CChainParams::nMinNumPoSBlocks
int nMinNumPoSBlocks
Definition: chainparams.h:190
CChainParams::SyncFix
int SyncFix() const
Definition: chainparams.h:122
CChainParams::HardForkRingSize2
int HardForkRingSize2() const
Definition: chainparams.h:121
CChainParams::ToCheckBlockUpgradeMajority
int ToCheckBlockUpgradeMajority() const
Definition: chainparams.h:62
CChainParams::TargetSpacing
int64_t TargetSpacing() const
Definition: chainparams.h:83
CChainParams::EnforceBlockUpgradeMajority
int EnforceBlockUpgradeMajority() const
Used to check majorities for block version upgrade.
Definition: chainparams.h:60
CChainParams::MasternodeCountDrift
int MasternodeCountDrift() const
The masternode count that we will allow the see-saw reward payments to be off by.
Definition: chainparams.h:89
CChainParams::StartMasternodePayments
int64_t StartMasternodePayments() const
Definition: chainparams.h:101
CChainParams::nMinerThreads
int nMinerThreads
Definition: chainparams.h:167
CChainParams::fSkipProofOfWorkCheck
bool fSkipProofOfWorkCheck
Definition: chainparams.h:180
CChainParams::DefaultConsistencyChecks
bool DefaultConsistencyChecks() const
Default value for -checkmempool and -checkblockindex argument.
Definition: chainparams.h:75
CChainParams::vSeeds
std::vector< CDNSSeedData > vSeeds
Definition: chainparams.h:168
CChainParams::bnProofOfWorkLimit
uint256 bnProofOfWorkLimit
Definition: chainparams.h:142
CChainParams::SoftFork
int SoftFork() const
Definition: chainparams.h:113