Post
Topic
Board Español (Spanish)
Re: Problema de escalabilidad
by
javijavier
on 08/01/2015, 00:17:01 UTC
Hola Alexr.

Mis niveles de conocimiento son medios en ambos casos (quizás algo mejor en inglés que en bitcoin, pero medios definitivamente) de todas maneras lo que viene contando Gavin es algo que él ya había comentado varias veces y trata de la escalabilidad y por ende de la necesidad de bloques más grandes que la soporten.
Actualmente, en la cadena de bloques, estos tienen un tamaño de 1MB y en el post dice haber estado probando ditintas cadenas de bloques con un tamaño de 20MB cada uno (e incluso 200MB!), lo cual nos permitiría incluír muchísimas más transacciones por bloque y quizás pueda ayudar para volver a aumentar el valor de OP_RETURN el cual había sido reducido de 80 bytes a 40 anteriormente (esto es último es una suposicion mia). Esto puede ser bastante importante si hablamos de una cadena de bloques que puede llegar a ser el futuro de internet. Cada transacción podria albergar más información.
Este cambio necesitaría un Hard Fork, el cambio en el código nos obligaría a todos a actualizar nuestro actual sofware (cartera) por una versión nueva configurada para funcionar con estos nuevos bloques más grandes. Según comenta en el post este cambio sería MUY facil, tan solo cambiar tres lineas de código. En su prueba le surgieron dos problemas (ambos solucionados):
Las transacciones con "locktime" (que tienen un tiempo de espera) y las "coinbase" (es la primer transacción del bloque, las monedas creadas mas las comisiones de todas las transacciones que se van a estampar en él).
El primer problema lo solucionó poniendo todas las transacciones como final.
Para el segundo fue mas complicado, pero también tuvo arreglo. Creó una herramienta: gen_megablocks en el que se indexan todas las "coinbase" en un único fichero .dat y crea los blk*.dat que se usarán para indexar la cadena de bloques. Ha probado leer esos ficheros con el bitcoind y la opción -loadblock en la linea de comandos y funcionó perfectamente tanto con los bloques de 20MB con como los de 200. Bitcoind creó una cadena de bloques completa e indexada con todas las transacciones reales de la historia de bitcoin. Pudo también crear transacciones las cuales son posibles realizarlas en la cadena de 20MB como en la original de 1MB, ya que dice que las transacciones ordinarias son independientes del bloque. Las "coinbase" tambien tuvieron otro cambio para poder ser gastadas en el mismo bloque.
Luego nos cuenta detalles de procesamiento en tiempo con su ordenador para indexar la nueva cadena de bloques y que seguirá haciendo pruebas, luego tendremos un futuro post con los resultados.
Más o menos es eso. Con algunos detalles técnicos que se me escaparon, pero en sintesis eso.
Creo que los que ahora tenemos nodos funcionando con Raspberrys como tengamos que indexar esta nueva cadena podremos echar semanas hasta que acabe. Como bien dice dserrano, continuaremos usando la misma cadena de bloques, ya que solo cambia los valores MAX_SIZE.

Gavin quiere bloques más grandes para así estar prepadados para la escalabilidad posible si en un futuro Bitcoin llega a ser lo que nosotros bitcoiners creemos que será. Evidentemente en ese caso y ante la necesidad de realizar un Hard Fork, éste siempre es más "facil" de realizar mientras menos usuarios seamos, ya que somos menos a los que avisar de la necesidad de actualización obligatoria. Personalmente me parece lo mas sensato.

Como siempre creo que acabo liándome la manta a la cabeza y no se entiende nada de lo que escribo. Espero se haya entendido. Si tuve algún fallo de traducción, compresión o conocimiento espero me corrijan.

Saludos!