Author

Topic: Programa en Python3 para guardar estadisticas de cada bloque (Read 1025 times)

hero member
Activity: 865
Merit: 1006
Gracias por compartirlo @xcbtrader, tienes pensado subirlo a Github o cualquier otra plataforma con toda la información del programa y licencias?
Creo que estaría genial y allí la gente podría incluso colaborar aportando nuevas funcionalidades y tú si quieres puedes incorporarlas al original.

Ya nos comentas!

Cuando tenga un ratito lo subiré...

ya tengo una cuenta en Github, donde actualmente he puesto el programa para crear direcciones bitcoin personalizadas..
https://github.com/xcbtrader/VanityBTC

Saludos
legendary
Activity: 1960
Merit: 1130
Truth will out!
Gracias por compartirlo @xcbtrader, tienes pensado subirlo a Github o cualquier otra plataforma con toda la información del programa y licencias?
Creo que estaría genial y allí la gente podría incluso colaborar aportando nuevas funcionalidades y tú si quieres puedes incorporarlas al original.

Ya nos comentas!
vgo
legendary
Activity: 2072
Merit: 1019
Creo que estamos mejor en el general y no en Mercado y Economía, a falta de una sección técnica. Si no estáis de acuerdo, nos volvemos.
hero member
Activity: 865
Merit: 1006
Gracias.

Un par de sugerencias, una es que si quieres que sea libre, tienes que poner una licencia libre (y si no es mejor poner Copyright o la licencia empleada de forma que la gente lo sepa). También te sugiero usar las etiquetas de código para separar el programa del resto de texto, algo tal que así:
Code:
__author__ = 'XcbTrader'
import urllib
import json
import requests
import time

blockLast = 0

while True:
   
   try:
      request = 'http://btc.blockr.io/api/v1/coin/info'
      response = requests.get(request)
      content = response.json()
      block = content['data'] ['last_block'] ['nb']
      if block > blockLast:
         blockLast = block
         request2 = 'http://btc.blockr.io/api/v1/block/info/' + str(block)
         response2 = requests.get(request2)
         content2 = response2.json()   
   
         valorB = str(content['data'] ['last_block'] ['time_utc'])
         fechaB = valorB[8:10] + '/' + valorB[5:7] + '/' + valorB[0:4]
         horaB = valorB[11:19]
         dificultad = content['data'] ['last_block'] ['difficulty']
         totalBitcoins = str(content2['data'] ['vout_sum'])
         btce = str(content['data'] ['markets'] ['btce']['value'])
         coinbase = str(content['data'] ['markets'] ['coinbase']['value'])
         print()
         print ('--------------------------------------------------------')
         print ('Bloque: ' + str(block) + ' --- ' + fechaB + ' - ' + horaB)
         print ('Total Bicoins en el Bloque: ' + totalBitcoins + ' btc')
         print ('Precio Btce: ' + btce + ' $')
         print ('Precio Coinbase: ' + coinbase + ' $')
         print ('Dificultad: ' + str(dificultad))
         print ('--------------------------------------------------------')
         fichEstadist = 'EstadistBitcoin.txt'
         fEstadist = open(fichEstadist, "a")
         fEstadist.write(str(block) + ';' + fechaB + ';' + horaB + ';'+ totalBitcoins + ';' + btce + ';' + coinbase + ';' + str(dificultad))
         fEstadist.write('\n')
         fEstadist.close()
   except:
      print ('######## ERROR #########')
   print('#',end="",flush=True)
   time.sleep(120)

Tengo que mirar si existe algún lenguaje tipo JavaScript para ejecutar fuera de la web, sería un gran invento para los que no nos gusta programar en Python.  Tongue

Muchas gracias por las sugerencias.
Esto de la etiqueta CODE lo desconocía.
Ya lo he modificado.
Me sabe mal pero no conozco Java...

Saludos
legendary
Activity: 1260
Merit: 1003
Gracias.

Un par de sugerencias, una es que si quieres que sea libre, tienes que poner una licencia libre (y si no es mejor poner Copyright o la licencia empleada de forma que la gente lo sepa). También te sugiero usar las etiquetas de código para separar el programa del resto de texto, algo tal que así:
Code:
__author__ = 'XcbTrader'
import urllib
import json
import requests
import time

blockLast = 0

