Bitcoin Forum
April 24, 2024, 09:04:16 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Sincronizar por linea de comandos SOLUCIONADO  (Read 1200 times)
01835113 (OP)
Full Member
***
Offline Offline

Activity: 128
Merit: 104


View Profile
June 26, 2014, 07:43:05 PM
Last edit: June 27, 2014, 12:23:33 PM by 01835113
 #1

Hola
Quería saber si alguien me podría indicar como puedo saber, por línea de órdenes, si mi programa bitcoind está sincronizado con la red.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713992656
Hero Member
*
Offline Offline

Posts: 1713992656

View Profile Personal Message (Offline)

Ignore
1713992656
Reply with quote  #2

1713992656
Report to moderator
1713992656
Hero Member
*
Offline Offline

Posts: 1713992656

View Profile Personal Message (Offline)

Ignore
1713992656
Reply with quote  #2

1713992656
Report to moderator
xcbtrader
Hero Member
*****
Offline Offline

Activity: 865
Merit: 1006


View Profile
June 26, 2014, 08:37:07 PM
 #2

Hola
Quería saber si alguien me podría indicar como puedo saber, por línea de órdenes, si mi programa bitcoind está sincronizado con la red.


Buenas. Si escribes help en la linea de comandos te dice todas las instrucciones que puedes poner.
De todas formas, cuando está sincronizado te sale un mensaje en verde (o eso creo)

Saludos

01835113 (OP)
Full Member
***
Offline Offline

Activity: 128
Merit: 104


View Profile
June 27, 2014, 03:32:02 AM
 #3

Hola
Quería saber si alguien me podría indicar como puedo saber, por línea de órdenes, si mi programa bitcoind está sincronizado con la red.


Buenas. Si escribes help en la linea de comandos te dice todas las instrucciones que puedes poner.
De todas formas, cuando está sincronizado te sale un mensaje en verde (o eso creo)

Saludos

¿Un mensaje en verde desde la terminal?
xcbtrader
Hero Member
*****
Offline Offline

Activity: 865
Merit: 1006


View Profile
June 27, 2014, 04:57:18 AM
 #4

Hola
Quería saber si alguien me podría indicar como puedo saber, por línea de órdenes, si mi programa bitcoind está sincronizado con la red.


Buenas. Si escribes help en la linea de comandos te dice todas las instrucciones que puedes poner.
De todas formas, cuando está sincronizado te sale un mensaje en verde (o eso creo)

Saludos

¿Un mensaje en verde desde la terminal?

Si.

dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
June 27, 2014, 06:03:29 AM
 #5

Quería saber si alguien me podría indicar como puedo saber, por línea de órdenes, si mi programa bitcoind está sincronizado con la red.

Que yo sepa no se puede.
Shawshank
Legendary
*
Offline Offline

Activity: 1623
Merit: 1608



View Profile
June 27, 2014, 11:41:28 AM
 #6

Desde la versión 0.9, se ha separado la funcionalidad del servidor en bitcoind, y la del cliente en bitcoin-cli. El ejecutable bitcoin-qt funciona como cliente y servidor.

No hay una forma totalmente correcta de saber si hemos recibido el último bloque, porque la sincronización es un proceso continuo. La mejor aproximación es ver el día y la hora del último bloque recibido y comprobar si no dista, por ejemplo, más de 30 minutos de la hora actual.

Te adjunto los comandos que acabo de lanzar en mi máquina Ubuntu que demuestra que tengo el Bitcoin Core actualizado. En Windows sería muy parecido.

$ bitcoin-qt &
[1] 23682

$ ./bitcoin-cli getblockcount
308097

$ ./bitcoin-cli getblockhash 308097
000000000000000025ad567405f49664d69968686762917216b9983951eec67d

$ ./bitcoin-cli getblock 000000000000000025ad567405f49664d69968686762917216b9983951eec67d | grep time
    "time" : 1403868052,

$ date -d @1403868052
vie jun 27 13:20:52 CEST 2014


Como la fecha actual son las 13:29 del 27 de junio, la diferencia es de "solo" 9 minutos, y por tanto se puede considerar que el Bitcoin Core al que he accedido está actualizado.

El ejemplo que he pasado está ejecutado en Ubuntu, pero para Windows sería parecido. Si quieres que se ejecute todo de forma automática, quizás tengas que utilizar sed o gawk en Linux, pero espero que te sirva para hacerte una idea.

Si tienes cualquier otra duda, pregunta.

Lightning Address: shawshank@getalby.com
01835113 (OP)
Full Member
***
Offline Offline

Activity: 128
Merit: 104


View Profile
June 27, 2014, 12:00:28 PM
 #7

Quería saber si alguien me podría indicar como puedo saber, por línea de órdenes, si mi programa bitcoind está sincronizado con la red.

Que yo sepa no se puede.

Entonces no sé cómo puedo saber cuando puedo poner a funcionar mis aplicaciones desde un servidor.
Shawshank
Legendary
*
Offline Offline

Activity: 1623
Merit: 1608



View Profile
June 27, 2014, 12:09:57 PM
 #8

Quería saber si alguien me podría indicar como puedo saber, por línea de órdenes, si mi programa bitcoind está sincronizado con la red.

Que yo sepa no se puede.

Entonces no sé cómo puedo saber cuando puedo poner a funcionar mis aplicaciones desde un servidor.

