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.
- Hyperledger Besu
- Docker
- Docker Compose
- Hardhat
- Solidity
- IPFS
- .Net Core
- C#
- Docker
- Docker Compose
- .Net Core
- NPM
- Hardhat
- Curl
- jq
- Git
- Besu (versão 24.3.0)
- Implementar a rede blockchain privada, permissionada e gas free com Hyperledger Besu
- Utilizar o Netherium para realizar a comunicação entre a API C# e a blockchain
- 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
- Revisar o cronograma, como um todo, possuindo o que foi produzido em TCC1 e o que será produzido em TCC2
- Arquitetura do Sistema
- Casos de Uso
- Diagrama de Atividades
- Diagrama de Classe
- Diagrama de Entidade Relacional
- Prototipação
-
Clone o projeto
git clone
-
Vá para o diretório do projeto
cd blockchain-licitacoes
-
Execute o arquivo init.sh
./init.sh
-
Inicie cada nó
cd Node-1 start_besu.sh
cd Node-2 start_besu.sh
cd Node-3 start_besu.sh
cd Node-4 start_besu.sh
-
Copie os links de enodes de cada nó nas saídas dos comandos acima
-
Edite o arquivo add_enodes.sh e adicione os enodes de cada nó
-
Adicione os enodes de cada nó
./add_enodes
Tip
Para adicionar uma conta à rede (pode ser o endereço de algum nó)
curl -X POST --data '{"jsonrpc":"2.0","method":"perm_addAccountsToWhitelist","params":[["0x<Endereço_da_conta>"]],"id":1}' http://localhost:8545
Tip
Para verificar se a conta foi adicionada
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
curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' http://localhost:8545
-
Vá para o diretório do contrato
cd contracts
-
Instale as dependências
npm install
-
Compile o contrato
npx hardhat compile
-
Alterar o arquivo hardhat.config.js
module.exports = { solidity: "0.8.0", networks: { besu: { url: "http://localhost:8545", accounts: ["0x<Endereço_da_conta>"], }, }, };
-
Deploy do contrato
npx hardhat ignition deploy ./ignition/modules/<Contrato>.js --network besuPrivate
Abaixo estão os links para a documentação do projeto, onde é possível encontrar mais informações sobre o projeto.