Detalles de la red Paskal

Todas las partes del desarrollo de una criptomoneda son importantes, pero la sincronizacion correcta de la red es crucial, amen que requiere procedimientos para manejar los imprevistos (que seguro los abrá) sin alterar la cadena de bloques de manera catastrófica. Hace falta que el protocolo incluya medidas de seguridad para cualquier cosa que pueda ocurrir, e incluso, para cosas que ni nos podamos imaginar ahora.

Antes de empezar, hay que conocer algunos conceptos importantes para comprender como se sincroniza una red P2P en base a un consenso de la mayoria de los usuarios conectados.

Informacion flotante.

Toda la informacion que circula en la red que no esta relacionada con movimiento de monedas a ser guardada en la cadena de bloques se puede denominar informacion flotante. Un claro ejemplo de ello es la informacion de los nodos disponibles: todos los usuarios comparten la informacion de los nodos a los que ellos han podido acceder, pero eso nunca se guardara en la cadena de bloques. Este tipo de informacion es, de hecho, las mas versatil.

Cuando un usuario desea realizar una transferencia, esa orden se envia a todos los usuarios a los que esta conectado. Estos comprueban su validez, la almacenan en memoria y la reenvian a todos los que pueden, y asi sucesivamente. Un usuario que la reciba pero ya la tenga en la memoria no la procesara de nuevo. Notese que esta informacion no se guardara en la cadena de bloques hasta que se mine el siguiente bloque, por tanto solo esta en la memoria de todos los usuarios. De hecho, si hubiese un apagon mundial y se apagaran todos los nodos simultaneamente, esa orden se perderia ya que no quedaria nadie con ella almacenada en su memoria. Tal vez lo mejor de la informacion flotante es que tiene un valor energetico casi nulo, y para los usuarios es gratis. Si recuerdan, antes mencionamos que en los bloques se guarda la informacion por la que alguien paga!

Pero hay mas informacion flotante que se puede usar con muchisimos propositos (mas adelante veremos que el exchange P2P usa la informacion flotante) dentro de una red P2P, ya que no requiere que sea almacenada pero si aporta informacion necesaria.

El ping/pong

Cuando dos usuarios establecen conexion entre ellos, una vez hayan validado que ambos son de la misma red, lo primero que haran es intercambiar su informacion de conexion. El usuario-cliente enviara un 'ping' con su informacion, y el usuario-servidor le respondera con un 'pong' con la suya respectiva. Dado que esta informacion es altamente dinamica, no es conveniente guardarla en disco ya que ralentizaria las operaciones, por lo tanto cada usuario la mantiene en memoria. Dentro de la informacion que se intercambia en este proceso una parte muy importante es el resumen de la informacion de los pares a los que cada uno de ellos esta conectado. Mas adelante veremos en detalle como se usa para el funcionamiento saludable de la red.

Recuento de nodos.

Tambien es importante mantener actualizado un listado de los nodos de la red, de manera que se puedan ofrecer puertas de entradas a los nuevos usuarios que quieran entrar. Para esto, el minero de cada bloque enviara, inmediatamente despues del mensaje con la informacion del bloque, un mensaje 'GETNETNODES' (Get Network Nodes); en el, incluira el numero del bloque que acaba de minar, la informacion de los nodos a los que estuviese conectado en ese momento y el hash de esta informacion. Cada usuario de la red, al recibir este mensaje, añadira sus respectivos nodos con el nuevo hash. Para evitar que este mensaje circule indefinidamente, los usuarios no reenviaran un GETNETNODES que sea posea el mismo hash que el ultimo que enviaron. Al final de este proceso, todos los usuarios de la red conoceran cuales son los usuarios-servidores que estan aceptando conexiones entrantes. Como este proceso se repetira indefinidamente, una vez con cada bloque, se podra mantener tambien un listado de cuales son los nodos que han estado en linea por mas tiempo.

Pero para esto primero hay que minar el bloque. En la proxima entrada haremos una pequeña aplicacion de mineria para mostrar graficamente como se realiza este proceso y, al mismo tiempo, desarrollar las funciones necesarias.

Comentarios

Entradas populares de este blog

Funcionamiento interno

Como funciona una criptomoneda?

Año nuevo, nuevo nombre