10/01/2019 | Blockchain,Desarrollo de software,Tecnologías

Lanzamiento de BrightByte v0.2

¡Hola a todos! En esta entrada del blog hablaremos sobre un proyecto que hemos desarrollado internamente en Tribalyte Technologies.

Se trata de BrightByte, un sistema de reputación en la nube que hace uso de la tecnología blockchain y smart contracts. En este caso el sistema está orientado a generar una reputación para desarrolladores de software en base a la calidad del código escrito. Para ello BrighByte nos permite valorar los cambios («commits» en Git) que otros usuarios suben a un repositorio remoto, de tal forma que el sistema genera una reputación para cada usuario, que va variando en el tiempo.

Actualmente el sistema soporta direcciones de BitBucket y GitHub, aunque en el futuro se ampliará su compatibilidad con más servicios de repositorios Git en la nube como puede ser GitLab.

La aplicación se ha desarrollado como código libre y se encuentra públicamente disponible en el siguiente repositorio: https://github.com/TribalyteTechnologies/BrightByte. De esta manera cualquiera puede descargar y desplegar el sistema en su empresa o comunidad de desarrollo.

Funcionamiento

La primera vez que queramos acceder a la aplicación debemos registrarnos. Se nos pedirá una contraseña y se generará un fichero de identidad (formato JSON) encriptado con esa contraseña, por tanto, no debemos olvidar la contraseña, ni perder el fichero de identidad, ya que contiene nuestra clave privada, que es irrecuperable.

Cada vez que queramos entrar en la aplicación (hacer «login«) deberemos cargar el fichero de identidad e introducir nuestra contraseña, como se muestra a continuación:

El primer apartado que analizaremos es el de mis cambios o «commits». En este apartado dispondremos de todos los cambios que hemos registrado en el sistema. Cuando añadimos un cambio («add commit«), tenemos que indicar la dirección (URL) del «commit» de BitBucket o GitHub y las personas que queremos que revisen ese «commit». La lista de revisores se selecciona entre todos los usuarios registrados en el sistema. Si seleccionamos alguno de los «commits» que ya haya sido revisado, nos aparecerán los comentarios de los usuarios que indicamos para revisar (revisores) y podremos valorar positivamente o negativamente sus comentarios.

En el apartado de revisiones aparecerán todas las peticiones de revisión de «commits» en los que el usuario ha sido mencionado para revisar, donde podrá comentarlos y puntuarlos mediante un sistema de clasificación basado en estrellas (rating de 0 a 5). El número de estrellas que posea ese «commit» será la media de las puntuaciones dadas por los usuarios que lo hayan revisado.

Dispondremos de un apartado de clasificación o ranking donde se nos mostrarán todos los usuarios ordenados por reputación, siendo el primer usuario el que tiene más reputación y el último el que menos. También se nos mostrarán las revisiones que ha realizado («reviews»), y la cantidad de «commits» que han subido. Por último, se mostrará un porcentaje de aceptación que indicará si sus revisiones han sido aceptadas o denegadas, siendo 100% todo votos positivos (o sin votar) y 0 todos los votos negativos.

Tecnologías utilizadas

A continuación detallaremos la tecnología que hemos empleado en el desarrollo del sistema. El diseño de arquitectura del sistema se basa en la simplificación extrema, por lo que actualmente (BrighByte v0.2.0) se compone solamente de una aplicación web desarrollada con Ionic Framework (front-end) y una serie de smart contracts que se despliegan directamente sobre una red blockchain. De esta manera, el front-end actualmente interactúa directamente con los nodos de la red blockchain a través de su API JSON-RPC, a través de librerías que veremos a continuación.

Truffle

Antes que nada se deben compilar los smart contracts y se deben desplegar en la red blockchain. Para ello se hará uso de Truffle.

Truffle es un framework que nos permite compilar, desplegar y testear smart contracts de manera sencilla y rápida, permitiéndonos crear y desplegar aplicaciones descentralizadas.

Web3

Web3 es una colección de librerías de javascript que nos va a permitir conectar nuestro front-end con los smart contracts. Su uso es fundamental ya que nos va a permitir llamar a los métodos que hemos creado en los smart contracts desde el front-end.

Blockchain

Blockchain o cadena de bloques es una red descentralizada, formada por un gran número nodos encargados de verificar y validar las operaciones y generar los bloques, de manera que el bloque correspondiente a una determinada operación (en cada bloque puede haber un número variable de transacciones) se registre en un “gigantesco libro de cuentas” único, común y compartido. A pesar de que la blockchain más conocida es Bitcoin, existen algunas como Ethereum que presentan mejoras debido a que permiten el uso de Smart Contracts, de los cuales hablaremos posteriormente.

Es por ello que nuestra aplicación funciona sobre Alastria. Alastria es una red Blockchain/DLT semipública, independiente, permisionada y neutral, diseñada para ser conforme con la regulación existente, que permite a los asociados experimentar estas tecnologías en un entorno cooperativo. Para más información sobre Alastria, podéis acceder a nuestro post aquí.

Smart Contracts

Los smart contracts son programas informáticos que ejecutan acuerdos establecidos entre dos o más partes cuando ocurre una determinada condición. Es decir, son contratos que se ejecutan y se cumplen de manera autónoma sin depender de una tercera persona que lo haga cumplir. Para la creación de nuestros smart contracts hemos usado el lenguaje de programación Solidity, que es un lenguaje de programación de alto nivel que posee características similares a Javascript. 

Esperamos que con esto podáis tener más claro como es el funcionamiento de BrightByte y animamos a todos los equipos de desarrollo a utilizarlo y enviarnos vuestros comentarios. ¡Hasta el próximo post!

Compartir en:

Relacionados