Author

Topic: ¿Cómo es el proceso de búsqueda de una transacción en la cadena de bloques? (Read 2016 times)

member
Activity: 88
Merit: 10
Muchas gracias por tus aportaciones fernarios

Tema más que aclarado Wink

Saludos
hero member
Activity: 616
Merit: 501
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:
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...
member
Activity: 88
Merit: 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é).

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.
legendary
Activity: 1974
Merit: 1029
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é).
member
Activity: 88
Merit: 10
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.
hero member
Activity: 616
Merit: 501
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...
member
Activity: 88
Merit: 10
Si no le metes txindex=1 en el conf no descarga los bloques ni las transacciones al completo
legendary
Activity: 1974
Merit: 1029
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)
member
Activity: 88
Merit: 10
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
legendary
Activity: 1974
Merit: 1029
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.
newbie
Activity: 56
Merit: 0
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?
legendary
Activity: 1974
Merit: 1029
¿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.
newbie
Activity: 56
Merit: 0
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.
Jump to: