Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/azevedo-erick/tcc-blockchain-licitacoes
Este é o trabalho de conclusão de curso de Sistemas de Informação na Universidade Estadual do Tocantins (UNITINS), e tem como objetivo a criação de uma rede blockchain privada, permissionada e gas free com Hyperledger Besu, para a realização de licitações públicas.
https://github.com/azevedo-erick/tcc-blockchain-licitacoes
besu blockchain csharp etherium ipfs
Last synced: 8 days ago
JSON representation
Este é o trabalho de conclusão de curso de Sistemas de Informação na Universidade Estadual do Tocantins (UNITINS), e tem como objetivo a criação de uma rede blockchain privada, permissionada e gas free com Hyperledger Besu, para a realização de licitações públicas.
- Host: GitHub
- URL: https://github.com/azevedo-erick/tcc-blockchain-licitacoes
- Owner: Azevedo-Erick
- Created: 2024-03-31T02:45:26.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-09-19T03:14:17.000Z (about 2 months ago)
- Last Synced: 2024-10-29T14:18:58.743Z (16 days ago)
- Topics: besu, blockchain, csharp, etherium, ipfs
- Language: C#
- Homepage:
- Size: 297 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TCC - Blockchain Licitações
Este é o trabalho de conclusão de curso, este trabalho de conclusão de curso tem como objetivo a criação de uma rede blockchain privada, permissionada e gas free com Hyperledger Besu, para a realização de licitações públicas.
## Tecnologias
- Hyperledger Besu
- Docker
- Docker Compose
- Hardhat
- Solidity
- IPFS
- .Net Core
- C### Requisitos
- Docker
- Docker Compose
- .Net Core
- NPM
- Hardhat
- Curl
- jq
- Git
- Besu (versão 24.3.0)## Autores
- [@Azevedo-Erick](https://github.com/azevedo-erick)
## Roadmap
### Implementação
- [x] Implementar a rede blockchain privada, permissionada e gas free com Hyperledger Besu
- [X] Utilizar o Netherium para realizar a comunicação entre a API C# e a blockchain
- [X] Subir um nó IPFS
- [ ] Subir grafana e prometheus via docker
- [ ] Implementar os contratos inteligentes
- [ ] Implementar a aplicação web para a realização das licitações
- [ ] Melhorar os scripts para facilitar a execução da rede### Dissertação
- [ ] Revisar o cronograma, como um todo, possuindo o que foi produzido em TCC1 e o que será produzido em TCC2
### Artefatos de Software
- [X] Arquitetura do Sistema
- [X] Casos de Uso
- [ ] Diagrama de Atividades
- [X] Diagrama de Classe
- [ ] Diagrama de Entidade Relacional
- [ ] Prototipação## Executando localmente
1. Clone o projeto
```bash
git clone
```2. Vá para o diretório do projeto
```bash
cd blockchain-licitacoes
```3. Execute o arquivo init.sh
```bash
./init.sh
```4. Inicie cada nó
```bash
cd Node-1
start_besu.sh
``````bash
cd Node-2
start_besu.sh
``````bash
cd Node-3
start_besu.sh
``````
cd Node-4
start_besu.sh
```5. Copie os links de enodes de cada nó nas saídas dos comandos acima
6. Edite o arquivo add_enodes.sh e adicione os enodes de cada nó
7. Adicione os enodes de cada nó
```bash
./add_enodes
```> [!TIP]
> Para adicionar uma conta à rede (pode ser o endereço de algum nó)
> ```bash
> curl -X POST --data '{"jsonrpc":"2.0","method":"perm_addAccountsToWhitelist","params":[["0x"]],"id":1}' http://localhost:8545
> ```> [!TIP]
> Para verificar se a conta foi adicionada
> ```bash
> curl -X POST --data '{"jsonrpc":"2.0","method":"perm_getAccountsWhitelist","params":[],"id":1}' http://localhost:8545
> ```> [!TIP]
> Verificar se os nós estão conectados
> ```bash
> curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' http://localhost:8545
> ```## Deploy do contrato
1. Vá para o diretório do contrato
```bash
cd contracts
```
2. Instale as dependências
```bash
npm install
```
3. Compile o contrato
```bash
npx hardhat compile
```
4. Alterar o arquivo hardhat.config.js
```javascript
module.exports = {
solidity: "0.8.0",
networks: {
besu: {
url: "http://localhost:8545",
accounts: ["0x"],
},
},
};
```5. Deploy do contrato
```bash
npx hardhat ignition deploy ./ignition/modules/.js --network besuPrivate
```## Documentação
Abaixo estão os links para a documentação do projeto, onde é possível encontrar mais informações sobre o projeto.
- [Contratos Inteligentes](docs/contracts.md)
- [Diagramas](docs/diagrams.md)
- [Scripts](docs/scripts.md)
- [Configuração](docs/configuration.md)
- [Documentação](docs/diagrams.md)