Trabajo Fin Experto - Desarrollo Aplicaciones Blockchain
Plataforma universitaria de gestión de ECTS y matriculaciones.
El proyecto despliega una plataforma donde pueden registrarse universidades y estudiantes. La plataforma despliega un token llamado ECTSToken que los estudiantes adquieren comprándolos con Ether. Las universidades registradas publican su oferta de asignaturas con precio valorado en ECTSToken. Los estudiantes que quieran matricularse en una asignatura, intercambian sus ECTSToken por matrículas en las asignaturas publicadas en las que están interesados. El modelo económico se cierra con el reembolso de los ECTSToken a las universidades por parte de la plataforma a un precio menor que el costé de adquirirlos por parte de los estudiantes.
Desde el punto de vista técnico de las aplicaciones blockchain, el proyecto se centra en el desarrollo de varios smart contracts donde reside la lógica, los ECTSToken que extienden los tokens ERC20 y las asignaturas publicadas que extienden el ERC721.
Funcionalmente también permite registrar el aprobado de una asignatura por parte de la universidad y abre la puerta a la implementación de un mecanismo de emisión de claims en un modelo de identidad digital basado en ERC725 y ERC735.
La memoria del proyecto se encuentra en https://github.com/jpges/UNIR_TFE/blob/master/docs/TFE_Titulaciones_tokenizadas-Jose_Pastor-20200316.pdf
Será necesario tener Node.js instalado en el equipo.
-
Ir a official Node.js website y descargar el instalador.
-
Puedes instalar nodejs y npm fácilmente con apt install, solo tienes que ejecutar estos comandos:
$ sudo apt install nodejs $ sudo apt install npm -
Puedes encontrar más información sobre la instalación en official Node.js website y la official NPM website.
Si la instalación es correcta, ejecutando los siguientes comandos podrás ver algo similar a:
$ node --version
v8.17.0
$ npm --version
6.13.4
Es necesario que tengamos al menos las versiones indicadas. Si necesitas actualizar npm, puedes utilizar el propio npm, ejecutando el siguiente comando y preguntando de nuevo por la versión
$ npm install npm -g
Para descargar e instalar el proyecto también será necesario tener instalado GIT.
-
Solo tienes que visitar http://git-scm.com/download/win y la descarga empezará automáticamente. Fíjate que éste es un proyecto conocido como Git para Windows (también llamado msysGit), el cual es diferente de Git. Para más información acerca de este proyecto visita http://msysgit.github.io/.
Asegúrate también que
gitestá disponible en tu PATH,npmpodría necesitarlo. -
Puedes usar apt-get:
$ apt-get install git -
Para opciones adicionales, la página web de Git tiene instrucciones de instalación en diferentes tipos de Unix. Puedes encontrar esta información en http://git-scm.com/download/linux.
Si la instalación es correcta, ejecutando los siguientes comandos podrás ver algo similar a:
$ git --version
git version 2.7.4
Descarga o clona el repositorio desde:
https://github.com/jpges/UNIR_TFE.git
Simplemente, en el directorio raiz del proyecto, donde está el package.json, ejecuta:
npm install
Igualmente, en el directorio raiz del proyecto, ejecuta:
npm start
A partir de este momento podrás acceder a la aplicación en localhost:8000
Para poder realizar este tipo de acciones es un pre-requisito tener instalado el framework de desarrollo truffle (no es necesario para desplegar el proyecto y arrancarlo, pero sí para ejecutar los planes de prueba).
Para instalarlo simplemente debes ejecutar
sudo npm install -g truffle@5.0.18
El sistema se ha provisto con 3 configuraciones de migración y prueba que pueden ser consultadas en el fichero truffle-config.js y que se han llamado "ganache", "testnet" y "alastria".
Para arrancar nuestra compilación, desde el directorio raiz del proyecto ejecutaremos:
truffle compile --all
Para ejecutar la migración de nuestros SC, dependiendo de la red utilizaremos:
truffle migrate --network [network] --reset
Donde deberemos sustituir [network] por la correspondiente red sobre la que estemos migrando, "ganache", "testnet" o "alastria".
Por último, para ejecutar el plan de pruebas sobre las diferentes redes, utilizaremos:
truffle test --network [network]
Igualmente sustituiremos [network] por la correspondiente red sobre la que pretendamos probar, "ganache", "testnet" o "alastria".
Para un entorno local de desarrollo como ganache, se han incorporado 3 scripts al fichero package.json que nos facilitarán estas tareas (en algunos IDEs como el VSCode, los scripts package.json pueden ser lanzados visualmente desde el propio IDE).
Para la compilación lanza
npm compile
Para la migración lanza
npm migrate
Y para lanzar el plan de pruebas definido, ejecuta
npm test
- VS Vode - Editor de código gratuito construido sobre software libre.
- José Enrique Pastor Galiana - jpges
- Una cerveza 🍺 para todos los miembros del grupo Telegram EU_Blockchain_UNIR, sin los cuales, no sé si hubiese llegado a esto, pero para ello seguro que me lo habría pasado mucho peor 🤓🤓🤓. Gracias chicos, por haber estado siempre atentos para ayudarme.
- Iñigo García de Mata, mi tutor en el proyecto.