Solana Web3.js 2.x versão: A nova era da programação funcional
A biblioteca Solana Web3.js lançou a versão 2.x em novembro deste ano, que trouxe mudanças significativas em relação à versão 1.x. Este artigo irá resumir as principais mudanças, preparando os desenvolvedores para o trabalho de migração futura.
Comparação de versões
A versão 1.x, embora simples de usar, apresenta alguns problemas. Ela concentra todas as funcionalidades em um único pacote, o que faz com que, mesmo que os desenvolvedores usem apenas algumas funcionalidades, precisem baixar toda a biblioteca. Isso não só aumenta o tempo de carregamento, mas também pode afetar a experiência do usuário.
A versão 2.x adotou um design modular, dividindo o antigo repositório de código em vários pequenos módulos, como @solana/accounts, @solana/codecs, entre outros. Ao mesmo tempo, a nova versão abandonou a implementação baseada em classes, passando a adotar uma abordagem baseada em funções únicas. Este design ajuda na otimização durante a construção de código JavaScript, com o código não utilizado sendo removido e não sendo baixado para o dispositivo do usuário. De acordo com dados oficiais, DApps que utilizam a nova versão costumam alcançar uma otimização de 30% no tamanho do código, e em alguns casos, até mais.
No entanto, o novo design modular da versão também impôs exigências mais elevadas à documentação da equipe Solana. Como ajudar os desenvolvedores a localizar rapidamente as funcionalidades necessárias tornou-se uma questão chave. Atualmente, a nomeação dos vários módulos possui uma boa semântica, o que, em certa medida, reduz a dificuldade de migração para os desenvolvedores.
É importante notar que a versão 2.x implementou zero dependências. Tendo em conta os recentes ataques à cadeia de fornecimento nas versões 1.95.5 e 1.95.6, reduzir as dependências externas aumenta sem dúvida a segurança da biblioteca.
Pontos de Mudança Importantes
conectar
A versão 2.x adotou uma abordagem mais funcional para lidar com conexões. A nova versão cria um emissor de solicitações configurando o endereço RPC, e em seguida utiliza esse emissor para iniciar várias solicitações.
par de chaves
O tratamento relacionado a chaves públicas e privadas também sofreu mudanças significativas. As classes Keypair e PublicKey, comuns na versão 1.x, foram substituídas por uma série de funções. Por exemplo, agora é possível usar await generateKeyPair() para gerar um par de chaves, em vez do anterior Keypair.generate(). O novo método retorna uma Promise, uma vez que utiliza a Web Crypto API do JavaScript, empregando a implementação nativa de Ed25519.
enviar transação
A versão 2.x não usa mais as classes Transaction e VersionedTransaction. Métodos relacionados ao System Program também foram removidos, sendo necessário importá-los de outros locais. 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. Por exemplo, a funcionalidade de transferência da versão 1.x pode ser implementada através da função pipe. É importante notar que o novo método depende mais do WSS, o que impõe requisitos mais elevados à estabilidade do serviço dos fornecedores de RPC.
React suporta
O projeto @solana/web3.js também inclui a biblioteca @solana/react, que oferece alguns Hooks do React e possui funcionalidades integradas, como signIn.
Resumo
O lançamento da versão 2.x do Solana Web3.js demonstra a determinação da equipe do Solana em continuar a melhorar. A nova versão oferece aos desenvolvedores uma maneira mais eficiente, flexível e personalizável de interagir com a rede Solana, prometendo impulsionar o desenvolvimento e a aplicação adicional da plataforma.
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
Atualização importante do Solana Web3.js 2.x: Design modular melhora o desempenho e a segurança
Solana Web3.js 2.x versão: A nova era da programação funcional
A biblioteca Solana Web3.js lançou a versão 2.x em novembro deste ano, que trouxe mudanças significativas em relação à versão 1.x. Este artigo irá resumir as principais mudanças, preparando os desenvolvedores para o trabalho de migração futura.
Comparação de versões
A versão 1.x, embora simples de usar, apresenta alguns problemas. Ela concentra todas as funcionalidades em um único pacote, o que faz com que, mesmo que os desenvolvedores usem apenas algumas funcionalidades, precisem baixar toda a biblioteca. Isso não só aumenta o tempo de carregamento, mas também pode afetar a experiência do usuário.
A versão 2.x adotou um design modular, dividindo o antigo repositório de código em vários pequenos módulos, como @solana/accounts, @solana/codecs, entre outros. Ao mesmo tempo, a nova versão abandonou a implementação baseada em classes, passando a adotar uma abordagem baseada em funções únicas. Este design ajuda na otimização durante a construção de código JavaScript, com o código não utilizado sendo removido e não sendo baixado para o dispositivo do usuário. De acordo com dados oficiais, DApps que utilizam a nova versão costumam alcançar uma otimização de 30% no tamanho do código, e em alguns casos, até mais.
No entanto, o novo design modular da versão também impôs exigências mais elevadas à documentação da equipe Solana. Como ajudar os desenvolvedores a localizar rapidamente as funcionalidades necessárias tornou-se uma questão chave. Atualmente, a nomeação dos vários módulos possui uma boa semântica, o que, em certa medida, reduz a dificuldade de migração para os desenvolvedores.
É importante notar que a versão 2.x implementou zero dependências. Tendo em conta os recentes ataques à cadeia de fornecimento nas versões 1.95.5 e 1.95.6, reduzir as dependências externas aumenta sem dúvida a segurança da biblioteca.
Pontos de Mudança Importantes
conectar
A versão 2.x adotou uma abordagem mais funcional para lidar com conexões. A nova versão cria um emissor de solicitações configurando o endereço RPC, e em seguida utiliza esse emissor para iniciar várias solicitações.
par de chaves
O tratamento relacionado a chaves públicas e privadas também sofreu mudanças significativas. As classes Keypair e PublicKey, comuns na versão 1.x, foram substituídas por uma série de funções. Por exemplo, agora é possível usar await generateKeyPair() para gerar um par de chaves, em vez do anterior Keypair.generate(). O novo método retorna uma Promise, uma vez que utiliza a Web Crypto API do JavaScript, empregando a implementação nativa de Ed25519.
enviar transação
A versão 2.x não usa mais as classes Transaction e VersionedTransaction. Métodos relacionados ao System Program também foram removidos, sendo necessário importá-los de outros locais. 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. Por exemplo, a funcionalidade de transferência da versão 1.x pode ser implementada através da função pipe. É importante notar que o novo método depende mais do WSS, o que impõe requisitos mais elevados à estabilidade do serviço dos fornecedores de RPC.
React suporta
O projeto @solana/web3.js também inclui a biblioteca @solana/react, que oferece alguns Hooks do React e possui funcionalidades integradas, como signIn.
Resumo
O lançamento da versão 2.x do Solana Web3.js demonstra a determinação da equipe do Solana em continuar a melhorar. A nova versão oferece aos desenvolvedores uma maneira mais eficiente, flexível e personalizável de interagir com a rede Solana, prometendo impulsionar o desenvolvimento e a aplicação adicional da plataforma.