Me gustaría tomar los datos del bloque de bitcoin y enviarlos para evitar tener que pasar por la descarga de blockchain nuevamente en otras computadoras en mi red local. Para asegurarme de que no se dañe la base de datos, detengo bitcoin antes de la transferencia. Ejecutar el comando de Unix bitcoind stop
devolverá
Bitcoin has stopped running!
Me doy cuenta de que todavía se ejecuta en la parte superior durante unos momentos después de recibir este mensaje. Esto no es un problema, ya que nunca dura más de 15 segundos, sin embargo, estoy buscando automatizar este proceso usando un simple script php.
El uso de un comando bitcoin-rpc como el $status = $bitcoin->stop()
que arrojaría un resultado de "Bitcoin ha dejado de ejecutarse", pero aún puede estar ejecutándose en la parte superior.
¿Cómo me aseguro de que Bitcoin realmente dejó de funcionar? ¿O es seguro realizar la transferencia de datos tan pronto como recibo este mensaje (Bitcoin sigue escribiendo en db después de notificarle que se detuvo)?
en linux:
ps aux | grep bitcoind
O incluso:
watch ps aux | grep bitcoind
Pero para responder a su pregunta de manera ligeramente diferente, sugeriría mantener el bitcoind existente en ejecución. Luego, su nuevo nodo agrega una declaración de conexión con la IP local del nodo anterior en el archivo bitcoin.conf (ubicado generalmente en $HOME/.bitcoin/).
Su nuevo nodo se conectará únicamente al nodo existente y descargará, a través de su red local, todos los bloques del nodo existente.
Además, si ambas PC son móviles, puede dejarlo así para evitar descargas duplicadas de Internet. Una alternativa si la segunda es una computadora portátil, por ejemplo, es usar -addnode en su lugar. Desde aquí :
-addnode=<ip> Add a node to connect to and attempt to keep the connection open
-connect=<ip> Connect only to the specified node(s)
-dns Allow DNS lookups for -addnode, -seednode and -connect (default: 1)
Mathias711
top
durante un par de segundos probablemente se deba a la finalización de la base de datos, la liberación de toda la memoria y demás. Creo que es mejor poner unsleep(15)
(o 30, por razones de seguridad) y luego programarlo y hacer que cada milisegundo cuente.Marca
Mathias711
Marca