¿Cómo corregir el error "la dirección ya está en uso" al intentar iniciar la consola geth?

Estoy descargando la cadena y hasta ahora he procesado más de 2 millones de bloques. Estoy tratando de conectarme a la consola geth para ver el estado de sincronización, pero intenté escribir geth consoleen otra terminal (en Mac) y aparece un error:

Fatal: Error starting protocol stack: listen udp :30303: bind: address already in use

Si he entendido correctamente, debo escribir geth consoley luego eth.syncing.

Respuestas (2)

Lo más probable es que el error se deba a que geth ya se está ejecutando y cuando está intentando iniciar otro proceso geth utilizando el mismo puerto predeterminado 30303. Si conoce el directorio de datos del proceso geth que está descargando la cadena, busque un archivo geth.ipc en ese directorio de datos y utilícelo geth attach ipc:<geth.ipc path>para conectarse al proceso existente.

Aparentemente no hay un archivo ipc en el directorio de datos... Sin embargo, está lleno de Idb.
Los archivos ldb deben estar presentes en la carpeta chaindata. Intente hacerlo cd ../..y el archivo geth.ipc debería estar presente allí.
esto no funciona para mi:$ geth attach ipc:~/.ethereum/geth.ipc │······················································· Fatal: Unable to attach to remote geth: dial unix ~/.ethereum/geth.ipc: connect: no such fi│······················································· le or directory

Si está utilizando Linux, vaya a la terminal y ejecute los siguientes comandos:

 $ netstat -p || grep 30303
    $ kill -9 `process id`
Creo que te refieres a |(pipa) en lugar de ||(o). Además, no lo use killcon -9. Equivale a a SIGKILL, que significa "matar el proceso inmediatamente". Si su instancia de Geth actualmente está escribiendo en el disco, está solicitando una base de datos corrupta... Use una señal que pueda ser capturada por los manejadores de señales de Geth (por ejemplo, SIGINTusando kill -INT <pid>).