Blockenergy - dAPP para intercambios de energía en Blockchain v.1.10.0
Esta dApp está basada en mi Trabajo de Fin de Grado de Ingeniería Informática de 2019, el cual puedes encontrar aquí, en una versión más actualizada.
Esta versión no incluye los pagos en criptomonedas ni la conexión IoT de las baterías. Utiliza la red de pruebas de Etherscan Ropsten. Inspirado en el repositorio de openberry
Prerrequisitos
- Node - v10.x.x
- npm - v6.x.x
Creado con:
- Solidity - Lenguaje de programación de los smart contracts para Ethereum
- Vue.js - Framework de Javascript utilizado
- web3.js - Librería de Javascript utilizada para interactuar con la blockchain de Ethereum
- Remix - IDE de Solidity para crear, compilar y probar smart contracts
- Metamask - Plugin de Chrome que hace de puente entre la dApp y el navegador
Dependencias:
"ethereum-blockies-base64" - Librería para generar identidades como bloques en PNG, codificados en base64
"vue-router" - Enrutador para Vue.js
"vuex" - Librería para gestión del estado (State Management) de aplicaciones Vue.js
"sweetalert" - Reemplazo para la función alert de Javascript
"Bootstrap 4" - Framework de CSS
"jQuery" - Biblioteca de Javascript para simplificar las interacciones con el DOM
"css-circular-prog-bar" - Progress bar en CSS puro.
Ejecución
Clona este repositorio en local e instala las dependencias como sigue:
git clone https://github.com/yeadan/blockenergy
cd blockenergy
npm install
Instala la extensión de Metamask, que será el enlace con la blockchain. En el metamask escoge la red de pruebas Ropsten y créate algunas direcciones con ethers.
Una vez instalados el Metamask y todas las dependencias se podrá ejecutar en local con el comando:
npm run dev
Este repositorio está online en Netlify
Estructura
Inicio
Página de inicio. Un Carousel con 3 imágenes como presentación
Comprar
Página donde se pueden ver las ofertas de energía y comprarlas
Restricciones:
No se puede aceptar una oferta propia
No se pueden aceptar ofertas ya ejecutadas
No se puede comprar energía si no hay espacio suficiente en tu batería
Vender
Página para poder crear y borrar ofertas de energía
Restricciones:
Solo se ven las ofertas propias
Solo puedes vender una cantidad de energía si está disponible en tu batería
Los precios y las cantidades de las ofertas tienes que ser números positivos
No se pueden poner a la venta menos de 100w
Historial
Página de historial de ventas. Enseña las direcciones del comprador y del vendedor, la cantidad de energía vendida, la fecha en que se puso a la venta y los precios de venta (con su equivalencia en Ether del momento de la venta)
Batería (No implementado)
La idea es que en la página de compras y ventas esté a disposición del usuario el nivel de su batería, y con ese nivel poder llevar un control de las compras y las ventas. Al no tener acceso, en la implementación, a ninguna batería, solo aparece una batería donde se le asigna un número aleatorio (con un http GET externo para que se acerque a cómo sería realmente). Esta cantidad es la que se irá utilizando para las compras y ventas, donde los indicadores están hechos únicamente con CSS.
Próximos cambios:
Hecho v10:
General: Reconstruido el proyecto con webpack 4
General: Modificado ancho columna batería/contenido
General: Actualizado web3.js a versión 1.6.0
Donaciones
BTC: 32kZW9Z381DDPn54Sho8U5jQ53UhLC8rTv