la consola geth no se inicia en modo dev (archivo personalizado de Genesis Json)

Creé dos cuentas y para ambas direcciones de cuenta les proporcioné algo de éter en un genesis.json personalizado. Luego ejecuté el comando

geth - datadir "/tmp/ethereum_dev_mode/" -dev unlock 0,1 -rpc -rpcaddr w.x.y.z -rpccorsdomain "*" -rpcport abcd init "/tmp/ethereum_dev_mode/genesis.json"

Este comando se ejecutó con éxito y creó el bloque de génesis personalizado, asignó el caché y los identificadores de archivos, escribió el estado de génesis, etc. luego ejecuté el comando geth -datadir "/tmp/ethereum_dev_mode/geth/" -fast console "/tmp/ethereum_dev_mode/genesis.json" -dev Obtuve el siguiente error-

Fatal: error al iniciar la pila de protocolos: la base de datos ya contiene un bloque de génesis incompatible (tiene 65e04841b69188e8, nuevo e5be92145a301820)

¿Se debe a un archivo de génesis personalizado? Incluso cuando se usaba el archivo de génesis personalizado, el comando init se ejecutó correctamente pero no se pudo iniciar la consola de desarrollo.

Respuestas (2)

Debido al bloque de génesis inicializado una vez. Lo había ejecutado una vez, la información del bloque de génesis se escribió en la base de datos, pero ahora lo ejecutó de nuevo, por lo que se produjo este error. el comando correcto es:

geth --datadir "/tmp/ethereum_dev_mode/geth/" --fast --dev console 

Hay un juicio claro en el archivo fuente de go-ethereum, de la siguiente manera:

// Check whether the genesis block is already written.
    if genesis != nil {
        block, _ := genesis.ToBlock()
        hash := block.Hash()
        if hash != stored {
            return genesis.Config, block.Hash(), &GenesisMismatchError{stored, hash}
        }
    }

Espero que esto te ayude ~

Eche un vistazo a esta pregunta: Cómo usar un directorio de datos personalizado en modo Dev (blockchain privado) . DevMode aplica ciertas características como un bloque de génesis específico, un directorio de datos específico, etc. Probablemente, --dev no es lo que desea si está tratando de familiarizarse con la minería y los contratos inteligentes.