Verificador de saúde RPC
Teste endpoints JSON-RPC pelo navegadorAs requisições vão diretamente deste navegador ao endpoint
Introdução
O verificador de saúde RPC testa endpoints JSON-RPC de Ethereum (EVM), Solana e Cosmos (CometBFT) e informa latência, chain ID, altura, estado de sincronização e número de peers. É útil antes de apontar um aplicativo, um indexador ou uma carteira para um novo endpoint, e para comparar dois endpoints da mesma rede.
Cada requisição parte diretamente do seu navegador para o endpoint. Não há proxy nem chamada no servidor: a ferramenta monta os payloads JSON-RPC localmente, mede o tempo de resposta e classifica o resultado. Se o endpoint bloquear o navegador via CORS, a ferramenta explica o motivo e mostra um comando curl equivalente para você executar.
Objetivo
- Validar a URL do endpoint e rejeitar esquemas inseguros (file:, javascript:, data:, ftp:).
- Testar os métodos de saúde padrão de Ethereum, Solana ou Cosmos e medir a latência.
- Classificar o endpoint como saudável, sincronizando, atrasado, indisponível ou inconclusivo.
- Comparar opcionalmente dois endpoints da mesma rede quanto a diferença de altura, divergência de chain ID e diferenças de versão.
- Nunca declarar um endpoint confiável apenas porque respondeu.
Entradas
- Uma ou duas URLs de endpoint (https:// preferido).
- O tipo de chain: Ethereum (EVM), Solana ou Cosmos (CometBFT).
- Nada é armazenado, registrado ou enviado ao servidor do OthoTools.
Como funciona
A URL é analisada e validada: apenas http(s) é aceito, https é preferido; userinfo ou parâmetros de query com aparência de token são detectados e mascarados antes da exibição. HTTP em um host público é rejeitado porque o navegador o bloqueia como mixed content.
Para Ethereum, a ferramenta chama web3_clientVersion, eth_chainId, eth_blockNumber, eth_syncing e net_peerCount. Para Solana, getHealth, getSlot, getVersion e getIdentity. Para Cosmos, os endpoints REST /status e /net_info.
Cada chamada é cronometrada. Os resultados são normalizados em um resultado (altura, chain ID, versão, peers, estado de sincronização, latência) e classificados: saudável quando o nó responde com altura atual e não está sincronizando; sincronizando quando relata progresso de recuperação; atrasado quando uma comparação mostra grande diferença de altura; indisponível quando a requisição falha ou retorna erro JSON-RPC; inconclusivo quando o formato da resposta é inesperado.
Com dois endpoints, alturas, chain IDs, versões e latências são comparados e as diferenças são relatadas como achados.
Exemplo testável
Experimente — a análise roda localmente no seu navegador.
Exemplo
Chain: Ethereum Endpoint: https://eth.example.com Método: eth_blockNumber (segundo endpoint, comparação opcional) https://eth2.example.com
Saída esperada
web3_clientVersion Geth/v1.14.11-stable/linux-arm64 · 212 ms eth_chainId 1 · 204 ms eth_blockNumber 21048321 · 198 ms eth_syncing false · 201 ms net_peerCount 48 · 215 ms Status: saudável — resposta em ~205 ms em média.
Interpretando a saída
- Um resultado saudável significa que o endpoint responde aos métodos padrão e não relata progresso de sincronização. Não prova que o nó é confiável, está bem configurado ou é seguro para envio de fundos.
- Sincronizando significa que o nó está se recuperando; aplicações que precisam de estado recente verão dados desatualizados ou ausentes até ele terminar.
- Uma diferença de altura entre dois endpoints da mesma rede é normal durante reorgs curtos; uma diferença grande ou persistente sugere um nó doente ou particionado.
- Se o CORS bloquear a requisição, o endpoint não permite origens de navegador. Execute o comando curl equivalente em uma máquina de confiança para obter os mesmos dados.
Riscos
- Um endpoint que responde ainda pode servir dados desatualizados, errados ou maliciosos. Saúde não é confiança.
- URLs podem conter credenciais. A ferramenta as mascara, mas remova-as da URL antes de compartilhar.
- Endpoints públicos podem limitar ou bloquear testes repetidos; não use esta ferramenta como daemon de monitoramento.
Limitações
- As políticas de CORS do navegador podem bloquear endpoints públicos legítimos; o fallback de curl cobre esses casos.
- A ferramenta verifica um instantâneo no tempo; não é monitoramento de uptime.
- Não detecta problemas de consenso, manipulação de fee market ou má configuração além dos métodos testados.
Referências oficiais
FAQ
É seguro colar uma URL RPC aqui?
Sim — a requisição parte diretamente do seu navegador e nunca passa pelo servidor do OthoTools. Mesmo assim, a ferramenta mascara credenciais e parâmetros com aparência de token na tela e recomenda removê-los antes de compartilhar.
Por que um endpoint público falha com CORS?
O servidor do endpoint decide quais origens de navegador podem chamá-lo. Muitos RPCs públicos não enviam cabeçalhos CORS, então o navegador bloqueia a requisição mesmo com o endpoint ativo. Para esse caso, a ferramenta mostra um comando curl.
O que significa 'atrasado'?
Vem da comparação de dois endpoints: a diferença de altura entre eles excede o limite daquela chain (12 blocos para Ethereum, 150 slots para Solana, 10 blocos para Cosmos). Um teste de endpoint único não pode determinar 'atrasado' sem referência.