Este projeto implementa uma rede blockchain simplificada em Python. Ele demonstra conceitos fundamentais como blocos, transações, proof-of-work, gerenciamento de saldos, taxas de transação e resolução de forks.
Antes de executar o projeto, certifique-se de que os seguintes requisitos estejam instalados na sua máquina:
- Visual Studio Code - VS CODE
- Python 3.x
- Bibliotecas:
- datetime
- hashlib
- json
- Um terminal ou console (como o Prompt de Comando no Windows, Terminal no macOS ou Linux)
Siga os passos abaixo para clonar o repositório e executar o projeto em sua máquina:
-
Deve-se clonar o repositório remoto para a sua máquina atual. Realize através do comando:
git clone https://github.com/jennyferrocha/BlockchainPython.git
-
Entre no diretório do projeto clonado:
cd BlockchainPython
-
O código é executado diretamente no terminal ou no VS Code. Para isso, utilize o seguinte comando:
python3 Blockchain.py
- Criação de Blocos: Gera novos blocos contendo transações e os adiciona à cadeia.
- Transações: Permite a criação de transações entre diferentes endereços, incluindo taxas.
- Proof-of-Work (PoW): Utiliza um algoritmo PoW simplificado para simular a mineração de blocos.
- Gerenciamento de Saldos: Rastreia os saldos de cada endereço e garante que as transações sejam válidas.
- Taxas de Transação: Inclui taxas nas transações, que são recompensadas aos mineradores.
- Resolução de Forks: Implementa uma lógica simples para resolver forks, selecionando a cadeia mais longa.
- Propagação de Blocos e Transações: Simula a propagação de informações pela rede.
Este projeto é uma simulação simplificada e não se destina ao uso em produção. Ele não inclui recursos importantes de uma blockchain real, como:
- Segurança robusta: Assinaturas digitais, criptografia avançada, etc.
- Persistência de Dados: Armazenamento em banco de dados ou arquivo.
- Rede P2P completa: Comunicação real entre nós.
- Mecanismo de Consenso Robusto: Implementação completa de PoW, PoS ou outros algoritmos.
O código em Blockchain.py
contém um exemplo de uso que demonstra como criar transações, minerar blocos e exibir a blockchain.
Um relatório mais detalhado sobre a implementação e as funcionalidades está disponível no arquivo Relatorio.md
.
Este projeto está licenciado sob a licença MIT.