¿Reducir la dificultad en testnet-in-a-box?

Estoy haciendo algunas pruebas y, a menudo, necesito generar 6 bloques rápidamente para confirmar algunos tx. Cada bloque tarda unos minutos en generarse en mi macbook, por lo que esto ralentiza considerablemente las cosas.

¿Hay alguna forma de ajustar la dificultad? Tenga en cuenta que esto no es para la red de prueba en general, sino para la red de prueba privada en una caja con solo 2 nodos en mi máquina de desarrollo. ¡Gracias!

Respuestas (1)

Cambiando estas 2 líneas obtienes lo que quieres. Tenga en cuenta que es rápido y sucio y romperá la red que no sea de prueba, así que no use esto para nada más que para la red de prueba:

diff --git a/src/main.cpp b/src/main.cpp
index a9311e2..b3496a1 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -780,7 +780,7 @@ int64 static GetBlockValue(int nHeight, int64 nFees)
 }

 static const int64 nTargetTimespan = 14 * 24 * 60 * 60; // two weeks
-static const int64 nTargetSpacing = 10 * 60;
+static const int64 nTargetSpacing = 10;
 static const int64 nInterval = nTargetTimespan / nTargetSpacing;

 //
@@ -1784,7 +1784,7 @@ bool LoadBlockIndex(bool fAllowNew)
     if (fTestNet)
     {
         hashGenesisBlock = uint256("0x00000007199508e34a9ff81e6ec0c477a4cccff2a4767a8eee39c11db367b008");
-        bnProofOfWorkLimit = CBigNum(~uint256(0) >> 28);
+        bnProofOfWorkLimit = CBigNum(~uint256(0) >> 15);
         pchMessageStart[0] = 0xfa;
         pchMessageStart[1] = 0xbf;
         pchMessageStart[2] = 0xb5;

Aquí hay algunos resultados de debug.log con esos cambios. Estoy generando un bloque cada 2 segundos más o menos. Si eso es demasiado rápido, aumente el ">> 15" en consecuencia. Cada incremento duplica el tiempo entre bloques.

03/05/12 07:21:54 Flushing wallet.dat
Flushed wallet.dat 132ms
askfor block 000000935f454d1641e5   0
sending getdata: block 000000935f454d1641e5
received block 000000935f454d1641e5
SetBestChain: new best=000000935f454d1641e5  height=23  work=559980566
ProcessBlock: ACCEPTED
askfor block 00000c4d375ce8f92166   0
sending getdata: block 00000c4d375ce8f92166
received block 00000c4d375ce8f92166
SetBestChain: new best=00000c4d375ce8f92166  height=24  work=561029143
ProcessBlock: ACCEPTED
askfor block 000007e863a6d86bfb1d   0
sending getdata: block 000007e863a6d86bfb1d
received block 000007e863a6d86bfb1d
SetBestChain: new best=000007e863a6d86bfb1d  height=25  work=562077720
ProcessBlock: ACCEPTED
03/05/12 07:21:59 Flushing wallet.dat
¡Esto es genial gracias! Supongo que tendré que reconstruir bitcoin después, tal vez así bitcoin.stackexchange.com/questions/793/… Todavía no he logrado lograrlo, pero lo intentaré, ¡gracias!
Sí, reconstruya bitcoin (o solo bitcoind, si eso es todo lo que está usando en sus pruebas) y guárdelo en un lugar separado del bitcoin 'real' que usa en la red que no es de prueba.
¡¡Funcionó!! Muchas gracias por su ayuda, realmente lo aprecio. En serio.