WEB3DEV

Cover image for Começando a desenvolver com o Protocolo NEAR
Lorenzo Battistela
Lorenzo Battistela

Posted on • Atualizado em

Começando a desenvolver com o Protocolo NEAR

O protocolo da NEAR oferece uma plataforma muito completa, com explicações sobre o protocolo, tanto sobre o uso prático dele, a utilização de plataforma, a história da criação da NEAR, o White Paper completo, o Blog e até suporte para carreira. Logo, não podia faltar a parte educacional, que visa formar desenvolvedores utilizadores da NEAR.

Educação

A parte educacional da NEAR se subdivide em duas categorias, sendo elas cursos e workshops guiados e séries educacionais de vídeo. Vamos falar de cada uma delas:

Cursos e Workshops Guiados

NEAR University: a Universidade NEAR apresenta inúmeros cursos e caminhos de educação no protocolo. Oferecendo programas como Analista Certificado NEAR e Desenvolvedor NEAR Certificado, a NEAR apresenta programas com certificação e self-paced, ou seja, o estudante faz no próprio ritmo, com as horas disponíveis que ele possui. Além disso, também oferecem cursos com parceiros e com suporte da comunidade e a possibilidade de ganhar dinheiro como professor, encontrando um emprego ou trabalhando para parceiros com as certificações NEAR.

NEAR Academy: A NEAR Academy é um curso interativo para desenvolvedores web e iniciantes que termina com um certificado de conclusão. Além desse caminho, oferece certificados em NFT, criação de carteira na rede de graça com a conclusão do curso e um sistema de contribuir para ganhar, onde pode-se ganhar tokens NEAR ao contribuir com a NEAR Academy no Github.

NEAR Certified Developer: nesse programa, o aluno é pago para participar de um curso de 5 dias para aprender a desenhar, desenvolver, testar e implementar smart contracts na NEAR.

Figment Learn Pathway: aqui, a NEAR apresenta tutoriais de interações iniciais com a plataforma da NEAR.

NEAR 101: introdução da NEAR para desenvolvedores Web.

NEAR 102: introdução da NEAR para desenvolvedores Ethereum.


Séries Educacionais de Vídeo

As séries de vídeo incluem conteúdos variados, como séries iniciantes, intermediárias e experts, focando em diferentes assuntos, como conceitos de blockchain, conceitos da NEAR, construção de smart contracts e outras coisas.


Documentação

Além dos cursos, desenvolvedores que preferirem aprender na prática sem auxílio de outros têm acesso a documentação, que detalha todas as ferramentas seja para desenvolver smart contracts, o front-end da aplicação e tutorial para rodar um node na rede e a ponte entre a NEAR e o Ethereum.


Comunidade

A NEAR também possui uma comunidade ativa, presente no Discord, Telegram, Fórum de Governança, Twitter e Github.


Desenvolvimento

A NEAR tem como um de seus pilares a facilidade de produção, ou seja, facilitar o desenvolvimento em cima da rede para que programadores possam se familiarizar rapidamente com as tecnologias necessárias e construir seus projetos na nela.

Mas por quê desenvolver na NEAR?

Existem inúmeros motivos, mas os principais atrativos para um desenvolvedor é a facilidade de desenvolvimento usando linguagens como o Rust ou AssemblyScript, a possibilidade de pagamento, já que o programador recebe 30% das taxas que o contrato gera, escalabilidade ilimitada visto que a infraestrutura de sharding da NEAR permite uma escala muito grande, as pontes de desenvolvimento que permitem mover contratos e dados de outras redes para a NEAR, a rapidez das transferências e o fato de ela ser climaticamente neutra.

Primeiros passos

Para os primeiros passos, a NEAR disponibiliza tutoriais na documentação, sendo eles o mint de uma NFT e um tutorial de construção de app.

Além disso, estão disponíveis exemplos de código que são bastante usados no mundo da web3.

Recursos para Desenvolvedores

- Documentação: Uma ferramenta essencial para o Dev, contendo exemplos e explicações sobre a plataforma e código da NEAR.

- Developer Tools: Referem-se a APIs, SDKs, e CLIs.

- Certificação: Abordado na parte de educação, a certificação de um desenvolvedor após fazer cursos disponibilizados pela NEAR.

- Incentivos: Como conseguir incentivo financeiro para o seu projeto na rede.

- Bounties: Resolva problemas e bugs na rede da NEAR e ganhe por isso.

- NEAR Wallet: Configure a sua carteira NEAR.

- Eventos: Encontre eventos acontecendo no mundo inteiro sobre a NEAR.

- Block Explorer: Peça essencial de desenvolvimento, explorador da NEAR para checar transações, endereços e detalhes em geral.


Nesse artigo vamos colocar a mão na massa e realizar Uum dos tutoriais presentes na NEAR, com o tema de criação de uma transação.

Criando transações

Para esse tutorial vamos usar como referência a documentação da NEAR e traduzir esse material para o português.


Para construir e processar transações, você vai precisar da nossa API lib Javascript: near-api-js. Existem muitas maneiras de criar transações, mas nesse exemplo vamos mostrar uma das maneiras de criar uma transação simples de transferência de token.