while True:
   
   try:
      request = 'http://btc.blockr.io/api/v1/coin/info'
      response = requests.get(request)
      content = response.json()
      block = content['data'] ['last_block'] ['nb']
      if block > blockLast:
         blockLast = block
         request2 = 'http://btc.blockr.io/api/v1/block/info/' + str(block)
         response2 = requests.get(request2)
         content2 = response2.json()   
   
         valorB = str(content['data'] ['last_block'] ['time_utc'])
         fechaB = valorB[8:10] + '/' + valorB[5:7] + '/' + valorB[0:4]
         horaB = valorB[11:19]
         dificultad = content['data'] ['last_block'] ['difficulty']
         totalBitcoins = str(content2['data'] ['vout_sum'])
         btce = str(content['data'] ['markets'] ['btce']['value'])
         coinbase = str(content['data'] ['markets'] ['coinbase']['value'])
         print()
         print ('--------------------------------------------------------')
         print ('Bloque: ' + str(block) + ' --- ' + fechaB + ' - ' + horaB)
         print ('Total Bicoins en el Bloque: ' + totalBitcoins + ' btc')
         print ('Precio Btce: ' + btce + ' $')
         print ('Precio Coinbase: ' + coinbase + ' $')
         print ('Dificultad: ' + str(dificultad))
         print ('--------------------------------------------------------')
         fichEstadist = 'EstadistBitcoin.txt'
         fEstadist = open(fichEstadist, "a")
         fEstadist.write(str(block) + ';' + fechaB + ';' + horaB + ';'+ totalBitcoins + ';' + btce + ';' + coinbase + ';' + str(dificultad))
         fEstadist.write('\n')
         fEstadist.close()
   except:
      print ('######## ERROR #########')
   print('#',end="",flush=True)
   time.sleep(120)

Tengo que mirar si existe algún lenguaje tipo JavaScript para ejecutar fuera de la web, sería un gran invento para los que no nos gusta programar en Python.  Tongue
hero member
Activity: 865
Merit: 1006
Buenas a todos.

Para los que les pueda interesar he hecho un programa en Python 3.5 para ir guardando en un fichero que después podemos exportar a excel, algunos datos de cada bloque generado en la blockchain:

Datos:
Numero del bloque; Fecha; Hora; Total bitcoins del bloque, Valor Bitcoin Btce, Valor Bitcoin Coinbase, Dificultad.

Creo que puede ser interesante para futuros análisis, por ejemplo de la oscilación del precio del bitcoin en función del volumen.
El programa, permite modificando pocas cosas, guardar más información.
Se tiene que dejar ejecutando para que vaya recuperando la información.
Consume muy pocos recursos, ya sea del PC o de la red. Conecta sólo una vez cada 2 minutos para comprobar si hay un bloque nuevo.

Evidentemente se puede sofisticar mucho más, pero como elemento de partida lo encuentro muy válido.

Un saludo

PROGRAMA:

Code:
__author__ = 'XcbTrader'
import urllib
import json
import requests
import time

blockLast = 0

while True:

try:
request = 'http://btc.blockr.io/api/v1/coin/info'
response = requests.get(request)
content = response.json()
block = content['data'] ['last_block'] ['nb']
if block > blockLast:
blockLast = block
request2 = 'http://btc.blockr.io/api/v1/block/info/' + str(block)
response2 = requests.get(request2)
content2 = response2.json()

valorB = str(content['data'] ['last_block'] ['time_utc'])
fechaB = valorB[8:10] + '/' + valorB[5:7] + '/' + valorB[0:4]
horaB = valorB[11:19]
dificultad = content['data'] ['last_block'] ['difficulty']
totalBitcoins = str(content2['data'] ['vout_sum'])
btce = str(content['data'] ['markets'] ['btce']['value'])
coinbase = str(content['data'] ['markets'] ['coinbase']['value'])
print()
print ('--------------------------------------------------------')
print ('Bloque: ' + str(block) + ' --- ' + fechaB + ' - ' + horaB)
print ('Total Bicoins en el Bloque: ' + totalBitcoins + ' btc')
print ('Precio Btce: ' + btce + ' $')
print ('Precio Coinbase: ' + coinbase + ' $')
print ('Dificultad: ' + str(dificultad))
print ('--------------------------------------------------------')
fichEstadist = 'EstadistBitcoin.txt'
fEstadist = open(fichEstadist, "a")
fEstadist.write(str(block) + ';' + fechaB + ';' + horaB + ';'+ totalBitcoins + ';' + btce + ';' + coinbase + ';' + str(dificultad))
fEstadist.write('\n')
fEstadist.close()
except:
print ('######## ERROR #########')
print('#',end="",flush=True)
time.sleep(120)

El programa es de libre uso/modificación, y se agradecen las mejoras...
Jump to: