Creacion de la red Paskal

Como vimos en la entrada anterior, lo primero es crear una red P2P para todos los usuarios . Para esto, en Paskal usaremos una unidad desarrollada por terceros: Indy, la cual ya añadimos a nuestra IDE de lazarus al inicio. Ahora solo debemos añadirlo al proyecto en Inspector de Proyecto -> Añadir nuevo Requerimiento.

Como todo usuario debe ser cliente y servidor al mismo tiempo, es necesario que incluyamos un servidor y tantas conexiones de cliente como deseemos. Con cuantos usuarios simultaneos puede estar conectado cada uno? En teoria, el numero es infinito, pero a mayor numero de conexion (entrantes o salientes) mas lento ira el programa. Por otra parte, un numero demasiado bajo restara seguridad a la red. Tomando en consideracion la robustez de otras redes P2P, el numero idoneo esta entre 5 y 15. Este numero esta definido por la constante 'Maxconecciones'.

Empezamos entonces añadiendo 1 servidor (que puede recibir 15 conexiones entrantes) y canales suficientes para 15 conexiones salientes. Tambien usaremos un archivo para almacenar las direcciones IP a las que sabemos que nos podemos conectar (nodos), y otro donde estaran las IP no deseadas de aquellos que desean conectarse a nosotros (bots).

Guardamos los datos de cada conexion en un array para poder manejarlas internamente. Asi mismo, es importante en las redes P2P que los usuarios compartan entre ellos las direcciones de los otros usuarios; esto nos lleva a las dos primeras instrucciones del protocolo Paskal: 'GETNODES' y 'NODES'. Asi mismo, con ordenes sencillas de consola (addnode, serveron, connect) ya pudimos establecer la primera conexion!

Para empezar es suficiente que los usuarios intercambien lineas de texto. Mas adelante abra funcionalidades que requieran el intercambio de archivos, pero eso ya lo incluiremos cuando sea necesario. Ahora es importante 'sincronizar' a todos los usuarios, esto es, que todos manejen la misma hora. Sobre esto hablaremos en la siguiente entrada.

Aqui podemos ver la primera imagen de MasterPaskal. De momento, hay mucho espacio libre, pero la red P2P ya es minimamente funcional.

Comentarios

Entradas populares de este blog

Funcionamiento interno

Como funciona una criptomoneda?

Año nuevo, nuevo nombre