Aumento abrupto de la dificultad de la prueba de trabajo

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ó 1y 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?Fíjate en la dificultad=1

Cambio de powLimiten 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;
¿Estás seguro de que no dijo dificultad 1 todo el tiempo? En la red principal de Bitcoin, la dificultad es igual al objetivo máximo (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.
@DavidA.Harding, sí, lo descubrí más tarde a partir de la documentación de bitcoin. Gracias.
Fresco. Lo convirtió en una respuesta.

Respuestas (1)

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
}