Paseando por el código de BITCOIN (SV)

 

Hoy me gustaría enseñaros un poco las tripas de Bitcoin, es decir, el código, ese conjunto de frases mágicas o «conjuros» que conforman la entidad llamada «Bitcoin» y su evolución mas reciente realizada por el mismo creador, Dr. Craig Wright, es decir Satoshi Nakamoto llamada Bitcoin SV o Satoshi Vision.

Empecemos con el tamaño del bloque que es una de las grandes diferencias entre las versiones de Bitcoin:

El límite de tamaño de bloque en Bitcoin v0.01

En main.h (línea 17) tenemos un MAX_SIZE constante

static const unsigned int MAX_SIZE = 0x02000000;

que en formato decimal equivale a 33554432 (32 MB)

Esta constante se usa para verificar si el bloque supera el límite de tamaño en main.cpp (línea 1154)

 bool CBlock::CheckBlock() const { // These are checks that are independent of context // that can be verified before saving an orphan block. // Size limits if (vtx.empty() || vtx.size() > MAX_SIZE || ::GetSerializeSize(*this, SER_DISK) > MAX_SIZE) return error("CheckBlock() : size limits failed"); ... }

Según el historial sobre el control de versiones GIT, Gavin Andersen agregó la línea 18 del historial a main.h (ver):

static const unsigned int MAX_BLOCK_SIZE = 1000000;

En otras palabras, todo esto significa que Satoshi ya tenía idea de aumentar el tamaño del bloque progresivamente con el tiempo en el código, siempre pensando (supongo) en la mítica Ley de Moore que expresa que aproximadamente cada dos años se duplica el número de transistores en un microprocesador.

Si vemos el código actual de Bitcoin core, se puede observar que todavía no han definido la variable en el fichero consensus.h … ni rastro de ella. Se podría decir que el desarrollo de Bitcoin (core) ha muerto.

Captura de pantalla 2019-08-30 a las 19.27.04

Si vamos por ejemplo a Bitcoin (cash) ABC ( o también conocido como BCH ABC, donde ABC significa Adjustable Blocksize Cap). Podemos ver la diferencia clara sobre la evolución o ampliación del tamaño de bloque. Concretamente de 8 MB que tenía Bitcoin Cash a 32MB que tiene BCH ABC.

1563624244_356_bitcoin-cash-milestones-delivered-code-upgrades-and-platform-development

Podemos ver mas código (y mas actual) aquí:

Captura de pantalla 2019-09-10 a las 19.20.08

Si paseamos ahora por Bitcoin SV, podremos observar también los cambios que anunciaron de bloques impresionantemente grandes de hasta 2GB, así que ya vemos por ahí en el código una constante de 1GB (ONE_GIGABYTE)

Captura de pantalla 2019-08-30 a las 19.30.14

Y podemos observar también la limitación a 2 GB en el fichero policy.h (ver)

Captura de pantalla 2019-09-10 a las 20.11.04

Me gusta, porque además la Comunidad de BitcoinSV ha creado unas muy buenas especificaciones para todo aquel que quiera experimentar con el tema de Minería (ver)

Paseando, paseando, podemos ir a ver la famosa cantidad máxima disponible de Bitcoins y ver en que parte del código está la limitación. Si vemos el código de Bitcoin (core) podremos ver esos 21 Millones de Bitcoins. La constante se llama MAX_MONEY como no podia ser de otra forma.

Captura de pantalla 2019-08-30 a las 19.39.27

Si ahora nos vamos al mismo fichero amount.h , pero en BITCOIN SV podremos ver que prácticamente no hay diferencias, dado que el límite es el mismo de 21 Millones de BSV.

Captura de pantalla 2019-09-10 a las 20.20.38

 

¿Os ha gustado el paseo? Si es así ponlo en los comentarios y haremos más posts como este. Un saludo!

Por MrAddon para CoinMarketRank y Ankonan

 

Un comentario

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *