RPC Providers
Escolha entre provedores RPC gerenciados (Helius, Triton, QuickNode) e validadores Agave self-hosted com base em tráfego, features e custo operacional.
Receita
Cartão de receita para referência rápida - pronto para copiar e colar.
import { createSolanaRpc } from "@solana/kit";
// Provider (API key in URL or header per vendor)
const rpc = createSolanaRpc(
"https://mainnet.helius-rpc.com/?api-key=YOUR_KEY"
);
await rpc.getSlot().send();# Self-hosted (operator)
agave-validator --ledger /data/ledger --rpc-port 8899Quando usar:
- Apps mainnet ou devnet excedendo rate limits de RPC público.
- Precisando de DAS, webhooks ou APIs de estimativa de priority fee.
- Rodando indexers exigindo stake e bandwidth dedicados.
- Requisitos de compliance para ingress RPC privado.
Exemplo Prático
import { createSolanaRpc, createSolanaRpcSubscriptions } from "@solana/kit";
const HTTP = process.env.RPC_HTTP_URL!;
const WSS = process.env.RPC_WSS_URL!;
const rpc = createSolanaRpc(HTTP);
const rpcSubscriptions = createSolanaRpcSubscriptions(WSS);
const slot = await rpc.getSlot().send();
console.log("slot:", slot);
// Health check script for CI
if (slot < 1) throw new Error("RPC unhealthy");O que isso demonstra:
- URLs HTTP e WSS separadas do dashboard do provedor.
- Variáveis de ambiente mantêm API keys fora do controle de versão.
- Probe simples
getSlotvalida saúde do endpoint.
Aprofundamento
Como funciona
- Provedores gerenciados rodam validadores Agave mais load balancers, cache e sidecars de indexer.
- API keys autenticam e medem requisições por tier de plano.
- Self-hosting roda
agave-validatorcom seu próprio stake, ops e failover. - Matriz de features (DAS, gRPC, webhooks) varia por vendor - RPC não é commodity.
Comparação de provedores (alto nível)
| Opção | Pontos fortes | Trade-offs |
|---|---|---|
| Helius | DAS, webhooks, ferramentas dev | Acoplamento de vendor para APIs avançadas |
| Triton | Yellowstone gRPC, performance | Complexidade de integração ops |
| QuickNode | Familiaridade multi-chain | Profundidade de features Solana varia |
| RPC público | Grátis, zero setup | Rate limits, sem SLA |
| Self-host | Controle, privacidade | Staffing, stake, carga de confiabilidade |
Notas TypeScript
// Failover: try secondary URL on 429/503
async function rpcWithFallback<T>(fn: (rpc: ReturnType<typeof createSolanaRpc>) => Promise<T>) {
const primary = createSolanaRpc(process.env.RPC_PRIMARY!);
try {
return await fn(primary);
} catch (e) {
const secondary = createSolanaRpc(process.env.RPC_SECONDARY!);
return await fn(secondary);
}
}Erros comuns
- Embutir API keys no frontend - keys são extraídas de browsers. Correção: faça proxy de leituras via backend para keys sensíveis.
- Dependência de provedor único - outage para seu app. Correção: failover de URL secundária e cache de leituras críticas.
- Tier gratuito para mint em produção - 429 durante pico. Correção: plano pago dimensionado para RPS de pico.
- Hosts HTTP/WSS divergentes - assinaturas falham silenciosamente. Correção: copie endpoints pareados do dashboard.
- Self-host sem monitoramento - disco cheio no ledger para RPC. Correção: alertas de ledger e nós redundantes.
Alternativas
| Alternativa | Use quando | Não use quando |
|---|---|---|
| RPC devnet público | Protótipos | Mainnet em produção |
| Híbrido validador colocado + provedor | Trading firms | Site simples de mint NFT |
| Só metadados IPFS | Ativos estáticos | Necessidades RPC |
| Light client (futuro/experimental) | Descentralização extrema | Padrão de produção atual |
FAQs
Preciso de provedor para devnet?
Devnet pública funciona no início; provedor melhora confiabilidade para CI de equipe e demos.
Como escolher tamanho de plano?
Estime RPS de pico a partir de MAU, peso de GPA e conexões websocket - load test antes do lançamento.
Uma key serve HTTP e WSS?
Geralmente mesma API key em URLs pareadas - verifique docs do vendor.
Self-host é mais barato em escala?
Às vezes em RPS sustentado muito alto se você já opera staking - inclua custo de engenheiro e hardware.
O que é Yellowstone?
Interface gRPC Geyser - Triton e outros expõem para indexers (Yellowstone gRPC).
CI deve usar key RPC de produção?
Use key devnet restrita com teto baixo de rate - nunca commite keys mainnet em repos públicos.
Como provedores se relacionam com Agave 4.1.1?
Provedores rodam versões de validador no cronograma de rollout - skew ocasional de método/versão - monitore páginas de status.
Posso usar múltiplos provedores?
Sim - failover primário/secundário ou dividir leituras vs escritas se vendor suportar.
Provedores fazem cache de getAccountInfo?
Alguns fazem brevemente - não dependa de cache para leituras pós-transação sem refresh.
E latência geográfica?
Escolha região mais próxima de usuários e servidores; teste RTT de getSlot da região de deploy.
Relacionados
- RPC Basics - fundamentos JSON-RPC
- WebSocket Subscriptions - endpoints WSS
- The DAS API - features DAS do provedor
- RPC Best Practices - padrões resilientes de cliente
Versões da stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 e LiteSVM 0.6.x.