Estoy simulando una red privada de bitcoin que comencé con initial difficulty set to (1/2)^16
, sin embargo, después de unos 20 bloques de minería en la red, aumentó 1
y ha sido constante desde entonces. Por lo que entiendo del código fuente, se supone que aumenta después de cada 2016 bloques, entonces, ¿cómo aumentó después de solo 20 bloques?
Cambio de powLimit
en mis instancias de bitcoind.
strNetworkID = "regtest";
consensus.nSubsidyHalvingInterval = 210000;
consensus.nMajorityEnforceBlockUpgrade = 51;
consensus.nMajorityRejectBlockOutdated = 75;
consensus.nMajorityWindow = 100;
consensus.powLimit = uint256S("0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
consensus.nPowTargetSpacing = 10 * 60;
consensus.fPowAllowMinDifficultyBlocks = true;
consensus.fPowNoRetargeting = false;
La dificultad de la red es igual al objetivo máximo permitido (menos difícil) dividido por el objetivo actual ; si establece su objetivo mínimo en x y todavía está en x , entonces también sería una dificultad relativa de 1.
Una manera fácil de confirmar esto es mirar la dificultad calculada para su bloque de génesis (o el bloque 1 si obtuvo su bloque de génesis de otro lugar).
bitcoin-cli getblockhash 0
bitcoin-cli getblock <hash_from_above>
Si también dice que la dificultad es uno, entonces sabes que la dificultad no ha cambiado desde que comenzaste a minar.
Como nota al margen interesante, a partir de (creo) Bitcoin Core 0.11.0, la prueba de registro de Bitcoin admite la generación de bloques "instantánea" a pesar de que su objetivo máximo oficial es mucho más bajo (más difícil). Esto significa que tiene dificultades muy por debajo de 1:
$ bitcoin-cli -regtest getmininginfo
{
"blocks": 0,
"currentblocksize": 0,
"currentblocktx": 0,
"difficulty": 4.656542373906925e-10,
"errors": "This is a pre-release test build - use at your own risk - do not use for mining or merchant applications",
"genproclimit": -1,
"networkhashps": 0,
"pooledtx": 0,
"testnet": false,
"chain": "regtest",
"generate": false
}
David A. Harding
bawejakunal
David A. Harding