Bitcoin Forum
June 06, 2024, 02:26:19 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Direcciones Bitcoin implicadas en cada bloque  (Read 508 times)
xcbtrader (OP)
Hero Member
*****
Offline Offline

Activity: 865
Merit: 1006


View Profile
January 17, 2016, 08:37:36 AM
 #1

Buenas a todos.

Para un proyecto que estoy desarrollando, necesito saber las direcciones bitcoin implicadas en cada bloque, o todas las direcciones que actualmente tienen saldo.
Estoy programando en Python, y utilizo la billetera electrum y su protocolo.

¿No se si esto es posible?

Mirando lo que tarda electrum cuando pides el balance de una dirección, supongo que tiene que existir alguna base de datos con toda esta info.

Un saludo

dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
January 17, 2016, 09:34:42 AM
 #2

Mirando lo que tarda electrum cuando pides el balance de una dirección, supongo que tiene que existir alguna base de datos con toda esta info.

La base de datos se llama "cadena de bloques" Smiley y usando electrum no tienes acceso directo a ella. Una cosa que podrías hacer sería usar bitcoin core y atacarle por el interfaz RPC para extraer todas las transacciones de cada bloque y todas las direcciones de cada transacción.
xcbtrader (OP)
Hero Member
*****
Offline Offline

Activity: 865
Merit: 1006


View Profile
January 17, 2016, 01:53:11 PM
 #3

Je je je...

Ya se que la base de datos general de bitcoin, es la cadena de bloques, pero dudo, que cuando haces una búsqueda de el saldo de una dirección, se recorra en ese momento toda la cadena para encontrar todos los movimientos de esa cuenta.
Hablamos de muchos Gigas de info y muchos movimientos.
Supongo que debe existir algún tipo de base datos adicional, sólo con las direcciones, y que se va actualizando cada bloque.

No se, es sólo una suposición ...

dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
January 17, 2016, 05:03:51 PM
 #4

dudo, que cuando haces una búsqueda de el saldo de una dirección, se recorra en ese momento toda la cadena para encontrar todos los movimientos de esa cuenta.
Hablamos de muchos Gigas de info y muchos movimientos.

Si te refieres a webs del tipo blockchain.info o insight.bitpay.com, ellos tienen una base de datos adicional (aparte de la cadena de bloques) que se actualiza con cada bloque que es descubierto, lo que posibilita hacer esta clase de búsquedas.

O sea, básicamente lo que supones Tongue.
xcbtrader (OP)
Hero Member
*****
Offline Offline

Activity: 865
Merit: 1006


View Profile
January 18, 2016, 08:19:35 PM
 #5

Al final he encontrado una API interesante donde se puede consultar la blockchain en formato JSON.

Como no se mucha programación, me estoy rompiendo la cabeza para poder acceder a los datos en ese formato.
Yo necesito recuperar las direcciones que se muestran en la web.
Pongo un ejemplo para que se ve el texto en formatp JSOn por si alguien me puede ayudar:

{"status":"success","data":{"nb":393760,"limit_txs":100,"nb_txs":359,"nb_txs_displayed":100,"txs":[{"tx":"caefd14f2206c559e3881eabf5a7f2cb7315596c9a685a14a412e995a825918f","trade":{"vins":[],"vouts":[{"address":"1Ebb8NfVmKMoGuMJCAEbVMv2dX8GnzgxSa","is_nonstandard":false,"amount":25.07060034,"n":0,"type":1,"is_spent":0}]},"days_destroyed":0,"is_coinbased":1,"fee":"0.00000000","extras":null},{"tx":"4178548834ef9170ebf1d027d74d9d19a4f4cf969a58a77e1a15008b6f59f353","trade":{"vins":[{"address":"1FCuomATbxZ7DV2uiAPyBZNFK1rPXc2N6k","is_nonstandard":false,"amount":-199.99999073,"n":0,"type":0,"vout_tx":"29d62cbc3200854740178e3b95588d64473cc4b845cafc15bafff7839c90f9c8"}],"vouts":[{"address":"1MYX423TnHL3TWHrNVkvbst1VDqCrBKuyk","is_nonstandard":false,"amount":199.99995193,"n":0,"type":1,"is_spent":0}]},"days_destroyed":28058.33,"is_coinbased":0,"fee":"0.00003880","extras":null},{"tx":"5202666665cd53d94162ee1e70040cb6273767468c7f118ca16c183e585a9af7","trade":{"vins":

La web de donde obtengo los resultados es:
http://btc.blockr.io/api/v1/block/txs/last

Esto da el último bloque minado.

¿Alguien sabe como puedo sacar las address en este formato?

Pongo un ejemplo del código de prueba que estoy haciendo:

import urllib
import json
import requests

request = 'http://btc.blockr.io/api/v1/block/txs/last'
response = requests.get(request)
content = response.json()

addr = (content['data'] ['txs'])
print (addr)

Un saludo

dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
January 18, 2016, 09:05:44 PM
 #6

import urllib
import json
import requests

request = 'http://btc.blockr.io/api/v1/block/txs/last'
response = requests.get(request)
content = response.json()

Code:
for tx in content['data']['txs']:
    for vout in tx['trade']['vouts']:
        print vout['address']
xcbtrader (OP)
Hero Member
*****
Offline Offline

Activity: 865
Merit: 1006


View Profile
January 18, 2016, 10:23:35 PM
 #7

import urllib
import json
import requests

request = 'http://btc.blockr.io/api/v1/block/txs/last'
response = requests.get(request)
content = response.json()

Code:
for tx in content['data']['txs']:
    for vout in tx['trade']['vouts']:
        print vout['address']


Muchas gracias!!!

Funciona perfectamente
Simplemente, como trabajo con Python 3.5 he modificado el print:

print (vout['address'])

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!