Na conferência Solana Breakpoint, realizada na semana passada, a atmosfera estava vibrante com lançamentos de produtos e vários eventos paralelos interessantes. Um destaque foi o lançamento oficial da versão inicial do cliente validador Solana Firedancer na rede principal.
Essa conquista histórica recebeu atenção especial, pois sinalizou um salto significativo no desempenho da rede Solana e, ao mesmo tempo, reduziu o risco de tempo de inatividade da rede causado por uma única falha de cliente.
O desenvolvimento do Firedancer remonta a 2021-2022, liderado pelo Jump Trading Group como o segundo cliente validador da Solana (com o cliente original, Agave, desenvolvido pela Anza). Seu principal objetivo era eliminar pontos únicos de falha, melhorando a robustez e a resiliência gerais da rede.
Ao contrário do validador original baseado em Rust, o Firedancer é escrito em C, excluindo o código Rust. Essa escolha reduz significativamente o possível impacto das vulnerabilidades na rede, acrescentando uma forte camada de segurança ao Solana.
Qual é o desempenho do Firedancer?
Durante uma apresentação no Solana Breakpoint, o cientista-chefe da Jump Crypto, Kevin Bowers, mostrou a capacidade do Firedancer de processar mais de 1 milhão de transações por segundo (TPS), excedendo em muito o limite teórico atual do Solana de dezenas de milhares de TPS. Ele comparou metaforicamente essa conquista à ampliação de uma “estrada rural” em uma “rodovia interestadual”, indicando uma otimização dupla dos custos e da capacidade da rede.
O engenheiro de núcleo Liam Heeger compartilhou o progresso na rede de testes, observando que o Firedancer produziu com sucesso mais de 20.000 blocos com uma taxa de staking de 1%. Outro engenheiro, Aryaman Jain, demonstrou o desempenho do Firedancer em condições específicas, revelando um TPS de até um milhão em um ambiente de 10 validadores, com mais de 1,2 bilhão de cálculos por segundo e capacidade de espaço de blocos de 3,5 Gbps.
Como o Firedancer funciona?
O Firedancer foi desenvolvido com base em três componentes principais: uma pilha de computação de alto desempenho, uma pilha de rede e os mecanismos de tempo de execução e consenso. Sua capacidade de elevar o desempenho do Solana para 1 milhão de TPS (o protocolo atual limita-se a cerca de 81.000 TPS) está em sua arquitetura inovadora e na otimização do fluxo de dados.
O validador emprega um modelo de concorrência que executa diversas tarefas em alguns threads, sendo que cada thread se concentra em tarefas específicas, como processamento de pacotes de rede, validação de transações e empacotamento de blocos. Esse projeto maximiza a utilização de recursos e acelera significativamente o processamento de transações.
Especificamente, cada thread executa uma das 11 tarefas diferentes. Algumas tarefas requerem apenas um thread, enquanto outras necessitam de vários threads trabalhando em paralelo. Cada thread opera em um núcleo de CPU dedicado, garantindo que ele nunca durma ou seja redirecionado pelo sistema operacional.
O Firedancer também apresenta uma arquitetura chamada “tiles”, em que cada tile representa um trabalho, seu thread em execução e o núcleo de CPU alocado. Essa combinação permite um ajuste de desempenho flexível e eficiente. Por exemplo, os blocos net e quic podem lidar com mais de 1 milhão de TPS, enquanto os blocos verify e bank se concentram na validação de transações e na execução de blocos, suficientes para cenários de alta simultaneidade.
A documentação oficial do Firedancer lista os 11 blocos a seguir:
- rede: envia e recebe pacotes de rede (cada bloco pode suportar >1 milhão de TPS);
- rápido: Recebe transações de clientes, gerenciando a conexão e o processamento de pacotes para o protocolo QUIC (cada bloco pode lidar com >1 milhão de TPS);
- verificar: valida as assinaturas criptográficas das transações recebidas, filtrando as inválidas (cada bloco pode lidar com 20 a 40.000 TPS);
- deduplicação: Verifica e filtra transações de entrada duplicadas;
- pacote: empacota as transações recebidas quando atua como líder, programando-as de forma inteligente para execução;
- banco: executa transações programadas (cada bloco pode lidar com 20 a 40.000 TPS);
- poh: Faz hashes continuamente em segundo plano, misturando hashes gerados com transações executadas para comprovar a ordem e o tempo;
- destruir: distribui dados de bloco para a rede quando atua como líder; quando não atua, recebe e retransmite dados de bloco (a taxa de transferência depende principalmente do tamanho do cluster, com benchmarks indicando >1 milhão de TPS para clusters pequenos);
- loja: Recebe dados de bloco quando atua como líder ou de outros nós quando eles são líderes, armazenando-os em um banco de dados de disco local;
- métrica: coleta informações de monitoramento sobre outros blocos e as fornece a pontos de extremidade HTTP;
- sinal: Mantém a chave privada do validador e responde às solicitações de assinatura de outros blocos.
Notavelmente, antes do amadurecimento do Firedancer, sua versão de transição, o Frankendancer, já entrou na Solana mainnet. O Frankendancer é um híbrido do código do Firedancer e do Agave, aproveitando as vantagens do Firedancer em termos de pilha de rede e produção de blocos, ao mesmo tempo em que mantém as funcionalidades de execução e consenso do Agave. Por outro lado, o Firedancer foi criado inteiramente do zero, sem nenhum código do Agave.
Qual é o impacto do Firedancer?
Sem dúvida, o lançamento do Firedancer tem implicações significativas para o ecossistema Solana, aumentando consideravelmente a diversidade de validadores e reduzindo ainda mais o risco de pontos únicos de falha, fortalecendo assim a confiabilidade da rede.
Além disso, o Firedancer mantém a compatibilidade com os protocolos existentes, garantindo uma transição tranquila para o ecossistema sem exigir ajustes substanciais dos desenvolvedores e usuários de DApp.
Embora o Firedancer esteja atualmente em modo não votante e passando por otimização e auditoria contínuas, ele apresenta um quadro promissor para o desenvolvimento futuro da rede Solana.