Bitcoin Forum
November 10, 2024, 10:24:54 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: ¿Cómo es el proceso de búsqueda de una transacción en la cadena de bloques?  (Read 2016 times)
Lorient (OP)
Newbie
*
Offline Offline

Activity: 56
Merit: 0


View Profile
August 31, 2014, 07:52:07 PM
 #1

Hola.

Todos sabemos que la cadena de bloques actual son varias decenas de gigas de información.

¿Cuál es el proceso que siguen para encontrar una transacción entre los miles de bloques existentes?
¿Empiezan desde el primer bloque y siguen la lista de bloques hasta encontrar la transacción?
¿O hay algún proceso rápido de acceder a la información sin recorrerse toda la cadena?

Gracias.
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
August 31, 2014, 08:45:41 PM
 #2

¿Cuál es el proceso que siguen para encontrar una transacción entre los miles de bloques existentes?

Que siguen, ¿quiénes?

Si te refieres a bitcoin core, opcionalmente puede mantener un índice para localizar transacciones. Si te refieres a las webs para navegar cadenas de bloques, tienen una base de datos por detrás.
Lorient (OP)
Newbie
*
Offline Offline

Activity: 56
Merit: 0


View Profile
September 01, 2014, 01:24:52 PM
 #3

En realidad me refiero a cualquier tipo de búsqueda para encontrar los datos de una transacción.

Imaginemos que creamos una transacción de 50 BTC, ella tendrá unos input donde están las transacciones de donde vamos a sacar esos 50 BTC.

Pues bien, el minero al validar nuestra transacción, ¿Cómo busca la información de las transacciones de esos input para comprobar que hay fondos suficientes para realizar nuestra transacción de 50 BTC?

¿Se va al primer bloque de la cadena de bloques y va buscando secuencialmente bloque a bloque las transacciones de los input?
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
September 01, 2014, 01:46:41 PM
 #4

Imaginemos que creamos una transacción de 50 BTC, ella tendrá unos input donde están las transacciones de donde vamos a sacar esos 50 BTC.

Pues bien, el minero al validar nuestra transacción, ¿Cómo busca la información de las transacciones de esos input para comprobar que hay fondos suficientes para realizar nuestra transacción de 50 BTC?

¿Se va al primer bloque de la cadena de bloques y va buscando secuencialmente bloque a bloque las transacciones de los input?

Una transacción coge como inputs aquellas outputs de otra transacción anterior. Pero dichas outputs tienen una particularidad especial: no han sido gastadas en ninguna transacción anterior (de lo contrario, nuestra nueva tx sería un intento de doble gasto). Bitcoin core les sigue la pista a todas estas outputs sin gastar (en inglés, "UTXO set") y por eso no le cuesta trabajo localizarlas. El directorio chainstate de Bitcoin Core es para esto.
CriptoPay
Member
**
Offline Offline

Activity: 88
Merit: 10


View Profile WWW
September 07, 2014, 01:04:59 PM
 #5

Todos sabemos que la cadena de bloques actual son varias decenas de gigas de información.

El core de bitcoin por defecto no descarga la blockchain al completo, sino únicmante los indices, a no ser que indiques lo contrario en tu bitcoin.conf

Cripto-Pay.com | Bitcoin payment method with diferents AltCoins.

Bitcointalk ||Twitter || Facebook || Linkedink || info@cripto-pay.com
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
September 07, 2014, 07:21:25 PM
 #6

El core de bitcoin por defecto no descarga la blockchain al completo, sino únicmante los indices, a no ser que indiques lo contrario en tu bitcoin.conf

¿Según lo dispuesto en…?

(pista: eso es mentira)
CriptoPay
Member
**
Offline Offline

Activity: 88
Merit: 10


View Profile WWW
September 07, 2014, 11:13:52 PM
 #7

Si no le metes txindex=1 en el conf no descarga los bloques ni las transacciones al completo

Cripto-Pay.com | Bitcoin payment method with diferents AltCoins.

Bitcointalk ||Twitter || Facebook || Linkedink || info@cripto-pay.com
fernarios
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
September 08, 2014, 12:41:50 AM
 #8

Si no le metes txindex=1 en el conf no descarga los bloques ni las transacciones al completo

txindex mantiene todos los índices de transacciones anteriores, pero sea que mantengas todos los indices o no, siempre se descarga toda la cadena de bloques...

Si ejecutas con -txindex=1 y -reindex=1 va a reconstruir los índices pero no va a descargar nada extra...
CriptoPay
Member
**
Offline Offline

