Atualização da versão 2.x do Solana Web3.js: Abraçando a programação funcional
O Solana Web3.js, como uma biblioteca JavaScript rica em funcionalidades, lançou a versão 2.x em novembro deste ano. Em comparação com a 1.x, a nova versão trouxe mudanças significativas. Embora a utilização da versão 2.x ainda não seja alta e muitas bibliotecas amplamente utilizadas ainda não tenham migrado, compreender essas mudanças é crucial para o desenvolvimento e trabalho de migração futuros.
Comparação de Versões
A utilização da versão 1.x é relativamente simples, com todas as funcionalidades concentradas num único pacote @solana/web3.js, que encapsula uma grande quantidade de operações comuns com base em um design orientado a classes. Por exemplo, a classe Connection oferece dezenas de métodos, cobrindo quase todas as funcionalidades necessárias para os desenvolvedores. No entanto, esse design também traz alguns problemas, como o tamanho excessivo da biblioteca, pois os dispositivos dos usuários precisam fazer o download de toda a biblioteca, mesmo que utilizem apenas uma pequena parte das funcionalidades.
A versão 2.x adotou um design modular, dividindo a base de código em vários pequenos módulos, como @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers, @solana/transactions, entre outros. A nova versão abandonou a implementação baseada em classes e passou a utilizar uma abordagem de função única, o que favorece 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 dados oficiais, aplicações que utilizam a nova versão costumam obter uma otimização de volume de 30%; se apenas algumas funcionalidades forem utilizadas, a proporção de otimização pode ser ainda maior.
Uma outra característica importante da versão 2.x é a ausência de dependências. Tendo em conta os ataques na cadeia de fornecimento que ocorreram recentemente nas versões 1.95.5 e 1.95.6, a redução das dependências externas ajuda a aumentar a segurança. A equipe de desenvolvimento decidiu usar 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. A classe Connection não é mais utilizada; em vez disso, um emissor de solicitações é criado configurando o endereço de solicitação RPC. Por exemplo, ao enviar uma transação, uma solicitação HTTPS é automaticamente iniciada e uma conexão WSS é estabelecida, assinando o estado da transação e retornando o hash da transação após a confirmação.
par de chaves
Na versão 2.x, as classes Keypair e PublicKey foram substituídas por uma série de funções. Por exemplo, agora se usa await generateKeyPair() para gerar pares de chaves, em vez de Keypair.generate(). A nova implementação utiliza a API Web Crypto do JavaScript, usando a implementação nativa Ed25519, o que fez com que muitos métodos se tornassem 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 foram removidos e precisam ser importados de outros pacotes. Por exemplo, o comando de transferência agora requer a chamada da função getTransferSolInstruction no @solana-program/system.
A nova versão oferece a forma pipe, comumente usada em programação funcional. As transações não são mais iniciadas através da Connection, mas sim através da geração de funções específicas por um RPC Provider definido. Embora essa abordagem aumente ligeiramente a quantidade de código, ela oferece uma personalização mais robusta.
React suporta
O projeto @solana/web3.js também inclui uma biblioteca chamada @solana/react, que oferece alguns React Hooks, com funcionalidades embutidas como signIn.
Resumo
A versão 2.x de @solana/web3.js demonstra o compromisso da equipa Solana com o desenvolvimento contínuo e a melhoria. A nova versão oferece aos desenvolvedores uma maneira mais eficiente, flexível e personalizável de interagir com a rede Solana, com a esperança de promover a adoção e o desenvolvimento da plataforma. Embora ainda esteja numa fase inicial, à medida que o tempo passa, acredita-se que mais projetos irão migrar para esta nova versão.
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
Repostar
Compartilhar
Comentário
0/400
DiamondHands
· 07-27 11:54
o v2 do sol finalmente chegou
Ver originalResponder0
GasGrillMaster
· 07-26 04:37
Totalmente sem dependências? Quero ver.
Ver originalResponder0
GweiObserver
· 07-24 21:40
Solana finalmente entrou na onda
Ver originalResponder0
ThreeHornBlasts
· 07-24 21:22
A Solana finalmente deu uma força uma vez!
Ver originalResponder0
PretendingSerious
· 07-24 21:20
Essa atualização finalmente chegou. Você é esperto.
Atualização do Solana Web3.js 2.x: Design modular melhora desempenho e segurança
Atualização da versão 2.x do Solana Web3.js: Abraçando a programação funcional
O Solana Web3.js, como uma biblioteca JavaScript rica em funcionalidades, lançou a versão 2.x em novembro deste ano. Em comparação com a 1.x, a nova versão trouxe mudanças significativas. Embora a utilização da versão 2.x ainda não seja alta e muitas bibliotecas amplamente utilizadas ainda não tenham migrado, compreender essas mudanças é crucial para o desenvolvimento e trabalho de migração futuros.
Comparação de Versões
A utilização da versão 1.x é relativamente simples, com todas as funcionalidades concentradas num único pacote @solana/web3.js, que encapsula uma grande quantidade de operações comuns com base em um design orientado a classes. Por exemplo, a classe Connection oferece dezenas de métodos, cobrindo quase todas as funcionalidades necessárias para os desenvolvedores. No entanto, esse design também traz alguns problemas, como o tamanho excessivo da biblioteca, pois os dispositivos dos usuários precisam fazer o download de toda a biblioteca, mesmo que utilizem apenas uma pequena parte das funcionalidades.
A versão 2.x adotou um design modular, dividindo a base de código em vários pequenos módulos, como @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers, @solana/transactions, entre outros. A nova versão abandonou a implementação baseada em classes e passou a utilizar uma abordagem de função única, o que favorece 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 dados oficiais, aplicações que utilizam a nova versão costumam obter uma otimização de volume de 30%; se apenas algumas funcionalidades forem utilizadas, a proporção de otimização pode ser ainda maior.
Uma outra característica importante da versão 2.x é a ausência de dependências. Tendo em conta os ataques na cadeia de fornecimento que ocorreram recentemente nas versões 1.95.5 e 1.95.6, a redução das dependências externas ajuda a aumentar a segurança. A equipe de desenvolvimento decidiu usar 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. A classe Connection não é mais utilizada; em vez disso, um emissor de solicitações é criado configurando o endereço de solicitação RPC. Por exemplo, ao enviar uma transação, uma solicitação HTTPS é automaticamente iniciada e uma conexão WSS é estabelecida, assinando o estado da transação e retornando o hash da transação após a confirmação.
par de chaves
Na versão 2.x, as classes Keypair e PublicKey foram substituídas por uma série de funções. Por exemplo, agora se usa await generateKeyPair() para gerar pares de chaves, em vez de Keypair.generate(). A nova implementação utiliza a API Web Crypto do JavaScript, usando a implementação nativa Ed25519, o que fez com que muitos métodos se tornassem 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 foram removidos e precisam ser importados de outros pacotes. Por exemplo, o comando de transferência agora requer a chamada da função getTransferSolInstruction no @solana-program/system.
A nova versão oferece a forma pipe, comumente usada em programação funcional. As transações não são mais iniciadas através da Connection, mas sim através da geração de funções específicas por um RPC Provider definido. Embora essa abordagem aumente ligeiramente a quantidade de código, ela oferece uma personalização mais robusta.
React suporta
O projeto @solana/web3.js também inclui uma biblioteca chamada @solana/react, que oferece alguns React Hooks, com funcionalidades embutidas como signIn.
Resumo
A versão 2.x de @solana/web3.js demonstra o compromisso da equipa Solana com o desenvolvimento contínuo e a melhoria. A nova versão oferece aos desenvolvedores uma maneira mais eficiente, flexível e personalizável de interagir com a rede Solana, com a esperança de promover a adoção e o desenvolvimento da plataforma. Embora ainda esteja numa fase inicial, à medida que o tempo passa, acredita-se que mais projetos irão migrar para esta nova versão.