Solana Web3.js 2.x versão: divisão de funcionalidades e otimização de desempenho
O Solana Web3.js, como uma biblioteca JavaScript rica em funcionalidades, lançou oficialmente a versão 2.x em novembro deste ano. Comparado à versão 1.x, a nova versão apresenta mudanças significativas na estrutura e na forma de implementação. Este artigo irá resumir essas principais mudanças para ajudar os desenvolvedores a se prepararem para a migração futura.
Comparação de Versões
As principais características da versão 1.x são a simplicidade e a facilidade de uso. Ela inclui apenas um pacote @solana/web3.js, adotando um design baseado em classes, que encapsula uma grande quantidade de operações comuns. Por exemplo, a classe Connection oferece dezenas de métodos, quase cobrindo todas as funcionalidades necessárias para os desenvolvedores. No entanto, esse design também traz alguns problemas, como o tamanho grande da biblioteca de código, onde os dispositivos dos usuários precisam baixar uma quantidade significativa de código que pode não ser necessário.
A versão 2.x adotou uma estratégia diferente. A equipe de desenvolvimento dividiu o repositório de código em vários módulos pequenos, como @solana/accounts, @solana/codecs, @solana/rpc, entre outros. A nova versão abandonou a implementação baseada em classes, optando por uma abordagem de função única, o que beneficia a otimização durante a construção do código JavaScript. O código não utilizado será removido e não será baixado para os dispositivos dos usuários. De acordo com estatísticas oficiais, os DApps que utilizam a nova versão geralmente conseguem uma otimização de 30% em tamanho, e se apenas algumas funcionalidades forem utilizadas, a proporção de otimização pode ser ainda maior.
Outra característica importante da versão 2.x é a ausência de dependências. Tendo em conta os ataques à cadeia de suprimentos que ocorreram recentemente nas versões 1.95.5 e 1.95.6, a redução de dependências externas pode diminuir significativamente os riscos de segurança. A nova versão utiliza mais funcionalidades nativas, eliminando a introdução de dependências externas e Polyfills.
Pontos de Mudança Importantes
conectar
A versão 2.x adotou uma abordagem mais funcional para lidar com conexões. Não se utiliza mais a classe Connection, mas sim a configuração do endereço RPC para criar o emissor de requisições. Por exemplo, ao enviar uma transação, uma requisição HTTPS é automaticamente iniciada e uma conexão WSS é estabelecida para subscrever o estado da transação.
par de chaves
O tratamento relacionado à chave pública e à chave privada também mudou. As classes Keypair e PublicKey, comumente usadas na versão 1.x, foram substituídas por algumas funções. Por exemplo, agora usamos await generateKeyPair() para gerar um par de chaves, em vez do anterior Keypair.generate(). A nova implementação aproveita a API Web Crypto do JavaScript, utilizando a implementação nativa de Ed25519, o que faz com que alguns métodos se tornem assíncronos.
enviar transação
A versão 2.x não utiliza mais as classes Transaction e VersionedTransaction. Os métodos relacionados ao System Program também precisam ser importados de outros lugares. Por exemplo, a instrução transfer agora precisa chamar a função getTransferSolInstruction do @solana-program/system.
A nova versão oferece a forma pipe, comumente usada em programação funcional. Os desenvolvedores podem usar a função pipe para implementar a funcionalidade de transferência da versão 1.x. Embora a quantidade de código tenha aumentado, isso proporciona uma maior personalização.
React suporta
É importante notar que o projeto @solana/web3.js também inclui uma biblioteca chamada @solana/react, que fornece alguns React Hooks, incorporando funcionalidades como signIn.
Resumo
O lançamento da versão 2.x do Solana Web3.js demonstra o compromisso da equipe de desenvolvimento com a melhoria contínua. A nova versão oferece aos desenvolvedores uma maneira mais eficiente, flexível e personalizável de interagir com a rede Solana, prometendo impulsionar ainda mais o desenvolvimento e a aplicação da plataforma. Embora muitos projetos ainda não tenham migrado para a nova versão, compreender essas mudanças ajudará os desenvolvedores a se prepararem para a transição futura.
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
10 Curtidas
Recompensa
10
5
Compartilhar
Comentário
0/400
StablecoinArbitrageur
· 21h atrás
*ajusta os óculos* hmm... com base na minha análise de métricas de desempenho, dividir em módulos deve reduzir a latência em ~47 pontos de base
Ver originalResponder0
MissingSats
· 21h atrás
Finalmente esperei pela atualização, esperei um ano.
Ver originalResponder0
LucidSleepwalker
· 21h atrás
A versão 2.x chegou, não consigo mais aprender.
Ver originalResponder0
DuckFluff
· 21h atrás
Hã, ainda estás a usar a versão 1.x, vai actualizar.
Ver originalResponder0
BrokenYield
· 22h atrás
finalmente alguma gestão de risco em sol... levou-lhes tempo suficiente smh
Solana Web3.js 2.x: Reestruturação modular e melhoria de desempenho
Solana Web3.js 2.x versão: divisão de funcionalidades e otimização de desempenho
O Solana Web3.js, como uma biblioteca JavaScript rica em funcionalidades, lançou oficialmente a versão 2.x em novembro deste ano. Comparado à versão 1.x, a nova versão apresenta mudanças significativas na estrutura e na forma de implementação. Este artigo irá resumir essas principais mudanças para ajudar os desenvolvedores a se prepararem para a migração futura.
Comparação de Versões
As principais características da versão 1.x são a simplicidade e a facilidade de uso. Ela inclui apenas um pacote @solana/web3.js, adotando um design baseado em classes, que encapsula uma grande quantidade de operações comuns. Por exemplo, a classe Connection oferece dezenas de métodos, quase cobrindo todas as funcionalidades necessárias para os desenvolvedores. No entanto, esse design também traz alguns problemas, como o tamanho grande da biblioteca de código, onde os dispositivos dos usuários precisam baixar uma quantidade significativa de código que pode não ser necessário.
A versão 2.x adotou uma estratégia diferente. A equipe de desenvolvimento dividiu o repositório de código em vários módulos pequenos, como @solana/accounts, @solana/codecs, @solana/rpc, entre outros. A nova versão abandonou a implementação baseada em classes, optando por uma abordagem de função única, o que beneficia a otimização durante a construção do código JavaScript. O código não utilizado será removido e não será baixado para os dispositivos dos usuários. De acordo com estatísticas oficiais, os DApps que utilizam a nova versão geralmente conseguem uma otimização de 30% em tamanho, e se apenas algumas funcionalidades forem utilizadas, a proporção de otimização pode ser ainda maior.
Outra característica importante da versão 2.x é a ausência de dependências. Tendo em conta os ataques à cadeia de suprimentos que ocorreram recentemente nas versões 1.95.5 e 1.95.6, a redução de dependências externas pode diminuir significativamente os riscos de segurança. A nova versão utiliza mais funcionalidades nativas, eliminando a introdução de dependências externas e Polyfills.
Pontos de Mudança Importantes
conectar
A versão 2.x adotou uma abordagem mais funcional para lidar com conexões. Não se utiliza mais a classe Connection, mas sim a configuração do endereço RPC para criar o emissor de requisições. Por exemplo, ao enviar uma transação, uma requisição HTTPS é automaticamente iniciada e uma conexão WSS é estabelecida para subscrever o estado da transação.
par de chaves
O tratamento relacionado à chave pública e à chave privada também mudou. As classes Keypair e PublicKey, comumente usadas na versão 1.x, foram substituídas por algumas funções. Por exemplo, agora usamos await generateKeyPair() para gerar um par de chaves, em vez do anterior Keypair.generate(). A nova implementação aproveita a API Web Crypto do JavaScript, utilizando a implementação nativa de Ed25519, o que faz com que alguns métodos se tornem assíncronos.
enviar transação
A versão 2.x não utiliza mais as classes Transaction e VersionedTransaction. Os métodos relacionados ao System Program também precisam ser importados de outros lugares. Por exemplo, a instrução transfer agora precisa chamar a função getTransferSolInstruction do @solana-program/system.
A nova versão oferece a forma pipe, comumente usada em programação funcional. Os desenvolvedores podem usar a função pipe para implementar a funcionalidade de transferência da versão 1.x. Embora a quantidade de código tenha aumentado, isso proporciona uma maior personalização.
React suporta
É importante notar que o projeto @solana/web3.js também inclui uma biblioteca chamada @solana/react, que fornece alguns React Hooks, incorporando funcionalidades como signIn.
Resumo
O lançamento da versão 2.x do Solana Web3.js demonstra o compromisso da equipe de desenvolvimento com a melhoria contínua. A nova versão oferece aos desenvolvedores uma maneira mais eficiente, flexível e personalizável de interagir com a rede Solana, prometendo impulsionar ainda mais o desenvolvimento e a aplicação da plataforma. Embora muitos projetos ainda não tenham migrado para a nova versão, compreender essas mudanças ajudará os desenvolvedores a se prepararem para a transição futura.