Mini Blockchain — Relatório Técnico

Ricardo Prado Faria & André Grassi — Disciplina: Redes de Computadores 2
<>

📄 Resumo e Objetivo

Este trabalho tem por objetivo simular o fluxo da interação entre cliente e servidor de um serviço de moedas virtuais baseadas em blockchain. Vale destacar que o trabalho possibilita o atendimento a mais de um cliente.

🗓️ Cronograma e Metodologia de Desenvolvimento

O desenvolvimento da Mini Blockchain ocorreu ao longo de um período de três semanas, iniciando-se aproximadamente em 23 de Outubro de 2025. O trabalho foi conduzido em parceria e baseado em reuniões virtuais periódicas para alinhamento e integração contínua.

Fase 1: Planejamento e Arquitetura (Aprox. 23/10 a 29/10)

A fase inicial foi dedicada ao planejamento. Estabelecemos a linguagem de programação principal, Python, e definimos a arquitetura da aplicação. Utilizamos a Linguagem de Modelagem Unificada (UML) para documentar a estrutura do projeto. Nesse período, foram criados os Diagramas de Classes e de Atividade (disponíveis na seção "Arquitetura & Diagramas"), fundamentais para a divisão das tarefas:

Fase 2: Desenvolvimento e Implementação (Aprox. 30/10 a 06/11)

A segunda semana focou na implementação paralela dos módulos. Enquanto a camada de rede e o entrypoint do servidor (run_server.py) eram estabelecidos, a codificação do modelo de bloco (block.py) e da lógica de tratamento de transações (transaction_handler.py) ocorria em paralelo. Reuniões intermediárias garantiram que os módulos de comunicação e de lógica da blockchain pudessem ser integrados sem conflitos, focando na correta serialização e desserialização dos dados.

Fase 3: Testes, Validação e Documentação (Aprox. 07/11 a 13/11)

A fase final foi crucial para a validação exaustiva do sistema. Desenvolvemos scripts de testes focados em simular múltiplas transações válidas e inválidas. Isso gerou os logs de execução presentes neste relatório. Por fim, o esforço se concentrou na criação deste Relatório Interativo em formato de website, utilizando HTML/CSS, para organizar e apresentar o código, diagramas e as evidências de funcionamento (logs) de forma clara e acessível, cumprindo integralmente os requisitos de documentação do professor.

📐 Arquitetura e Diagramas

Os diagramas de projeto foram gerados utilizando ferramentas UML e estão localizados em docs/uml/. Entretanto, serviram apenas como base inicial, visto que o código real sofreu alterações significativas durante o desenvolvimento.

Diagrama de Classes

Diagrama de classes da mini blockchain

Fluxo do Cliente

Diagrama de atividade do cliente

Diagrama de Atividade (Servidor)

Diagrama de atividade do servidor

Validação de Retirada

Diagrama de validação de retirada no servidor

💻 Implementação — Código Fonte

Os arquivos de código fonte, entregues no formato .txt para visualização, estão listados abaixo:

📊 Logs de Execução

Abaixo estão previews dos logs de execução do servidor e do cliente. Arquivos completos em site/logs/.

Log Servidor Sequencial

Carregando log do servidor...

Log Cliente Sequencial

Carregando log do cliente...

Log Servidor (Clientes enviando operações paralelamente)

Carregando log do servidor...

Execução

Para executar o sistema de Mini Blockchain, siga os passos abaixo:

python3 -m venv .venv;
                source .venv/bin/activate;
                pip install -e .;