As 25 Melhores Perguntas de Entrevista para Desenvolvedor Solana (2026)

As vagas para desenvolvedores Solana estao entre as mais bem pagas em blockchain, com salarios variando de $115.000 a $200.000+. Este guia cobre as perguntas de entrevista mais comuns que voce encontrara.
Fundamentos do Solana
1. O que e Solana e como difere do Ethereum?
Resposta: Solana e uma blockchain Layer 1 de alto desempenho projetada para velocidade e escalabilidade. Principais diferencas:
- Consenso: Solana usa Proof of History (PoH) + Proof of Stake vs Proof of Stake do Ethereum
- Velocidade: ~400ms tempo de bloco vs ~12 segundos
- Throughput: 65.000+ TPS teorico vs ~30 TPS
- Taxas: Fracoes de centavo vs variavel (frequentemente dolares)
- Smart contracts: Chamados de "Programs", escritos em Rust vs Solidity
2. Explique Proof of History (PoH)
Resposta: Proof of History e um relogio criptografico que cria um registro historico provando que eventos ocorreram em momentos especificos no tempo. Funciona assim:
- Executando uma funcao hash SHA-256 continuamente
- Cada hash inclui o hash anterior como entrada
- A saida serve como um timestamp verificavel
- Validadores podem verificar a sequencia sem comunicacao
Isso permite que o Solana ordene transacoes sem esperar pelo consenso de toda a rede sobre o tempo.
3. Qual e a diferenca entre um Program e uma Account?
Resposta:
- Programs sao codigo executavel implantado na blockchain (como smart contracts). Sao stateless e nao podem armazenar dados por si mesmos.
- Accounts sao containers de dados que armazenam estado e SOL. Programs leem e escrevem em accounts sobre as quais tem autoridade.
Essa separacao permite processamento paralelo de transacoes - diferentes transacoes podem ser executadas simultaneamente se acessarem accounts diferentes.
4. O que e um PDA (Program Derived Address)?
Resposta: Um PDA e uma chave publica derivada deterministicamente de um program ID e seeds. Caracteristicas principais:
const [pda, bump] = PublicKey.findProgramAddressSync(
[Buffer.from("seed"), userPubkey.toBuffer()],
programId
);
- Nao existe chave privada correspondente
- Apenas o program pode assinar por ele
- Usado para accounts pertencentes ao program
- Deterministico - mesmas seeds sempre produzem o mesmo endereco
5. Como funcionam as transacoes no Solana?
Resposta: Uma transacao Solana contem:
- Instructions: Operacoes a executar (pode ter multiplas)
- Signatures: De todos os signatarios necessarios
- Recent blockhash: Para deduplicacao (expira em ~2 minutos)
- Fee payer: Account que paga as taxas de transacao
const transaction = new Transaction()
.add(instruction1)
.add(instruction2);
transaction.recentBlockhash = blockhash;
transaction.feePayer = payer;
Perguntas sobre @solana/web3.js
6. O que e @solana/web3.js?
Resposta: O SDK oficial JavaScript/TypeScript para interagir com Solana. A versao 2.0 (lancada em Nov 2024) introduziu:
- Suporte a tree-shaking
- Zero dependencias
- Operacoes criptograficas 10x mais rapidas
- Padroes JavaScript modernos (API funcional)
7. Como voce se conecta a um cluster Solana?
Resposta:
// Legacy v1
import { Connection } from "@solana/web3.js";
const connection = new Connection("https://api.mainnet-beta.solana.com");
// v2
import { createSolanaRpc } from "@solana/web3.js";
const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");
8. Como voce cria e assina uma transacao?
Resposta:
import { Transaction, SystemProgram, Keypair } from "@solana/web3.js";
const transaction = new Transaction().add(
SystemProgram.transfer({
fromPubkey: sender.publicKey,
toPubkey: recipient,
lamports: 1000000000, // 1 SOL
})
);
transaction.recentBlockhash = (await connection.getLatestBlockhash()).blockhash;
transaction.feePayer = sender.publicKey;
transaction.sign(sender);
const signature = await connection.sendRawTransaction(transaction.serialize());
9. O que sao lamports?
Resposta: Lamports sao a menor unidade de SOL (como wei para ETH ou satoshis para BTC). 1 SOL = 1.000.000.000 lamports (10^9).
10. Como voce lida com a confirmacao de transacao?
Resposta:
const signature = await connection.sendTransaction(transaction);
// Aguardar confirmacao
await connection.confirmTransaction({
signature,
blockhash,
lastValidBlockHeight,
}, "confirmed"); // ou "finalized" para maxima certeza
Niveis de confirmacao:
- processed: Visto pelo no conectado
- confirmed: Votado pela supermaioria
- finalized: 31+ blocos de profundidade, irreversivel
Desenvolvimento de Programs
11. Quais linguagens voce pode usar para escrever Solana Programs?
Resposta:
- Rust (mais comum, melhor desempenho)
- C/C++ (suportado mas raro)
- Python via Seahorse (compila para Rust)
O framework Anchor e a escolha mais popular para desenvolvimento em Rust.
12. O que e o framework Anchor?
Resposta: Anchor e um framework para desenvolvimento de Solana Programs que fornece:
- Macros declarativas para reduzir boilerplate
- Validacao automatica de accounts
- Geracao de IDL para interacao com cliente
- Utilitarios de teste
#[program]
pub mod my_program {
use super::*;
pub fn initialize(ctx: Context<Initialize>) -> Result<()> {
// Logica do program
Ok(())
}
}
13. Como funciona a validacao de account no Anchor?
Resposta: Anchor usa macros derive para validar accounts:
#[derive(Accounts)]
pub struct Initialize<'info> {
#[account(init, payer = user, space = 8 + 32)]
pub my_account: Account<'info, MyData>,
#[account(mut)]
pub user: Signer<'info>,
pub system_program: Program<'info, System>,
}
14. O que e a Solana Program Library (SPL)?
Resposta: SPL e uma colecao de programs on-chain para funcionalidades comuns:
- Token Program: Tokens fungiveis (como ERC-20)
- Associated Token Account: Derivacao padrao de token account
- Token-2022: Recursos estendidos de token
- Name Service: Nomenclatura on-chain
- Memo: Anexar dados a transacoes
Arquitetura e Desempenho
15. Por que o Solana e tao rapido?
Resposta: Multiplas otimizacoes:
- Proof of History: Pre-ordena transacoes sem atraso de consenso
- Tower BFT: Consenso otimizado para PoH
- Turbine: Protocolo de propagacao de blocos
- Gulf Stream: Encaminhamento de transacoes sem mempool
- Sealevel: Runtime paralelo de smart contracts
- Pipelining: Processamento de transacoes acelerado por GPU
16. O que e Sealevel?
Resposta: O runtime paralelo do Solana que executa transacoes simultaneamente. Transacoes sao ordenadas por quais accounts acessam - aquelas que acessam accounts diferentes rodam em paralelo.
17. Como funcionam os validadores no Solana?
Resposta: Validadores:
- Executam o software Solana
- Validam e votam em transacoes
- Produzem blocos quando selecionados como lider
- Ganham recompensas da inflacao e taxas
- Requerem SOL em stake (proprio ou delegado)
Seguranca e Melhores Praticas
18. Quais sao as vulnerabilidades de seguranca comuns no Solana?
Resposta:
- Verificacoes de assinatura faltantes: Nao verificar signatarios da transacao
- Verificacoes de proprietario faltantes: Nao verificar propriedade da account
- Integer overflow: Aritmetica sem operacoes verificadas
- Colisoes de seed PDA: Seeds nao-unicas
- Ataques de reinicializacao: Permitir re-inicializacao de account
19. Como voce previne reentrancy no Solana?
Resposta: A arquitetura do Solana previne reentrancy em grande parte por design - programs nao podem se chamar recursivamente. No entanto, cross-program invocation (CPI) requer tratamento cuidadoso do estado da account.
20. O que e Cross-Program Invocation (CPI)?
Resposta: CPI permite que programs chamem outros programs:
let cpi_accounts = Transfer {
from: ctx.accounts.from.to_account_info(),
to: ctx.accounts.to.to_account_info(),
authority: ctx.accounts.authority.to_account_info(),
};
let cpi_program = ctx.accounts.token_program.to_account_info();
let cpi_ctx = CpiContext::new(cpi_program, cpi_accounts);
token::transfer(cpi_ctx, amount)?;
Topicos Avancados
21. O que sao priority fees e como funcionam?
Resposta: Priority fees aumentam a prioridade da transacao durante congestionamento:
const modifyComputeUnits = ComputeBudgetProgram.setComputeUnitLimit({
units: 200000
});
const addPriorityFee = ComputeBudgetProgram.setComputeUnitPrice({
microLamports: 1000
});
transaction.add(modifyComputeUnits, addPriorityFee);
22. O que e Jito e MEV no Solana?
Resposta: Jito e um cliente Solana que permite MEV (Maximal Extractable Value) atraves de:
- Bundles: Pacotes atomicos de transacoes
- Tips: Incentivos para validadores
- Block engine: Infraestrutura de extracao de MEV
23. Como voce lida com limites de taxa RPC?
Resposta:
- Use provedores RPC dedicados (Helius, QuickNode)
- Implemente exponential backoff
- Cache respostas quando possivel
- Use websockets para subscriptions vs polling
- Agrupe chamadas RPC quando possivel
24. O que e account compression?
Resposta: Account compression usa arvores Merkle para armazenar dados off-chain mantendo verificacao on-chain. Usado para:
- NFTs comprimidos (cNFTs)
- Airdrops em larga escala
- Assets de jogos
25. Como voce debugar transacoes Solana?
Resposta:
- Solana Explorer: Visualizar detalhes da transacao
- solana logs: Streaming de logs via CLI
- anchor test: Testes locais
- msg!() macro: Logging do program
- Simulacao antes de enviar:
connection.simulateTransaction()
Recursos Relacionados
Aprenda como construir com Solana em nosso Guia de Desenvolvimento Solana com JavaScript com exemplos praticos de codigo.
Para aplicacoes de trading, veja nosso Guia de Bot de Trading Solana cobrindo estrategias DeFi.
Conclusao
O desenvolvimento Solana requer entender sua arquitetura unica - Proof of History, o modelo de Account e execucao paralela. Domine esses conceitos junto com @solana/web3.js, e voce estara bem preparado para entrevistas tecnicas.