Log EVM, finalità, riorganizzazioni e incidenti#
I log dei contratti sono input esterni non attendibili fino a verifica. Anche un provider JSON-RPC corretto può restituire dati laggati, duplicati o riferiti a una fork non più canonica. CertiExch applica controlli prima di produrre effetti.
Controlli sul log#
Il validator verifica almeno:
- chain ID configurato;
- contract address associato al mirror;
- transaction hash nel formato atteso;
- block number e block hash;
- log index;
- topic o tipo evento previsto dall’ABI;
- flag
removed; - unicità dell’identificativo evento;
- coerenza del payload con lo stato del mirror.
Un log non riconosciuto viene rigettato e genera un record in governance.integration_incidents. Il record conserva motivo, severità, provider, hash del log grezzo e riferimenti utili all’analisi. Il mirror e il registro non vengono modificati.
Finalità#
Dopo l’inclusione in un blocco, il sistema attende il livello previsto dalla policy. Su Polygon Chain il controllo può interrogare eth_getBlockByNumber con tag finalized e confrontare il block number della transazione. Un semplice numero di conferme può essere mantenuto come metrica, ma la policy deve distinguere inclusione, finalità e checkpoint.
Riorganizzazioni#
Un log con removed=true segnala che il provider lo ha osservato in una catena poi sostituita. Se non aveva ancora prodotto effetti, viene scartato. Se una versione precedente del sistema lo aveva acquisito, non si corregge il saldo a mano: si apre un incidente e si applica il workflow di reversal o rettifica previsto dal registro.
Duplicati#
L’identità di un log può essere costruita da chain ID, transaction hash e log index. La riacquisizione dello stesso evento deve essere idempotente. Payload diverso con la stessa identità è un incidente, non un aggiornamento.
Provider divergenti#
Se due RPC restituiscono head o ricevute differenti, il sistema non sceglie in base alla risposta più conveniente. Applica la policy di quorum o la fonte primaria qualificata, conserva entrambe le osservazioni e sospende gli effetti quando la divergenza tocca finalità o quantità.
