cambiar a curso:   2019-20   2021-22


Grado en Ingeniería Informática


TRABAJOS FIN DE GRADO
curso: 2020-21

Explorando las capacidades de la tecnología blockchain en entornos de computación en la niebla de bajo coste.


Tecnologías Específicas

Ingeniería de Computadores
 


Descripcion y Objetivos

La computación en la niebla surge como un complemento a la computación en la nube, que persigue acercar los recursos de cómputo y almacenamiento a los datos allí donde éstos se generan. Esto permite reducir tiempos de respuesta y optimizar ancho de banda, entre otras mejoras, aspectos que resultan críticos en muchos casos de uso relacionados con Internet de las Cosas. Una de las múltiples opciones de implementación es el uso de computadores monoplaca, de los que la Raspberry Pi es quizás su modelo más popular.
Por otro lado, la tecnología blockchain surge en el mundo de las criptomonedas, proporcionando un sistema altamente distribuido donde registrar transacciones (inicialmente económicas, aunque las aplicaciones en diversos ámbitos son múltiples). Blockchain ofrece propiedades como la inmutabilidad de los registros almacenados, la transparencia de los datos, o la descentralización y la alta disponibilidad de la información almacenada. Sobre el concepto básico inicial de blockchain se apoya la abstracción de los contratos inteligentes (smart contracts). Un contrato inteligente especifica código almacenado en la blockchain que se ejecuta de manera automática al ocurrir algún evento concreto. Los contratos inteligentes se ejecutan de manera independiente en todos los nodos que participan en la cadena de bloques y pueden verse en conjunto como un computador distribuido. Un conjunto de contratos inteligentes que se ejecutan en una plataforma blockchain dan lugar a una DApp (distributed application).
El objetivo general de este TFG es por tanto explorar las posibilidades que ofrece la tecnología blockchain en el contexto de la computación en la niebla. En particular, se analizará qué tipos de aplicaciones fog serán susceptibles de emplear blockchain. Para facilitar su gestión, las aplicaciones se gestionarán mediante el uso de contenedores Docker.
 

 


Metodología y Competencias

Para el desarrollo de este TFG se hará uso de una metodología ágil basada en Scrum. Se mantendrán reuniones quincenales con los tutores para el correcto seguimiento y retroalimentación del trabajo.

En cuanto al plan de trabajo, a priori se definen las siguientes fases:

  1. Estudio de la tecnología blockchain y más concretamente de su implementación Ethereum.
  2. Análisis del perfil de aplicaciones fog que se beneficiarían de la tecnología blockchain.
  3. Implementación de una o varias aplicaciones sencillas de prueba, y validación de resultados.
  4. Familiarización con la plataforma fog sobre Raspberry Pis, desplegada en el laboratorio RAAP del I3A.
  5. Despliegue de la(s) aplicación(es) desarrolladas empleando contenedores Docker.
  6. Evaluación de prestaciones de la(s) aplicación(es) desarrolladas.

Las competencias que se aplican en el caso de la Tecnología de Ingeniería de Computadores son:

[IC3] Capacidad de analizar y evaluar arquitecturas de computadores, incluyendo plataformas paralelas y distribuidas, así como desarrollar y optimizar software para las mismas.

[IC4] Capacidad de diseñar e implementar software de sistema y de comunicaciones.

[IC7] Capacidad para analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y ejecución de aplicaciones y servicios informáticos.

 


Medios a utilizar

  • Placas Raspberry Pi, PC o portátil
  • Software de código abierto: Docker, Ethereum…
 


Bibliografía

  • Eben Upton y Gareth Halfacree, Rasbperry Pi User Guide, Ed. Wiley, 2012. Disponible en http://www.cs.unca.edu/~bruce/Fall14/360/RPiUsersGuide.pdf 
  • Página web de Docker: https://www.docker.com/ 
  • Página web de Ethereum: https://ethereum.org/en/ 
  • Recursos para desarrolladores. Guías, recursos y herramientas para desarrolladores en Ethereum. Disponible en https://ethereum.org/es/developers/
  • Solidity Tutorial - A Full Course on Ethereum, Blockchain Development, Smart Contracts, and the EVM: https://www.youtube.com/watch?v=ipwxYa-F1uY.
  • Blockchain Tutorial For Developers: Step-By-Step Guide (Ethereum, Solidity, Web3.js) https://www.youtube.com/watch?v=nvw27RCTaEw&list=RDCMUCY0xL8V6NzzFcwzHCgB8orQ&index=4. 
  • Ethereum Tutorial – A Deeper Look Into Ethereum!. https://www.edureka.co/blog/ethereum-tutorial-with-smart-contracts/.
  • Arshdeep Bahga y Vijay Madisetti, Blockchain Applications: A Hands-on Approach, VPT, 2017.
 


Tutores


NUÑEZ, CARLOS
CAMINERO HERRÁEZ, Mª BLANCA
 

Alumno


SÁNCHEZ DE LA ROSA, MIGUEL