Pular para o conteúdo

Sincronização blockchain

O pipeline de sincronização blockchain obtém, normaliza e deduplica dados on-chain para cada wallet ligada. O progresso é transmitido em tempo real para que possa monitorizar cada sincronização à medida que acontece.

Quando liga uma wallet ou aciona uma sincronização, o CryptaCount inicia dois streams de dados paralelos:

Transactions — Obtém transferências de moeda nativa (ETH no Ethereum, MATIC no Polygon, etc.) e chamadas normais de contratos. São transações diretas na camada base da chain.

Token Transfers — Obtém eventos de transferência de tokens (ERC-20 e equivalentes). São eventos emitidos por contratos capturados a partir de registos de transações, sincronizados de forma independente das transações nativas.

Estado de sincronização com dois streams paralelos

Cada stream mantém o seu próprio rastreador de progresso (número do último bloco processado) e cursor de paginação.

  1. Inicializar — O CryptaCount verifica se outra wallet com o mesmo endereço e chain já está a sincronizar (evita sincronização dupla). Determina o bloco de início por stream.
  2. Obter — Solicitar dados de transações a fornecedores blockchain em blocos paginados
  3. Normalizar — Converter formatos específicos de cada chain no modelo universal de transações do CryptaCount
  4. Deduplicar — Verificar cada transação em relação aos registos existentes para evitar duplicados
  5. Armazenar — Escrever novas transações no espaço de trabalho
  6. Classificar — Executar o motor de classificação de transações nos novos registos
  7. Preço — Obter o justo valor de mercado para cada ativo em cada carimbo de data/hora de transação
  8. Lançamento — Gerar lançamentos contabilísticos por partida dobrada

A cada transação é atribuída uma chave única baseada na chain, bloco, hash da transação e índice de evento. O CryptaCount verifica os registos existentes antes de inserir, garantindo que não existem dados duplicados mesmo que uma sincronização seja interrompida e reiniciada.

Após a sincronização completa inicial, as sincronizações subsequentes retomam a partir do último bloco processado. De forma crítica, o ponto de retoma é rastreado por stream (transações vs. transferências de tokens):

  • Cada stream retoma de forma independente
  • Isto evita o cenário em que o número de bloco de um stream que termina mais rapidamente faz com que o outro salte dados

O progresso da sincronização é transmitido em tempo real para a interface. O ecrã de progresso fornece:

  • Fase atual de sincronização (a obter, a normalizar, a armazenar)
  • Transações processadas / total estimado
  • Progresso de blocos (bloco atual / bloco mais recente)
  • Estado por stream (Transactions, Token Transfers)
  • Mensagens de erro, se existirem

Isto permite indicadores de progresso ao vivo sem necessidade de atualizar a página.

Quando o mesmo endereço é utilizado em várias wallets do espaço de trabalho (por exemplo, mesmo endereço adicionado com etiquetas diferentes), o CryptaCount verifica duplicados e ignora se outra wallet com o mesmo endereço já está sincronizada ou a sincronizar. Isto evita dados de transações duplicados ao nível do espaço de trabalho.

Os fornecedores de dados blockchain impõem limites de taxa. O pipeline de sincronização lida com isto através de:

  • Recuo automático — Quando os limites de taxa são atingidos, o sistema recua e tenta novamente automaticamente
  • Preservação do progresso — Se uma sincronização for interrompida, o progresso é guardado por stream e a próxima sincronização retoma de onde ficou
  • Limpeza de sincronizações bloqueadas — Um trabalho em segundo plano deteta e limpa periodicamente sincronizações bloqueadas

A partir da vista de detalhe da wallet, o separador Sync apresenta:

Separador de sincronização da wallet com detalhes de progresso

  • Estado de sincronização atual por stream (Transactions, Token Transfers)
  • Número do último bloco processado por stream
  • Total de transações obtidas
  • Mensagens de erro, se existirem
  • Hora da última sincronização bem-sucedida
  • Wallet individual: Abrir detalhe da wallet → clicar em Sync Now
  • Redigitalizar: Forçar uma redigitalização completa de uma wallet a partir do bloco 0
  • Pedido de sincronização: Os utilizadores podem pedir sincronizações, que os gestores do espaço de trabalho aprovam ou rejeitam

Erros de sincronização comuns e a sua resolução:

ErroCausaResolução
Limite de taxa excedidoDemasiados pedidos ao fornecedorAguardar e tentar novamente; o recuo automático trata disto
Tempo limite excedidoLote de dados grande a demorar demasiadoAutomático; a próxima sincronização retoma do último bloco por stream
Endereço inválidoO endereço da wallet não corresponde à chain selecionadaVerificar o formato do endereço e a seleção de chain
Fornecedor indisponívelFornecedor de dados blockchain temporariamente inativoNova tentativa automática após período de espera
Sincronização dupla detetadaO mesmo endereço já está a sincronizarAguardar que a sincronização existente termine

Para problemas persistentes, consulte o guia de resolução de problemas Sincronização e conectividade.

Ainda precisa de ajuda?

Não encontra o que procura? A nossa equipa de apoio está aqui para si.

Está a avaliar o CryptaCount para a sua empresa? Ver preços · Agendar uma demonstração