Mas a princípio, todas as transações precisam do seguinte:

  • signerId (ID da conta de quem originou a transação).

  • signerPublicKey

  • receiverId (ID da conta do recipiente da transação).

  • nonceForPublicKey (cada vez que uma chave é usada o valor do nonce deve ser incrementado em 1).

  • actions (clique aqui para ver os argumentos possíveis).

  • blockHash (o hash do bloco atual (dentro de 24h) para provar que a transação foi criada recentemente).

High-Level - Criando uma transação

Configuração:

1- Clone o repositório de transações exemplo pelo comando:

git clone https://github.com/near-examples/transaction-examples.git

2- Siga as instruções de configuração

Imports:

Em send-tokens-easy.js nós usamos duas dependências:

const nearAPI = require("near-api-js");
const { connect, KeyPair, keyStores, utils } = nearAPI;
require("dotenv").config();

Enter fullscreen mode Exit fullscreen mode

A segunda linha acima desconstrói algumas utilidades que vêm da nearAPI que você usará para interagir com a blockchain.

connect - cria uma conexão com a NEAR passando variáveis de configuração

KeyPair - cria uma keypair a partir da chave privada que você fornecerá em um arquivo .env

keyStores - armazena a keypair que você criará a partir da chave privada, usada para assinar transações

utils - usados para formatar valores da NEAR

Contas e Rede

Depois, você vai precisar colocar o accountId do mandador (sender) e recebedor (receiver), assim como o networkId (betanet, testnet ou mainnet).

const sender = "sender.testnet";
const receiver = "receiver.testnet";
const networkId = "testnet";
Enter fullscreen mode Exit fullscreen mode

Formatando quantidade de tokens

Quando estiver mandando tokens NEAR (Ⓝ) durante uma transação, a quantidade precisa ser convertida para Yocto Ⓝ ou (10^-24).

Para fazer isso você vai usar um método da near-api-js chamado parseNearAmount() (localizado em utils/format)

const amount = nearAPI.utils.format.parseNearAmount("1.5");
Enter fullscreen mode Exit fullscreen mode

Criando um Key Store

Para assinar as transações, você vai precisar criar um Key Store, que vai ter uma chave de acesso completo para assinar suas transações. Existem muitas maneiras de atingir isso, mas para esse exemplo nós vamos usar uma chave privada armazenada ou em um arquivo .env no seu projeto ou uma variável de ambiente exportada globalmente.

Se você criou a conta usando a near-cli ou rodou near login no seu terminal, sua chave privada pode ser encontrada em um arquivo .json localizado em /HOME/.near-credentials.

Se você criou sua conta usando a NEAR Wallet, sua chave vai estar no Local Storage do seu navegador.

Nas dev tools do navegador: Aplicação >> Armazenamento >> Armazenamento Local

// configura um objeto keyStore vazio na memória usando a near-api-js
const keyStore = new keyStores.InMemoryKeyStore();
// cria uma keyPair a partir de uma chave privada encontrada no seu arquivo .env
const keyPair = KeyPair.fromString(process.env.SENDER_PRIVATE_KEY);
// adiciona a chave que você acabou de criar para o seu keyStore que pode armazenar várias chaves (precisa estar numa função async)
await keyStore.setKey(networkId, sender, keyPair);
Enter fullscreen mode Exit fullscreen mode

Configurando uma conexão com a NEAR

Agora vamos criar uma conexão com a NEAR usando um objeto de configuração que vai conter o seu networkId configurado anteriormente e o seu keyStore.

// configuração usada para conectar com a NEAR
const config = {
  networkId,
  keyStore,
  nodeUrl: `https://rpc.${networkId}.near.org`,
  walletUrl: `https://wallet.${networkId}.near.org`,
  helperUrl: `https://helper.${networkId}.near.org`,
  explorerUrl: `https://explorer.${networkId}.near.org`,
};

// conecte com a NEAR :)!
const near = await connect(config);

// cria um objeto de conta NEAR
const senderAccount = await near.account(sender);
Enter fullscreen mode Exit fullscreen mode

Você vai perceber que a última linha usa sua conexão com a near para criar um objeto senderAccount que você vai usar para performar a transação.

Criar, assinar e mandar a transação

Agora que tudo está configurado, criar a transação é uma única linha de código.

const result = await senderAccount.sendMoney(receiver, amount);
Enter fullscreen mode Exit fullscreen mode

Esse simples comando constrói, assina e manda uma transação de transferência de token na blockchain da NEAR. Não temos a necessidade de criar uma variável de resultado além de inspecionar os detalhes da resposta da sua transação e até criar um link para o Explorer da NEAR para ver uma versão mais visual dos detalhes da transação.


Conclusão

Podemos ver que a NEAR oferece muitos recursos para o aprendizado de um desenvolvedor, já que pessoas desenvolvendo na rede é uma grande vantagem para eles. Aulas grátis, possibilidade de recompensas e uma documentação completa são algumas das coisas que pudemos ver nesse artigo, além de um tutorial de código completo na documentação.

Como desenvolvedor, é animador observar o empenho com que a NEAR incita os desenvolvedores a produzir na rede e os recursos disponíveis para tal ação.

Além disso, é sempre bom destacar que a nossa comunidade Web3dev colabora muito com os desenvolvedores, e temos um canal específico da NEAR. Venha participar da nossa comunidade!

Latest comments (0)