Lo puedes conseguir comprobando la fecha y hora que te devuelve un script como el que te he indicado.

Si solo necesitas saber si tienes Bitcoin Core sincronizado para ver si puedes lanzar tus aplicaciones, ejecuta el siguiente comando:
bitcoin-cli getblockcount

y comprueba visualmente que coincide con el último bloque recibido en https://blockchain.info

Lightning Address: shawshank@getalby.com
01835113 (OP)
Full Member
***
Offline Offline

Activity: 128
Merit: 104


View Profile
June 27, 2014, 12:23:09 PM
Last edit: June 27, 2014, 12:41:34 PM by 01835113
 #9

Quería saber si alguien me podría indicar como puedo saber, por línea de órdenes, si mi programa bitcoind está sincronizado con la red.

Que yo sepa no se puede.

Entonces no sé cómo puedo saber cuando puedo poner a funcionar mis aplicaciones desde un servidor.

Lo puedes conseguir comprobando la fecha y hora que te devuelve un script como el que te he indicado.

Si solo necesitas saber si tienes Bitcoin Core sincronizado para ver si puedes lanzar tus aplicaciones, ejecuta el siguiente comando:
bitcoin-cli getblockcount

y comprueba visualmente que coincide con el último bloque recibido en https://blockchain.info




Muchas gracias funciona, yo también uso ubuntu.
Perdón por mi mensaje anterior pero no se me mostraba la otra respuesta que me habías dado donde hablas de bitcoin-cli. No sabía eso, que se había separado la funcionalidad del cliente y servidor en dos ejecutables, entonces hay que arrancar bitcoind e interactuar a través de los comandos mediante bitcoin-cli. Pero también funciona con "bitcoind comando" aún, he comprobado.
Hasta luego gracias.


01835113 (OP)
Full Member
***
Offline Offline

Activity: 128
Merit: 104


View Profile
June 27, 2014, 12:30:28 PM
 #10

Joer, que guay está esto me encanta  Grin
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
June 27, 2014, 12:31:28 PM
 #11

No hay una forma totalmente correcta de saber si hemos recibido el último bloque, porque la sincronización es un proceso continuo.

Sí, pero es que en el -qt hay una indicación visual de que estamos sincronizados, o de que estamos X tiempo por detrás. Por tanto el cliente lo sabe, pero por alguna razón no exporta un valor como este mediante el interface RPC.
Shawshank
Legendary
*
Offline Offline

Activity: 1623
Merit: 1608



View Profile
June 27, 2014, 12:50:29 PM
 #12

No hay una forma totalmente correcta de saber si hemos recibido el último bloque, porque la sincronización es un proceso continuo.

Sí, pero es que en el -qt hay una indicación visual de que estamos sincronizados, o de que estamos X tiempo por detrás. Por tanto el cliente lo sabe, pero por alguna razón no exporta un valor como este mediante el interface RPC.

Parece que ya está añadido también a través de la interfaz JSON-RPC. Acabo de lanzar el siguiente comando:

curl --user miusuario --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method":"getblockcount", "params":[]}' -H 'content-type: text/plain;' http://127.0.0.1:8332
Enter host password for user 'miusuario':

Y la interfaz JSON-RPC me ha devuelto lo siguiente:

{"result":308104,"error":null,"id":"curltest"}

indicando que, efectivamente, el bloque más alto de la cadena es la número 308104.

Lightning Address: shawshank@getalby.com
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
June 27, 2014, 12:55:27 PM
 #13

{"result":308104,"error":null,"id":"curltest"}

indicando que, efectivamente, el bloque más alto de la cadena es la número 308104.

Pero no hay ningún valor que te diga "Estamos 0 bloques por detrás", tal como dice el GUI (vale, el GUI lo traduce en un intervalo temporal pero viene siendo lo mismo). O sea, seguimos teniendo que ir a terceros para comprobar si el último bloque coincide.
Shawshank
Legendary
*
Offline Offline

Activity: 1623
Merit: 1608



View Profile
June 27, 2014, 01:18:21 PM
 #14

{"result":308104,"error":null,"id":"curltest"}

indicando que, efectivamente, el bloque más alto de la cadena es la número 308104.

Pero no hay ningún valor que te diga "Estamos 0 bloques por detrás", tal como dice el GUI (vale, el GUI lo traduce en un intervalo temporal pero viene siendo lo mismo). O sea, seguimos teniendo que ir a terceros para comprobar si el último bloque coincide.

¡Ah! ¡Cierto! No dice en ningún momento estamos x bloques por detrás porque no es un valor fiable.

La interfaz gráfica dice "Descargados abc bloques de un total de xyz bloques", pero es un hack que es fácilmente trucable. En ocasiones he visto cifras de bloques en los miles de millones, algo imposible, porque hay nodos que intentan engañar. Por esa razón, tengo entendido que en la próxima interfaz gráfica de Bitcoin Core, se va a basar únicamente en el timestamp del último bloque recibido, que es lo realmente fiable y no se puede trucar.

Lightning Address: shawshank@getalby.com
gizzig
Hero Member
*****
Offline Offline

Activity: 632
Merit: 500


View Profile WWW
June 27, 2014, 06:34:07 PM
 #15

Hola
Blockchain tiene un API que (creo) hace eso y mucho más y es gratuito.

https://blockchain.info/es/api

Está muy bien explicado y funciona desde la Web


Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!