¿Qué es nMinimumChainWork?

Estaba tratando de ejecutar mi propia red privada de bitcoin, así que descargué la fuente y la compilé, luego comencé dos bitcoindinstancias en dos contenedores acoplables y me aseguré de que no se conectaran a una red externa, usé -connect=0 -dns=0 -dnsseed=0y luego -addnodepara especificar otros nodos IP y puerto. Cuando intenté ejecutar un minero local, el RPC getblocktemplatesiempre devolvía Bitcoin is downloading blocks.... Al mirar la fuente, parece que no pasará esta línea:

// in IsInitialBlockDownlaod
if (chainActive.Tip()->nChainWork < nMinimumChainWork) {
     return true;
}

la definición se encuentra en chainparams.cpp:

// The best chain should have at least this much work.
consensus.nMinimumChainWork = uint256S("0x000000000000000000000000000000000000000000f91c579d57cad4bc5278cc");

¿Qué significa esto? nMinimumChainWorkpara que sirve Y cuál es el número hexadecimal codificado, al buscar blockchain.info no es un hash de bloque.

Respuestas (1)

Es un número diseñado para proteger a los nuevos clientes de aceptar cadenas de bloques falsas cuando se sincronizan inicialmente, si un atacante logró segregarlas de la red. Como su nombre lo indica, es la cantidad mínima de trabajo total que debe tener una cadena antes de que el cliente la considere válida. Se actualiza a un número más alto en cada versión, según el trabajo total en la cadena de bloques en el momento de esa versión (el formato hexadecimal es más compacto y coherente con otro código que, por ejemplo, un número decimal)

Ok, entonces el número es de un bloque de red bitcoin real, eso significa que el software está conectado a la red principal, no hay forma de ejecutar la propia red privada, ¿no es así?
No, es como una cantidad de trabajo que se necesita, cualquier cadena que tuviera tanto trabajo sería aceptada. PERO sería básicamente imposible crear una nueva cadena con tanto trabajo, ese es el punto de PoW, por lo que tiene razón en que necesitaría modificar ese valor si desea ejecutar su propia red privada (estaría creando un moneda alternativa)