Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.
Hola a todos,
El comando Blockchain está de vuelta con una nueva entrada en el blog; esta vez os traemos todas las nuevas funcionalidades que hemos implementando en BrightByte para la versión v0.5.0.
Seguro que todos sabéis perfectamente que es BrightByte pero si os hace falta un poco de contexto, aquí os dejo un recordatorio, que servirá de ayuda para saber desde dónde partimos en la versión v0.4. No me enrollo más, comenzamos.
Implementación de backend
Hemos implementado un backend y estamos muy orgullosos de presentaros esta novedad, que viene de la necesidad que teníamos de poder “escuchar” eventos emitidos por los contratos e implementar nuevas funcionalidades en relación a estos. Os puede sonar algo extraño leer la palabra backend en un proyecto blockchain. ¿Por qué implementar un sistema centralizado en un proyecto blockchain?
Lo primero, aclarar que todos los datos que persisten en el backend tienen como origen la blockchain. Para poder escuchar los eventos emitidos por la blockchain la conexión se tiene que realizar a través de websockets.
La forma en la que el usuario interactúa con los datos sólo se realiza a través de la blockchain, que sigue siendo nuestra “Single source of truth”.
El backend nos ayuda a implementar la lógica relativa a los logros de cada usuario, almacenando los ya conseguidos y calculando posibles nuevos logros.
Implementación de librerías en SC
Los Smart Contracts no pueden exceder de una cierta cantidad de caracteres, ya que el bytecode que obtenemos al compilarlos crece y, si se supera el límite, genera errores en el despliegue.
En BrightByte, llegamos a un momento en el que uno de nuestros contratos era demasiado grande, lo que generaba problemas con la máquina virtual de Ethereum, debido a que excedían el límite de gas en un bloque.
La solución más simple es dividir nuestros contratos en otros más pequeños, resolviendo con ello los problemas para el despliegue. La forma óptima de hacerlo es aprovechar una de las características de Solidity, las librerías. Estas son un tipo de contrato especial con algunas limitaciones (no tienen su propio storage y no pueden recibir Ether). Además, estas solo se suben una vez a la red Ethereum y pueden ser usadas por otros contratos que requieran las funcionalidades de esta.
En nuestro caso, decidimos crear librerías para los modelos de datos y para parte de la lógica de negocio. Estos cambios pueden apreciarse en nuestro Github.
Borrar Commits
Una de las ventajas del piloto que estamos llevando a cabo es que tenemos un feedback directo y podemos saber qué nuevas funcionalidades pueden ser útiles y añadir valor a BrightByte, además de mejorar la experiencia de usuario. Gracias a esto, hemos añadido la funcionalidad de borrar commits. Pero, ¡no tan rápido! esta funcionalidad tienes varias restricciones: Sólo se va a poder borrar un commit si este pertenece a la temporada en curso y si todavía nadie te lo ha revisado. No sería justo que pudieras borrar commits con malas revisiones.
Otras Mejoras
Durante el desarrollo de BrightByte siempre nos hemos encontrado con alguna limitación proveniente de las tecnologías que utilizamos. La ya sabida velocidad en las transacciones de la red o que Solidity no permita realizar operaciones matemáticas con la exactitud son algunas de ellas. Así pues, en esta versión, se han cambiado los contratos para evitar problemas como el overflow en las operaciones matemáticas.
Además, para mejorar la experiencia de usuario, se ha optimizado el manejo de los datos y el número de llamadas a la blockchain realizadas por el frontend.
Futuro
Seguimos estudiando las tecnologías descentralizadas y seguiremos, también, explotando las nuevas posibilidades que nos da el backend, comenzando por implementar un sistema de perfiles de usuario, incluiremos nuevos logros. Estamos abiertos a cualquier propuesta, recuerda que este es un proyecto de software libre y si quieres participar tienes acceso a nuestro repo de Github.
¡Gracias por leernos!, esperamos estar de vuelta pronto con las nuevas novedades de BrightByte. ¡Un saludo!