This repository has been archived by the owner on Nov 20, 2024. It is now read-only.
Releases: MarnieGrenat/Coinnect
Releases · MarnieGrenat/Coinnect
v2.0.0
What's Changed
- CODE FIX by @MarnieGrenat in #5
- Enhance project by @MarnieGrenat in #6
Full Changelog: v1.0.0...v2.0.0
v1.0.0
Release Log - Versão 1.0.0 (v1.0.0)
Versão: 1.0.0
Data de Lançamento: 04/11/2024
Resumo:
Este é o lançamento da primeira versão completa do projeto Coinnect-FPPD. A V1.0 inclui a implementação do modelo Cliente/Servidor usando RPC/RMI, simulando transações bancárias seguras e com controle de concorrência. Esta versão foi desenvolvida para cumprir os requisitos do trabalho acadêmico, garantindo idempotência e semântica de execução única para operações críticas.
Funcionalidades Principais:
- Servidor de Administração: Implementação completa do servidor que gerencia contas e executa transações bancárias (abertura, fechamento de contas, saques, depósitos e consultas de saldo) com controle de concorrência e idempotência.
- Processo de Agência (Cliente): Funcionalidades de solicitação de abertura e fechamento de contas, além de operações de depósito, saque e consulta de saldo.
- Processo de Caixa Automático (Cliente): Funcionalidades de solicitação de depósito, saque e consulta de saldo.
- Controle de Conformidade: Implementação de garantia de execução única (exactly-once) com uso de
RequestID
e logs de requisições processadas.
Melhorias e Correções:
- Implementação de Idempotência: Controle rigoroso para evitar múltiplas execuções da mesma operação.
- Controle de Concorrência: Uso de
sync.Mutex
esync.RWMutex
para garantir acesso seguro a recursos compartilhados. - Testes Unitários: Testes robustos criados para verificar a idempotência, controle de concorrência e funcionalidade de todas as operações principais.
- Makefile Atualizado: Inclusão de comandos para facilitar a compilação, teste e limpeza do projeto:
make a
: Compila os arquivos do servidor e cliente.make t
: Executa os testes unitários.make c
: Limpa os binários gerados.
Testes e Verificações:
- Testes de Idempotência: Verificação de que operações repetidas com o mesmo
RequestID
retornam consistentemente o mesmo resultado. - Testes de Concorrência: Testes para garantir que operações simultâneas em contas diferentes e na mesma conta sejam tratadas corretamente.
- Cobertura de Testes: Garantia de cobertura para as principais operações de abertura de conta, depósito, saque, consulta de saldo e fechamento de conta.
Notas Importantes:
- O projeto foi desenvolvido para simular cenários de falhas de rede e garantir a continuidade das operações.
- A implementação foi projetada com foco na robustez e conformidade com os requisitos acadêmicos estabelecidos.