Uma biblioteca digital utilizando Ethereum e blockchain para compartilhar livros de forma segura.
Tokenbook é um acervo digital de livros que usa um ambiente Ethereum proporcionado pelo hardhat em conjunto com contratos inteligentes em Solidity.
O front-end e configurações da blockchain e contratos estão disponíveis no seguinte repositório: TokenBook front
Uma conta no pinata para se obter a GATEWAY e a JWT geradas na criação da chave da api
Node.js instalado no sistema
Clone o repositório
git clone https://github.com/Alepaulas/OurLibrary.gitAcesse a raiz do projeto
bash cd /backend
Instale as Dependências
npm installCrie o Arquivo .env
O projeto inclui um arquivo .env.example com variáveis de ambiente de exemplo. Para configurar suas próprias variáveis:
- Copie o arquivo
.env.examplepara.env:cp .env.example .env
- O valor
PINATA_JWTeGATEWAY_URLdeve ser o mesmo que foi disponibilizado pelo pinata.
Dentro do diretório \backend, abra um terminal e execute o comando:
npx hardhat nodeVerifique se o nó está rodando no localhost na porta 8545. Se não estiver, mude o nodeAddress em backend\config\info.js para a porta onde o nó está rodando.
Após iniciar o nó do Hardhat localmente, ainda dentro de \backend, faça o deploy do smart contract LibAccess.sol rodando o comando:
npx hardhat ignition deploy ./ignition/modules/LibAccess.js --network localhostVerifique se o endereço do contrato é 0x5FbDB2315678afecb367f032d93F642f64180aa3. Se não for, altere o contractAddress em backend\config\info.js para o endereço correto.
Se quiser testar a conexão com o nó do Hardhat, você pode rodar o arquivo backend\config\blockchainConfig.js da seguinte forma:
node config\blockchainConfig.jsA mensagem Conectado ao nó Hardhat aparecerá (se você seguiu os passos corretamente), sinalizando que esta parte da conexão do backend com o Hardhat está pronta para ser usada.
E após isso, basta inicializar as portas com o seguinte comando:
node index.jsO front-end e o back-end por padrão já estão definidos para usar a porta 3000 para fazer a comunicação, então caso ela já esteja sendo utilizada, é necessário alterá-la no arquivo /backend/index.js
const PORT = process.env.PORT || [insira sua porta aqui] ;E caso os passos tenham sido seguidos corretamente tanto aqui, quanto no front, o programa deve funcionar de forma coesa em conjunto.