Pular para o conteúdo
0%

O que é o Anchor e o Anchor Program Registry?

Escrito por Pari

Publicado em 26 de janeiro de 20235 min de leitura

Anchor é um dos principais frameworks de desenvolvimento para Solana, voltado à escrita de programas de alto nível seguros e eficientes na Solana. Um programa em Anchor é um smart contract na blockchain Solana que permite aos usuários ancorar dados na blockchain Solana. Devido à grande comunidade de desenvolvedores da Solana, os programas verificados na Solana são hospedados no Anchor Program Registry para facilitar o acesso.

Este artigo vai ajudar você a entender como usar uma das ferramentas de desenvolvimento Solana mais importantes, o Anchor, e o Anchor Program Registry para construir na Solana. Também vamos comparar Anchor e Seahorse, um framework de desenvolvimento baseado em Python para interagir com a Solana.

O que é o modelo de contas da Solana?

Tudo o que os desenvolvedores constroem na blockchain Solana envolve programs e accounts, que executam e armazenam dados na blockchain. Existem diferentes categorias de accounts na Solana, incluindo:

  • Data accounts - armazenam dados
  • Program accounts - armazenam programas executáveis
  • Native accounts - indicam programas nativos na Solana

E cada account armazena um conjunto de informações:

  • lamports - número de lamports pertencentes à account
  • owner - programa proprietário da account
  • executable - verifica se a account pode processar instruções ou não
  • data - array de bytes de dados brutos armazenado pela account
  • rent_epoch - próxima epoch em que a account deverá pagar taxas de rent

O que é o Anchor?

Anchor é um framework usado para escrever programas seguros e de alto nível na Solana, que abstrai a construção de baixo nível de accounts e a modificação das interfaces dos seus programas Solana.

Um framework atua como uma base para que os usuários não precisem criar lógica desnecessária do zero, ajuda a evitar código redundante e a escrever programas limpos e seguros. Especificamente, o Anchor fornece accounts desserializadas e dados de instrução por meio de boilerplates, uma interface de linha de comando (CLI) e um workspace para desenvolver aplicativos Solana.

Como o Anchor funciona?

O Anchor usa macros e traits para gerar código Rust boilerplate para o desenvolvedor. Todo programa Anchor consiste em três componentes:

  1. declare_id - uma macro usada para declarar o endereço on-chain do programa
  2. #[program] - macro de atributo usada para indicar o módulo que contém a lógica de instrução do programa
  3. #[account] - macro de atributo usada para definir tipos de account personalizados para o programa

Aqui está a estrutura básica de um programa Anchor:

Estrutura básica de um programa Anchor
Estrutura básica de um programa Anchor

1. Criar um keypair padrão

Ao construir um programa Anchor pela primeira vez, ele gera um novo par de chaves que serve como keypair padrão para implantar o programa.

A chave pública deve ser usada como o programID especificado na macro declare_id!

2. Instruir o programa

Em seguida, podemos instruir o programa separadamente usando o atributo #[program]. Cada função de instrução requer um parâmetro do tipo Context e pode, opcionalmente, incluir parâmetros de função adicionais representando dados de instrução. O Anchor cuida automaticamente da desserialização dos dados de instrução, de forma que o usuário possa trabalhar com esses dados como tipos Rust.

3. Implementar um desserializador de account

#[derive(Accounts)] implementa um desserializador de Account na struct fornecida e elimina a necessidade de desserializar cada account manualmente. Isso é responsável por realizar todas as verificações de restrição necessárias e garantir que as accounts atendam às condições exigidas para que o programa funcione com segurança.

4. Invocar a função initialize

Quando a função Initialize é invocada, o programa:

  • Verifica se as accounts passadas para a instrução correspondem aos tipos de account especificados na struct Initialize
  • Verifica as accounts em relação a quaisquer restrições adicionais especificadas

É assim que um programa Anchor funciona e permite que você comece a construir programas Anchor. Para saber mais sobre programas Anchor, é altamente recomendável consultar a documentação oficial.

O que é o Anchor Program Registry (APR)?

O Anchor Program Registry (APR) é um diretório de programas Anchor registrados na blockchain Solana, permitindo que os usuários os localizem e acessem facilmente. O APR garante que os programas Anchor sejam registrados e autenticados na blockchain.

Há vários programas no Anchor Program Registry para facilitar o seu trabalho. Vejamos alguns exemplos:

  • token_signer - fornece um conjunto de programas para gerenciamento de chaves e segurança na Solana.
  • spl_governance - uma coleção de programas on-chain voltados para o Sealevel parallel runtime.
  • crate_token - permite que qualquer pessoa crie, gerencie e negocie uma cesta tokenizada de ativos.

Como os desenvolvedores Solana usam o Anchor Program Registry?

Os desenvolvedores Solana usam o Anchor Program Registry para acessar programas verificados na blockchain Solana. O Anchor Program Registry catalga o código-fonte de programas verificados, permitindo que os desenvolvedores acessem um repositório de código funcional.

Você pode seguir o fluxo abaixo para usar o Anchor Program Registry:

  1. Acesse o endereço de um Anchor Program
  2. Conecte sua wallet
  3. Acesse a UI
  4. Assine e envie uma transação para executar uma instrução

A interface do APR fornece uma lista de instruções que o programa Anchor suporta e campos de formulário que você pode usar para configurar os inputs de uma determinada instrução.

O que é o Seahorse?

Seahorse é um framework de desenvolvimento Solana como o Anchor, mas construído para desenvolvedores Python. O Seahorse fornece um conjunto de ferramentas para construir, implantar e interagir com programs e accounts na blockchain Solana. Ele suporta diferentes linguagens de programação como JavaScript, Rust e Python, com recursos e documentação completos para novos desenvolvedores.

Anchor vs. Seahorse

Feature
Seahorse
Anchor

Linguagens de programação suportadas

JavaScript, Rust, Python

JavaScript, TypeScript

Foco

Flexibilidade e escalabilidade

Experiência do usuário e facilidade de uso

Ferramentas e recursos

Desenvolvimento de smart contracts

Desenvolvimento de aplicações descentralizadas

Ambiente de desenvolvimento local

Testnet para executar simulações

Documentação e recursos

Recursos para aprender Anchor

Existem vários recursos disponíveis para ajudar você a aprender sobre o framework Anchor:

  1. Anchor Docs - encontre as informações mais relevantes e atualizadas
  2. Soldev - comece a desenvolver smart contracts com Anchor usando código de exemplo
  3. Sol Playground - comece a desenvolver programas com Anchor usando uma IDE online

Existem muitos recursos disponíveis para ajudar você a aprender sobre o framework Anchor e começar a construir suas próprias aplicações descentralizadas.

Comece a desenvolver com Anchor e Alchemy

O framework Anchor é uma ferramenta valiosa para construir programas Solana (smart contracts) confiáveis e seguros. Além disso, o Anchor Program Registry é um diretório de programas verificados na blockchain Solana, sendo um recurso essencial para permitir melhor composability.

A versatilidade e a escalabilidade do framework Anchor o tornam uma escolha atraente para desenvolvedores Solana. Se você está pronto para começar sua jornada de desenvolvimento na Solana, cadastre-se para uma conta Solana RPC gratuita hoje mesmo!

Background gradient

Construa magia blockchain

A Alchemy combina os produtos e ferramentas de desenvolvimento Web3 mais poderosos com recursos, comunidade e suporte lendário.