Inspired by this article by Daniel van Flymen, where it describes how to implement a blockchain in Python.
The blockchain developed is in the style of the Bitcoin network, its objective is to exchange value directly between users while maintaining security.
This diagram shows the process of a transaction from its sending to its incorporation into the chain.
- El usuario envía una transacción a un nodo de la red.
- El nodo añade la transacción a su pool de transacciones.
- Se propaga la transacción al resto de nodos de la red.
- El resto de nodos añaden dicha transacción a sus pools.
- Uno de los nodos encuentra una solución a la prueba de trabajo para minar un nuevo bloque compuesto por las transacciones en el pool.
- Dicho nodo añade el nuevo bloque a su cadena de bloques.
- Propaga el bloque al resto de nodos.
- El resto de nodos verifican la validez del bloque recibido y si es válido lo añaden a sus cadenas.
To run this project, you will need to have the following installed:
- Java 17
- Maven
- Clone this repository on your local machine.
- Navigate to the root directory of the project.