Biel
-
Sinalizar
como inapropriado
-
Mostrar
Show review history
So, if you introduce any hard-fork, then it will be obviously rejected by default. When you have any block header, then the difficulty field has to match exactly. If there is no match, then it is rejected. However, of course you can mine harder blocks, but they won't be counted as having a higher chainwork. For example: mainnet Genesis Block meets 40-bit target, but the required target has only 32 leading zero bits. You can easily do that today, if you apply testnet rules on mainnet. Then, you could mine up to six blocks on your CPU (because of two hours rule), and when the next ASIC block will appear, your chain will be reorged. Also, if you build testnet on top of mainnet, then you will have conditions, which are close to the mainnet. Which means, that you will always have the same number of halvings, the same activated soft-forks, and so on. The only change you would really need, is just switching "fPowAllowMinDifficultyBlocks" from "false" to "true". Code:$ git diff diff --git a/src/kernel/chainparams.cpp b/src/kernel/chainparams.cpp index 4a747e7317..8372405f75 100644 --- a/src/kernel/chainparams.cpp +++ b/src/kernel/chainparams.cpp @@ -101,7 +101,7 @@ public: consensus.powLimit = uint256{""}; consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks consensus.nPowTargetSpacing = 10 * 60; - consensus.fPowAllowMinDifficultyBlocks = false; + consensus.fPowAllowMinDifficultyBlocks = true; consensus.enforce_BIP94 = false; consensus.fPowNoRetargeting = false; consensus.nRuleChangeActivationThreshold = 1815; // 90% of 2016
So, if you introduce any hard-fork, then it will be obviously rejected by default. When you have any block header, then the difficulty field has to match exactly. If there is no match, then it is rejected. However, of course you can mine harder blocks, but they won't be counted as having a higher chainwork. For example: mainnet Genesis Block meets 40-bit target, but the required target has only 32 leading zero bits. You can easily do that today, if you apply testnet rules on mainnet. Then, you could mine up to six blocks on your CPU (because of two hours rule), and when the next ASIC block will appear, your chain will be reorged. Also, if you build testnet on top of mainnet, then you will have conditions, which are close to the mainnet. Which means, that you will always have the same number of halvings, the same activated soft-forks, and so on. The only change you would really need, is just switching "fPowAllowMinDifficultyBlocks" from "false" to "true". Code:$ git diff diff --git a/src/kernel/chainparams.cpp b/src/kernel/chainparams.cpp index 4a747e7317..8372405f75 100644 --- a/src/kernel/chainparams.cpp +++ b/src/kernel/chainparams.cpp @@ -101,7 +101,7 @@ public: consensus.powLimit = uint256{""}; consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks consensus.nPowTargetSpacing = 10 * 60; - consensus.fPowAllowMinDifficultyBlocks = false; + consensus.fPowAllowMinDifficultyBlocks = true; consensus.enforce_BIP94 = false; consensus.fPowNoRetargeting = false; consensus.nRuleChangeActivationThreshold = 1815; // 90% of 2016
This review was marked as helpful by
6 people
DomRafael
-
Sinalizar
como inapropriado
So, if you introduce any hard-fork, then it will be obviously rejected by default. When you have any block header, then the difficulty field has to match exactly. If there is no match, then it is rejected. However, of course you can mine harder blocks, but they won't be counted as having a higher chainwork. For example: mainnet Genesis Block meets 40-bit target, but the required target has only 32 leading zero bits. You can easily do that today, if you apply testnet rules on mainnet. Then, you could mine up to six blocks on your CPU (because of two hours rule), and when the next ASIC block will appear, your chain will be reorged. Also, if you build testnet on top of mainnet, then you will have conditions, which are close to the mainnet. Which means, that you will always have the same number of halvings, the same activated soft-forks, and so on. The only change you would really need, is just switching "fPowAllowMinDifficultyBlocks" from "false" to "true". Code:$ git diff diff --git a/src/kernel/chainparams.cpp b/src/kernel/chainparams.cpp index 4a747e7317..8372405f75 100644 --- a/src/kernel/chainparams.cpp +++ b/src/kernel/chainparams.cpp @@ -101,7 +101,7 @@ public: consensus.powLimit = uint256{""}; consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks consensus.nPowTargetSpacing = 10 * 60; - consensus.fPowAllowMinDifficultyBlocks = false; + consensus.fPowAllowMinDifficultyBlocks = true; consensus.enforce_BIP94 = false; consensus.fPowNoRetargeting = false; consensus.nRuleChangeActivationThreshold = 1815; // 90% of 2016
This review was marked as helpful by
38 people
ARTE
-
Sinalizar
como inapropriado
-
Show history of
So, if you introduce any hard-fork, then it will be obviously rejected by default. When you have any block header, then the difficulty field has to match exactly. If there is no match, then it is rejected. However, of course you can mine harder blocks, but they won't be counted as having a higher chainwork. For example: mainnet Genesis Block meets 40-bit target, but the required target has only 32 leading zero bits. You can easily do that today, if you apply testnet rules on mainnet. Then, you could mine up to six blocks on your CPU (because of two hours rule), and when the next ASIC block will appear, your chain will be reorged. Also, if you build testnet on top of mainnet, then you will have conditions, which are close to the mainnet. Which means, that you will always have the same number of halvings, the same activated soft-forks, and so on. The only change you would really need, is just switching "fPowAllowMinDifficultyBlocks" from "false" to "true". Code:$ git diff diff --git a/src/kernel/chainparams.cpp b/src/kernel/chainparams.cpp index 4a747e7317..8372405f75 100644 --- a/src/kernel/chainparams.cpp +++ b/src/kernel/chainparams.cpp @@ -101,7 +101,7 @@ public: consensus.powLimit = uint256{""}; consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks consensus.nPowTargetSpacing = 10 * 60; - consensus.fPowAllowMinDifficultyBlocks = false; + consensus.fPowAllowMinDifficultyBlocks = true; consensus.enforce_BIP94 = false; consensus.fPowNoRetargeting = false; consensus.nRuleChangeActivationThreshold = 1815; // 90% of 2016
This review was marked as helpful
by 061 people