Visão geral
Serviços
Rotinas periódicas (Celery)
Market, Indexer e Oracle usam Celery worker + Beat com Redis dedicado por serviço (não compartilhar broker entre microsserviços).
Variáveis comuns:
CELERY_BROKER_URL, CELERY_RESULT_BACKEND. Deploy: containers Redis + celery worker + celery beat por serviço.
Contratos MVP em uso
O runtime atual usa estes contratos pelos ABIs versionados nos serviços Transactions e Indexer:
Deploy local Besu registrado:
O arquivo de deploy também registra
chainId: 20260520.
A bridge externa usa EURC na rede principal configurada. Na BrightCity Chain privada, o contrato
EuroToken representa o saldo interno com nome Euro Token, símbolo EURT e 18 decimais.Papéis on-chain
Funções chamadas pelo backend
sensor_id é convertido para bytes32 antes de ir para contratos MVP. Por isso, identificadores usados on-chain precisam caber em 32 bytes quando codificados em UTF-8.
Estados on-chain
O Market Service também mantém status operacionais nos modelos off-chain:
RESERVED, FILLED, PENDING_PAYMENT, PAID e ERROR.
Eventos indexados
O Indexer lê estes eventos:
Cada evento indexado é salvo com
contract_name, event_name, block_number, tx_hash, log_index e payload_json. A chave única é tx_hash + log_index.
gRPC interno
Os serviços mantêm rotas HTTP internas durante a migração, mas os protos já cobrem os principais fluxos:
Autorização interna usa metadata
x-internal-token, equivalente ao header HTTP X-Internal-Token.