Activity: 88
Merit: 10


View Profile WWW
September 09, 2014, 11:12:09 PM
 #9

Si ejecutas con -txindex=1 y -reindex=1 va a reconstruir los índices pero no va a descargar nada extra...

Entonces por que si no indicas la primera vez txindex=1 y luego mas adelante lo indicas te obliga a descargar todo de nuevo? hice una prueba hace tiempo primero sin txindex y luego con el y la diferencia era de un par de GB, algo más tiene que descargar.

Al igual que en el wallet movil, que utiliza solo "trozos" , en el bitcoind tiene que funcionar de manera similar aunque descargue más bloques.

También aclarar, yo no entiendo como descargar los bloques , el que transfiera únicamente el hash de cada uno sin el listado de transacciones y sus correspondientes detalles.

Cripto-Pay.com | Bitcoin payment method with diferents AltCoins.

Bitcointalk ||Twitter || Facebook || Linkedink || info@cripto-pay.com
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
September 10, 2014, 05:22:38 AM
 #10

Entonces por que si no indicas la primera vez txindex=1 y luego mas adelante lo indicas te obliga a descargar todo de nuevo? hice una prueba hace tiempo primero sin txindex y luego con el y la diferencia era de un par de GB, algo más tiene que descargar.

Bitcoin Core siempre se baja la cadena de bloques, de eso se trata el asunto, de tener la base de datos replicada en cada nodo. Pero con txindex=1, además genera localmente (o sea, sin bajarse nada adicional) un índice de todas las transacciones para poder consultarlas con getrawtransaction (y supongo que para algo más pero eso ya no lo sé).
CriptoPay
Member
**
Offline Offline

Activity: 88
Merit: 10


View Profile WWW
September 18, 2014, 01:59:53 AM
 #11

Entonces por que si no indicas la primera vez txindex=1 y luego mas adelante lo indicas te obliga a descargar todo de nuevo? hice una prueba hace tiempo primero sin txindex y luego con el y la diferencia era de un par de GB, algo más tiene que descargar.

Bitcoin Core siempre se baja la cadena de bloques, de eso se trata el asunto, de tener la base de datos replicada en cada nodo. Pero con txindex=1, además genera localmente (o sea, sin bajarse nada adicional) un índice de todas las transacciones para poder consultarlas con getrawtransaction (y supongo que para algo más pero eso ya no lo sé).

Sigo opinando que algo más se descargó , no se si duplicó la verificación de bloques o qué, pero los 2GB hay estuvieron...

Si alguien tiene algun detalle más sería de agradecer.

Cripto-Pay.com | Bitcoin payment method with diferents AltCoins.

Bitcointalk ||Twitter || Facebook || Linkedink || info@cripto-pay.com
fernarios
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
September 18, 2014, 03:00:29 AM
 #12

Sigo opinando que algo más se descargó , no se si duplicó la verificación de bloques o qué, pero los 2GB hay estuvieron...

Si alguien tiene algun detalle más sería de agradecer.

No se trata de opinar, se trata de hechos:
-reindex               Rebuild block chain index from current blk000??.dat files

Nada se descarga, utiliza los archivos blk....dat (que ya bajaste) para crear los índices.

Creo que debes leer lo que es un índice si no lo has hecho: http://es.wikipedia.org/wiki/%C3%8Dndice_(base_de_datos)

los 2GB hay estuvieron...

Siempre que se crean índices va a aumentar el tamaño de la base de datos, pues se crean campos adicionales, se sacrifica espacio en disco duro para ganar velocidad (creando información redundante), pero no se necesita nada nuevo, lo que se agrega es una referencia a otros datos en otro lugar de la misma base de datos.

Si quieres verlo por voz mismo puedes sincronizar una BD nueva, desconectar el cable de internet y luego ejecutar con -txindex -reindex, si no aumenta de tamaño nos avisas  Roll Eyes.

Si por alguna razón extraña sigues sin estar convencido siempre puedes leer el código por voz mismo y ver exactamente lo que hace...
CriptoPay
Member
**
Offline Offline

Activity: 88
Merit: 10


View Profile WWW
September 18, 2014, 09:29:03 PM
 #13

Muchas gracias por tus aportaciones fernarios

Tema más que aclarado Wink

Saludos

Cripto-Pay.com | Bitcoin payment method with diferents AltCoins.

Bitcointalk ||Twitter || Facebook || Linkedink || info@cripto-pay.com
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!