Todos os projetos

Supply Chain Tracker

Universidade · 2025
Período
2025
Tecnologias
Node.js · Express · Solidity · ERC-1155 · MongoDB · IPFS
Supply Chain Tracker — Ilustração conceptual · não representa envios ou registos reais
Ilustração conceptual · não representa envios ou registos reais

De onde nasce

Na dissertação de mestrado construí um protótipo para seguir a história de um lote. Depois de o dividir, transferir ou juntar a outro, queria poder recuperar a sua origem e os documentos associados.

Problemas e decisões

Dos lotes aos tokens

Representei os lotes com ERC-1155 e APIs para transferência, divisão e união.

Separar e comparar dados

Os metadados públicos ficam no IPFS. O MongoDB guarda dados agregados para consulta. Incluí verificações de coerência entre blockchain, IPFS e MongoDB para identificar divergências entre as representações de um lote.

Chaves e responsabilidade

No protótipo o backend assina com chaves de teste. A gestão de chaves e a assinatura dupla entre participantes precisam de mais trabalho antes de uma utilização real.

Como funciona

  1. Um backend Node.js e Express expõe API REST para criar, transferir, dividir, combinar e transformar lotes.
  2. Contratos Solidity ERC-1155 representam lotes e propriedade no Ethereum. O Ethers.js liga as operações da aplicação à blockchain.
  3. O IPFS guarda metadados e anexos públicos. O MongoDB suporta consultas agregadas sobre o historial e as relações entre lotes.
  4. A propagação de contaminação percorre o grafo com BFS. O estado de contaminação mantém-se separado do ciclo de vida do lote.

Descarregar a dissertação de mestrado sobre rastreabilidade (PDF) IT · 3,0 MB

O que aprendi

Modelar divisões e transformações de lotes ensinou-me a definir as relações antes de escolher como as guardar. Distinguir o registo original dos dados usados na consulta também me ajuda a integrar sistemas.

Estado atual

Protótipo de dissertação de mestrado, testado numa rede Ethereum local com Ganache e chaves de teste.

Fonte

Um problema interessante?

Conta-me o que queres construir ou melhorar, quem o vai usar e que limites tens. Respondo-te para percebermos por onde começar.