https://github.com/rubcv/ethereum-evidence-manager
:mag_right: Forensic Evidence Manager based on Ethereum Blockchain
https://github.com/rubcv/ethereum-evidence-manager
blockchain blockchain-technology ethereum ethereum-dapp solidity
Last synced: 3 months ago
JSON representation
:mag_right: Forensic Evidence Manager based on Ethereum Blockchain
- Host: GitHub
- URL: https://github.com/rubcv/ethereum-evidence-manager
- Owner: rubcv
- Created: 2019-06-30T15:56:56.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2021-03-16T17:39:36.000Z (about 4 years ago)
- Last Synced: 2025-01-22T09:12:22.499Z (5 months ago)
- Topics: blockchain, blockchain-technology, ethereum, ethereum-dapp, solidity
- Language: JavaScript
- Homepage:
- Size: 1.8 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Diseño e implementación de un entorno de gestión forense basado en Blockchain
## Trabajo de Fin de Grado, nota: 8.5Entorno de gestión forense basado en la infraestructura Blockchain de **Ethereum**
Para una descripción completa sobre el proyecto, ver la memoria.
### Descripción breve (TL;DR)
Se trata de un sistema que permite verificar la integridad de evidencias forenses mediante el uso de la tecnología Blockchain, concretamente la Blockchain **Ethereum**. Se compone de una interfaz web (conectada a la Blockchain con el Wallet **Metamask**) mediante la cuál un usuario introduce la URL de la página web que desea evidenciar. El backend envía dicha solicitud a la Blockchain ejecutando una operación del Smart Contract, que accede a la web por medio de un **Oráculo**. El Oráculo realiza un HASH de la página, que es almacenado en la Blockchain para poder contrastar posibles cambios en la página. De esta forma, ante un tribunal, se puede garantizar la inmutabilidad del contenido existente en dicha web.### Herramientas usadas:
* Ethereum Framework
* NodeJS, Express
* Truffle suite tools
* Ganache/TestRPC para la red
* Metamask Wallet### Requisitos:
* Sistema operativo Linux (Desarrollado sobre Kali Linux 2019.2)
* Google Chrome
* Extensión **Metamask** para Google Chrome. (https://metamask.io/)
* **Truffle** (https://www.trufflesuite.com/)
* **Ganache-GUI** (https://eattheblocks.com/installing-the-the-ganache-gui-episode-13/)
* **npm** y **NodeJS**#### Paquetes necesarios con npm:
* npm install --save request
* npm install --save request-promise
* npm install -g js-sha256
* npm install -g ethereumjs-testrpc (Hacer pruebas sin GUI)
* npm install -g ganache-cli (Hacer pruebas sin GUI)
* npm install -g web3
* npm install -g web3-providers-http
* npm install -g json-parserPara el servidor web:
* npm install -g express
* npm install -g body-parser### Para ejecutar:
* Dirigirse al directorio SRC con la terminal
* Ejecutar ./recompile.sh
recompile.sh:
> rm -r -d build
> truffle compile
Este comando compila los contratos del directorio **contracts/** con **Truffle**
* Ejecutar Ganache-GUI
* Abrir el proyecto .../SRC/**truffle-config.js** con **Ganache-GUI**
Ejecutar en una terminal a parte:
* $ truffle developer
* $ truffle(developer)> migrate
Con estos comandos migramos los contratos a la red de **Ganache**
En otra terminal a parte, ejecutar:
* $ node app.js
Con este comando ejecutamos el servidor
* Dirigirse a la siguiente dirección en un navegador Chrome con Metamask instalado:
> localhost:8888
* En la web, guardar la evidencia deseada, podremos ver el resultado de la transacción con **Metamask** y el resultado del guardado en la red de **Ganache**