Usted se encuentra Aquí >
Principal >
Biblioteca >
Ejercicios > Transacciones con Blockchain
Transacciones con Blockchain
Planteamiento del Problema:
- Hacer una aplicación bancaria de tipo Web basada en Blockchain, en donde al ingresar al sistema aparezca un menú donde el usuario pueda elegir cualquiera de estas opciones:
- Crear cuenta.
- Hacer depósitos.
- Hacer retiros.
- Consultar saldo.
Pre-Requisitos:
- 2 Servidores: Los servidores deberán tener instalado un sistema LAMPP (Linux+Apache+MySQL+PHP).
- 2 Clientes: Los clientes son Web, requieren de un navegador y pueden estar en alguno de los servidores ó en cualquier otra computadora.
(hacer click para hacer mas grande):
Operaciones de ejemplo a realizar:
Donde "ana" es el "usuario1" y "juan" el "usuario2"
- ana abre su cuenta de ahorros con $500
- ana deposita $100
- juan abre su cuenta de ahorros con $300
- ana retira $200
- juan deposita $600
- juan retira $50
- ana deposita $250
- ana retira $150
(hacer click para hacer mas grande):
Campos de la tabla:
- No. de Operación: Es un número consecutivo a partir de 1 y hasta donde se terminen las operaciones.
- Operación Anterior: Aquí se almacena un número que nos indica en qué número de registro se hizo la operación anterior del mismo usuario para hacer el encadenado (Blockchain).
- Tipo de Operación: Se almacena un 0 si es "depósito", y un 1 si es un "retiro".
- Monto: Se almacena la cantidad de dinero a depositar ó retirar según sea el caso.
- Cliente: Se almacena el nombre del cliente que está realizando la operación.
Restricciones:
- Cada operación de "depósito" ó "retiro" debe replicarse en ambos servidores
- Cuando se abre una cuenta por primera vez, en la columna "Operación Anterior" debe almacenarse un 0, indicando que es el inicio de la cadena de bloques (Génesis).
- Para calcular el saldo de un usuario se debe recorrer todos los registros de un usuario en ambos servidores, y ambos deben de coincidir, en caso contrario imprimir un mensaje en pantalla. Esta operación de verificación también debe de hacerse antes de hacer un depósito ó retiro para mantener la integridad del sistema.
- En un sistema Blockchain utilizado en la vida real, cada registro se cifra, y cada usuario tiene su propia firma digital la cual se se utiliza para descifrar su propia cadena de bloques, pero no las otras cadenas de otros usuarios, por lo tanto no se podría saber a simple vista de qué usuario es cada registro, ni con quien va encadenado, eso es lo que le da seguridad, fortaleza y consistencia a un sistema Blockchain. En este ejemplo no se utilizará el cifrado con el objetivo de ver a simple vista el encadenamiento.
(hacer click para hacer mas grande):
Encadenamiento:
- El primer registro de usuario se le denomina Génesis, y en el campo "Operación Anterior" se almacena un 0.
- Cuando se genera otro registro del mismo usuario anterior, entonces en el campo "Operación Anterior" se almacena un el número del registro anterior, con lo cual se va haciendo en cadenado de todos los registros de un mismo usuario. En la figura anterior se oberva el cadenamiento de todos los registros del usuario "ana".
Usted se encuentra Aquí >
Principal >
Biblioteca >
Ejercicios > Transacciones con Blockchain