General
Testando com Surfpool

Testando com Surfpool

Curso de testes com Surfpool - Estratégias avançadas de teste para programas Solana

Surfpool 101

Testar programas Solana que dependem de Cross-Program Invocations (CPIs) tradicionalmente exige que os desenvolvedores façam dump de contas e programas da mainnet e depois os carreguem em um validador local.

Esse processo funciona para algumas contas, mas torna-se completamente inviável ao testar CPIs em programas complexos como o Jupiter, que pode depender de mais de 40 contas e mais de 8 programas.

O Surfpool resolve isso permitindo que os desenvolvedores simulem programas localmente usando contas da mainnet buscadas sob demanda, além de recursos adicionais:

  • Personalize variáveis do sistema: Viagem no tempo (teste seu programa em qualquer slot ou timestamp histórico), pause o relógio ou interrompa a produção de blocos

  • Modifique dados de contas: Defina o fornecimento de SOL (total, circulante e não circulante), transfira dados de contas entre programas ou atualize dados centrais da conta e informações da conta de token

  • Analise dados da chain: Faça perfil de transações para unidades de compute, mudanças em contas e detalhes de execução, e depois recupere perfis detalhados por assinatura, UUID ou tag

O que é o Surfpool

Surfpool é o SDK e conjunto de ferramentas abrangente, enquanto o Surfnet é a rede Solana local que ele cria. Pense no Surfpool como seu ambiente de desenvolvimento e no Surfnet como a rede blockchain executada dentro dele.

O Surfnet serve como um substituto direto para o solana-test-validator, construído especificamente para oferecer a melhor experiência de desenvolvimento para construtores na Solana.

Desenvolvido pela equipe TxTx, o Surfpool integra perfeitamente Infrastructure as Code em projetos baseados em Anchor, permitindo deployments reproduzíveis, auditáveis e seguros para qualquer rede Solana — privada ou pública.

Primeiros Passos

Tudo o que você precisa para executar o Surfnet está incluído no SDK do Surfpool. Como a instalação varia de acordo com o sistema operacional, siga a Página de Instalação oficial para sua configuração específica.

Após instalar o SDK do Surfpool, inicie o Surfnet com:

surfpool start

Isso inicia o Surfnet na porta padrão do validador local (http://127.0.0.1:8899) com uma interface de terminal exibindo:

  • Slots e Epoch: Os slots em execução atual processam automaticamente a cada 400ms. Use Tab para avançar manualmente para o próximo slot, ou Barra de espaço para pausar/retomar a produção automática de blocos

  • Logs de transações: Fluxo de atividade com timestamp mostrando tudo o que suas transações executam

Para uma experiência baseada em navegador, conecte-se ao Surfpool Studio neste link.

O Surfpool Studio inclui todos os recursos da interface de terminal mais capacidades adicionais como viagem no tempo e adição de tokens a qualquer conta para qualquer mint.

Fazendo Deploy de Programas

Após configurar o Surfnet, faça o deploy do seu programa e comece a construir.

Programas Anchor: Use anchor deploy com seu Anchor.toml configurado para [programs.localnet].

Programas Pinocchio: Faça deploy via Solana CLI com sua configuração definida para localnet: solana program deploy ./target/deploy/your_program.so --program-id ./target/deploy/your_program-keypair.json

Executar surfpool start em um Workspace Anchor solicita que você use Infrastructure as Code para deploy automatizado e contínuo do seu programa no Surfnet.

Testando Programas

Após fazer o deploy para localnet, conecte-se ao Surfnet direcionando para o validador local:

ts
import { Connection } from "@solana/web3.js";

const connection = new Connection("http://localhost:8899", "confirmed");
Blueshift © 2026Commit: 1b88646