Salta ai contenuti

Sincronizzazione blockchain

La pipeline di sincronizzazione blockchain recupera, normalizza e deduplica i dati on-chain per ogni wallet connesso. L’avanzamento viene trasmesso in tempo reale in modo da poter monitorare ogni sincronizzazione man mano che avviene.

Quando connetti un wallet o avvii una sincronizzazione, CryptaCount lancia due flussi di dati paralleli:

Transactions — Recupera i trasferimenti di valuta nativa (ETH su Ethereum, MATIC su Polygon, ecc.) e le normali chiamate ai contratti. Queste sono le transazioni dirette sul layer base della chain.

Token Transfers — Recupera gli eventi di trasferimento token (ERC-20 e equivalenti). Questi sono eventi emessi dai contratti catturati dai log delle transazioni, sincronizzati indipendentemente dalle transazioni native.

Stato di sincronizzazione con due flussi paralleli

Ogni flusso mantiene il proprio tracker di avanzamento (ultimo numero di blocco elaborato) e il cursore di paginazione.

  1. Initialize — CryptaCount verifica se un altro wallet con lo stesso indirizzo e chain è già in sincronizzazione (previene la doppia sincronizzazione). Determina il blocco di partenza per flusso.
  2. Fetch — Richiede i dati delle transazioni dai provider blockchain in chunk paginati
  3. Normalize — Converte i formati specifici della chain nel modello di transazione universale di CryptaCount
  4. Deduplicate — Verifica ogni transazione rispetto ai record esistenti per prevenire duplicati
  5. Store — Scrive le nuove transazioni nell’area di lavoro
  6. Classify — Esegue il motore di classificazione delle transazioni sui nuovi record
  7. Price — Recupera il FMV per ogni asset in ogni timestamp di transazione
  8. Journal — Genera le scritture contabili in partita doppia

A ogni transazione viene assegnata una chiave univoca basata su chain, blocco, hash della transazione e indice dell’evento. CryptaCount verifica i record esistenti prima dell’inserimento, garantendo che non ci siano dati duplicati anche se una sincronizzazione viene interrotta e riavviata.

Dopo la sincronizzazione iniziale completa, le sincronizzazioni successive riprendono dall’ultimo blocco elaborato. Il punto di ripresa viene tracciato per flusso (transazioni vs. trasferimenti token):

  • Ogni flusso riprende in modo indipendente
  • Questo previene lo scenario in cui il numero di blocco di un flusso che termina più velocemente causa il salto di dati nell’altro

L’avanzamento della sincronizzazione viene trasmesso in tempo reale all’interfaccia. Il display di avanzamento fornisce:

  • Fase di sincronizzazione corrente (recupero, normalizzazione, archiviazione)
  • Transazioni elaborate / totale stimato
  • Avanzamento dei blocchi (blocco corrente / blocco più recente)
  • Stato per flusso (Transactions, Token Transfers)
  • Messaggi di errore se presenti

Questo consente indicatori di avanzamento in diretta senza dover aggiornare la pagina.

Quando lo stesso indirizzo viene utilizzato su più wallet dell’area di lavoro (ad es. lo stesso indirizzo aggiunto con etichette diverse), CryptaCount verifica i duplicati e salta se un altro wallet con lo stesso indirizzo è già sincronizzato o in sincronizzazione. Questo previene i dati di transazione duplicati a livello di area di lavoro.

I provider di dati blockchain impongono limiti di velocità. La pipeline di sincronizzazione li gestisce con:

  • Backoff automatico — Quando si raggiungono i limiti di velocità, il sistema effettua un backoff e riprova automaticamente
  • Preservazione dell’avanzamento — Se una sincronizzazione viene interrotta, l’avanzamento viene salvato per flusso e la sincronizzazione successiva riprende da dove si era interrotta
  • Pulizia delle sincronizzazioni bloccate — Un job in background rileva e pulisce periodicamente le sincronizzazioni bloccate

Dalla vista del dettaglio del wallet, il tab Sync mostra:

Tab di sincronizzazione del wallet con dettagli sull'avanzamento

  • Stato di sincronizzazione corrente per flusso (Transactions, Token Transfers)
  • Ultimo numero di blocco elaborato per flusso
  • Totale delle transazioni recuperate
  • Eventuali messaggi di errore
  • Orario dell’ultima sincronizzazione riuscita
  • Wallet singolo: Apri il dettaglio del wallet → fai clic su Sync Now
  • Rescan: Forza una nuova scansione completa di un wallet dal blocco 0
  • Sync request: Gli utenti possono richiedere sincronizzazioni che i manager dell’area di lavoro approvano o rifiutano

Errori di sincronizzazione comuni e loro risoluzione:

ErroreCausaRisoluzione
Rate limit exceededTroppe richieste al providerAttendi e riprova; il backoff automatico gestisce questo
TimeoutBatch di dati di grandi dimensioni che richiedono troppo tempoAutomatico; la sincronizzazione successiva riprende dall’ultimo blocco per flusso
Invalid addressL’indirizzo del wallet non corrisponde alla chain selezionataVerifica il formato dell’indirizzo e la selezione della chain
Provider unavailableProvider di dati blockchain temporaneamente non disponibileNuovo tentativo automatico dopo un periodo di attesa
Double sync detectedLo stesso indirizzo è già in sincronizzazioneAttendi il completamento della sincronizzazione esistente

Per problemi persistenti, consulta la guida alla risoluzione dei problemi di Sync & Connectivity.

Hai ancora bisogno di aiuto?

Non trovi quello che cerchi? Il nostro team di supporto è qui per te.

Stai valutando CryptaCount per il tuo studio? Vedi i prezzi · Prenota una demo