Lorient (OP)
Newbie
Offline
Activity: 56
Merit: 0
|
|
August 31, 2014, 07:52:07 PM |
|
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.
|
|
|
|
|
|
|
|
|
"In a nutshell, the network works like a distributed
timestamp server, stamping the first transaction to spend a coin. It
takes advantage of the nature of information being easy to spread but
hard to stifle." -- Satoshi
|
|
|
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
|
|
|
|
dserrano5
Legendary
Offline
Activity: 1974
Merit: 1029
|
|
August 31, 2014, 08:45:41 PM |
|
¿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
Activity: 56
Merit: 0
|
|
September 01, 2014, 01:24:52 PM |
|
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
Activity: 1974
Merit: 1029
|
|
September 01, 2014, 01:46:41 PM |
|
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
|
|
September 07, 2014, 01:04:59 PM |
|
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
|
|
|
|
dserrano5
Legendary
Offline
Activity: 1974
Merit: 1029
|
|
September 07, 2014, 07:21:25 PM |
|
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
|
|
September 07, 2014, 11:13:52 PM |
|
Si no le metes txindex=1 en el conf no descarga los bloques ni las transacciones al completo
|
|
|
|
fernarios
|
|
September 08, 2014, 12:41:50 AM |
|
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
|
|
September 09, 2014, 11:12:09 PM |
|
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.
|
|
|
|
dserrano5
Legendary
Offline
Activity: 1974
Merit: 1029
|
|
September 10, 2014, 05:22:38 AM |
|
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
|
|
September 18, 2014, 01:59:53 AM |
|
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.
|
|
|
|
fernarios
|
|
September 18, 2014, 03:00:29 AM |
|
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 . 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
|
|
September 18, 2014, 09:29:03 PM |
|
Muchas gracias por tus aportaciones fernarios Tema más que aclarado Saludos
|
|
|
|
|