Entrega: Todos os trabalhos deverão estar disponibilizados até sexta-feira dia 14 de novembro de 2025; não serão aceitos trabalhos disponibilizados após esta data. Atenção, são mais de 3 semanas de prazo, organize-se! Termine antes da data limite!
Os alunos devem informar por e-mail a URL do trabalho, usando o subject "TP REDES II 2025-2"
O trabalho deve ser feito em dupla; o código, os testes e o relatório devem ser feitos por ambos os membros da dupla. Use esta oportunidade para melhorar sua habilidade de trabalhar em equipe.
Neste trabalho você vai implementar uma moeda virtual, a MiniCoin. A MiniCoin é baseada em blockchain, mas para simplificar a execução do trabalho, que tem que ser entregue em 3 semanas, apenas 1 servidor mantém toda a blockchain. A blockchain deve implementada como uma sequência encadeada de registros de movimentações de uma conta de MiniCoins.
O primeiro registro da lista encadeada tem o valor do depósito inicial, além do nome do proprietário e a data e hora em que a conta foi criada. Um campo adicional corresponde ao hash do registro. Cada dupla tem a liberdade para definir qual função hash vai usar.
A cada movimentação da conta (que pode ser ou um depósito ou uma retirada) um novo registro é adicionado à lista encadeada. Este registro tem: o a operação realizada na conta de MiniCoins, mais um hash. Só que desta vez o hash é gerado com o registro atual mais o hash do registro anterior.
Simule a chegada de solicitações de retiradas válidas e inválidas. Nas válidas deve ser possível fazer uma retirada ou depósito. Nas inválidas há a tentativa de fazer uma retirada maior que o saldo da conta de MiniCoins.
Cada dupla pode fazer a implementação na linguagem que escolher, como Python, C, C++, Java ou qualquer outra linguagem.
Prof. Elias P. Duarte Jr.     Departamento de Informática     UFPR