UniBlock é uma implementação de uma estrutura de BlockChain realizada na disciplina de Sistemas Distribuídos do Sétimo Semestre da Universidade Federal do Pampa - Brasil.
O blockchain (também conhecido como “o protocolo da confiança”) é uma tecnologia de registro distribuído que visa a descentralização como medida de segurança. São bases de registros e dados distribuídos e compartilhados que têm a função de criar um índice global para todas as transações que ocorrem em um determinado mercado. Funciona como um livro-razão, só que de forma pública, compartilhada e universal, que cria consenso e confiança na comunicação direta entre duas partes, ou seja, sem o intermédio de terceiros. Está constantemente crescendo à medida que novos blocos completos são adicionados a ela por um novo conjunto de registros. Os blocos são adicionados à blockchain de modo linear e cronológico. Cada nó - qualquer computador que conectado a essa rede tem a tarefa de validar e repassar transações - obtém uma cópia da blockchain após o ingresso na rede. A blockchain possui informação completa sobre endereços e saldos diretamente do bloco gênese até o bloco mais recentemente concluído.
Fonte: Wikipédia, BlockChain
Foi utilizado apenas pacotes nativos do Python3. Entretanto, em algumas distribuições os pacotes podem variar, neste caso instale as dependências utilizando:
$ pip3 install -r requirements.txt
O código possui 3 tipos de usuários:
Tipo de Usuário | Como Funciona | Como iniciar |
---|---|---|
Trader | Usuário que adicionará dados no BlockChain | $ python3 main.py -ki <keeperIP> -kp <keeperPORT> --trader |
Miner | Usuário que minera o Bloco | $ python3 main.py -ki <keeperIP> -kp <keeperPORT> --miner |
Keeper | Usuário que coordena a entrada de novos usuários na BlockChain | $ python3 main.py -ki <keeperIP> -kp <keeperPORT> --keeper |
Nota: Quando o sistema for iniciado, inicializar apenas um Keeper e primeiro que os demais.
Maiores Informações sobre a implementação, consulte a página de documentação do projeto.
- Felipe Homrich Melchior - fehmel@gmail.com - Perfil GitHub
- Guilherme Neri Bustamante Sá - guinbsa@gmail.com - Perfil GitHub
- Lucas Antunes de Almeida - lucasalmeida053@gmail.com - Perfil GitHub
- Rafael Fernandes Silva - faelsfernandes@gmail.com - Perfil GitHub
Pull-Requests são bem-vindos e encorajados!
Copyright (C) Felipe Homrich Melchior (2019-), Guilherme Neri Bustamante Sá (2019-), Lucas Antunes de Almeida (2019-) and Rafael Fernandes da Silva (2019-), kd (2019-)
Licensed under the Apache License, Version 2.0