Web3.js versão 2.x: um novo capítulo no desenvolvimento de Solana
A biblioteca Solana Web3.js lançou oficialmente a versão 2.x em novembro deste ano, trazendo mudanças significativas em comparação com a versão 1.x. Este artigo resumirá os principais pontos de atualização para preparar os desenvolvedores para o trabalho de migração no futuro.
Comparação de Versões
A biblioteca Web3.js da versão 1.x é relativamente simples de usar, com todas as funcionalidades concentradas em um único pacote: @solana/web3.js. Ela é baseada em um design orientado a classes, encapsulando uma grande quantidade de operações comuns, como a classe Connection que contém dezenas de métodos, cobrindo basicamente a maioria das funcionalidades necessárias para os desenvolvedores.
No entanto, esse design também traz alguns problemas. Mesmo que os desenvolvedores usem apenas uma pequena parte das funcionalidades, toda a base de código será baixada para o dispositivo do usuário, o que pode resultar em tempos de carregamento mais longos.
A versão 2.x adotou uma estratégia diferente. A equipe de desenvolvimento dividiu o código original em vários pequenos módulos, como @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers e @solana/transactions. A nova versão abandonou a implementação baseada em classes e adotou mais a abordagem de funções únicas, o que ajuda na otimização durante a construção do código JavaScript. Códigos não utilizados serão removidos e não serão baixados para os dispositivos dos usuários. Segundo estatísticas oficiais, as 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 recentes ataques à cadeia de suprimentos nas versões 1.95.5 e 1.95.6, a redução das dependências externas pode diminuir significativamente os riscos de segurança. A equipe de desenvolvimento do Web3.js decidiu utilizar 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 implementar a funcionalidade de conexão. Os desenvolvedores agora podem criar um emissor de solicitações configurando o endereço RPC e, em seguida, usá-lo para enviar várias solicitações.
par de chaves
Na gestão de pares de chaves, a versão 2.x também apresenta mudanças significativas. As classes Keypair e PublicKey não existem mais, sendo substituídas por algumas novas funções. Por exemplo, agora é possível usar await generateKeyPair() para gerar pares de chaves, em vez do anterior Keypair.generate(). A nova implementação tira pleno proveito da API Web Crypto do JavaScript, utilizando a implementação nativa de Ed25519.
Enviar transação
Na versão 2.x, as classes Transaction e VersionedTransaction foram removidas. Os métodos relacionados ao System Program também não são mais fornecidos diretamente e precisam ser importados de outro lugar. Por exemplo, o comando transfer agora precisa chamar a função getTransferSolInstruction no @solana-program/system.
A nova versão oferece a forma pipe, comum na programação funcional, permitindo que os desenvolvedores combinem e executem operações de negociação de forma mais flexível.
Suporte React
É importante notar que o projeto @solana/web3.js também inclui uma biblioteca chamada @solana/react, que oferece alguns React Hooks, incorporando funcionalidades como signIn, proporcionando mais conveniência aos desenvolvedores React.
Resumo
O lançamento da versão 2.x do Solana Web3.js demonstra a determinação da equipe Solana em melhorar e inovar continuamente. A nova versão oferece aos desenvolvedores uma maneira mais eficiente, flexível e personalizável de interagir com a rede Solana, o que promete impulsionar o desenvolvimento e a aplicação adicional da plataforma.
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.
Lançamento da versão 2.x do Solana Web3.js: design modular ajuda a aumentar a eficiência do desenvolvimento
Web3.js versão 2.x: um novo capítulo no desenvolvimento de Solana
A biblioteca Solana Web3.js lançou oficialmente a versão 2.x em novembro deste ano, trazendo mudanças significativas em comparação com a versão 1.x. Este artigo resumirá os principais pontos de atualização para preparar os desenvolvedores para o trabalho de migração no futuro.
Comparação de Versões
A biblioteca Web3.js da versão 1.x é relativamente simples de usar, com todas as funcionalidades concentradas em um único pacote: @solana/web3.js. Ela é baseada em um design orientado a classes, encapsulando uma grande quantidade de operações comuns, como a classe Connection que contém dezenas de métodos, cobrindo basicamente a maioria das funcionalidades necessárias para os desenvolvedores.
No entanto, esse design também traz alguns problemas. Mesmo que os desenvolvedores usem apenas uma pequena parte das funcionalidades, toda a base de código será baixada para o dispositivo do usuário, o que pode resultar em tempos de carregamento mais longos.
A versão 2.x adotou uma estratégia diferente. A equipe de desenvolvimento dividiu o código original em vários pequenos módulos, como @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers e @solana/transactions. A nova versão abandonou a implementação baseada em classes e adotou mais a abordagem de funções únicas, o que ajuda na otimização durante a construção do código JavaScript. Códigos não utilizados serão removidos e não serão baixados para os dispositivos dos usuários. Segundo estatísticas oficiais, as 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 recentes ataques à cadeia de suprimentos nas versões 1.95.5 e 1.95.6, a redução das dependências externas pode diminuir significativamente os riscos de segurança. A equipe de desenvolvimento do Web3.js decidiu utilizar 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 implementar a funcionalidade de conexão. Os desenvolvedores agora podem criar um emissor de solicitações configurando o endereço RPC e, em seguida, usá-lo para enviar várias solicitações.
par de chaves
Na gestão de pares de chaves, a versão 2.x também apresenta mudanças significativas. As classes Keypair e PublicKey não existem mais, sendo substituídas por algumas novas funções. Por exemplo, agora é possível usar await generateKeyPair() para gerar pares de chaves, em vez do anterior Keypair.generate(). A nova implementação tira pleno proveito da API Web Crypto do JavaScript, utilizando a implementação nativa de Ed25519.
Enviar transação
Na versão 2.x, as classes Transaction e VersionedTransaction foram removidas. Os métodos relacionados ao System Program também não são mais fornecidos diretamente e precisam ser importados de outro lugar. Por exemplo, o comando transfer agora precisa chamar a função getTransferSolInstruction no @solana-program/system.
A nova versão oferece a forma pipe, comum na programação funcional, permitindo que os desenvolvedores combinem e executem operações de negociação de forma mais flexível.
Suporte React
É importante notar que o projeto @solana/web3.js também inclui uma biblioteca chamada @solana/react, que oferece alguns React Hooks, incorporando funcionalidades como signIn, proporcionando mais conveniência aos desenvolvedores React.
Resumo
O lançamento da versão 2.x do Solana Web3.js demonstra a determinação da equipe Solana em melhorar e inovar continuamente. A nova versão oferece aos desenvolvedores uma maneira mais eficiente, flexível e personalizável de interagir com a rede Solana, o que promete impulsionar o desenvolvimento e a aplicação adicional da plataforma.