Pular para o conteúdo
0%

Como escrever programas Solana em Python usando Seahorse

Publicado em 4 de novembro de 20225 min de leitura

Solana é uma rede blockchain de alta performance com funcionalidade de smart contract construída para escalar rumo à adoção global. Solana processa uma média de 3.000 transações por segundo, e é um dos protocolos blockchain mais rápidos. Solana Programs são smart contracts escritos na rede blockchain Solana usados para executar toda atividade, incluindo transferências de token, cunhagem de NFTs e votação on-chain.

Este artigo explica como escrever Solana Programs em Python usando o framework de desenvolvimento Seahorse, tanto a partir de um ambiente de desenvolvimento local quanto de uma IDE online.

Quais são as principais formas de desenvolver programas em Solana?

Para desenvolver Solana Programs, você precisa aprender Rust, construir com o framework de desenvolvimento Anchor, ou usar Seahorse, um framework de desenvolvimento pythonic para Solana.

Rust é a linguagem de programação sobre a qual Solana foi construída, e é a linguagem de programação web3 padrão que pode ser usada para interagir com o Sealevel Runtime da Solana.

Desenvolvendo em Solana com anchor

Anchor é um framework usado para facilitar o desenvolvimento de aplicações Solana, abstraindo as complexidades da linguagem Rust para o usuário comum.

Anchor fornece aos desenvolvedores Solana ferramentas como a Interface Definition Language (IDL), pacotes Typescript que geram clientes a partir do IDL, crates Rust, e Command Line Interface (CLI).

Desenvolvendo em Solana com Seahorse

Seahorse é um framework de desenvolvimento Solana conduzido pela comunidade que dá aos desenvolvedores a capacidade de escrever Solana programs na linguagem de programação Python.

Seahorse permite que todo programa escrito em Python tenha as mesmas medidas de segurança presentes nos programas Rust. Seahorse é totalmente compatível com Anchor, e também é interoperável com código Rust.

Python é usado na programação cotidiana de aplicações web e projetos de machine learning, e é a linguagem de programação mais popular.

Como muitos desenvolvedores interessados em construir aplicações baseadas em blockchain já podem ter habilidades de programação em Python, eles podem usar Seahorse para construir uma aplicação Solana sem precisar aprender uma linguagem de programação totalmente nova (Rust).

Como usar Seahorse com um ambiente de desenvolvimento Solana local

Uma plataforma como Solana Playground serve apenas para construir e testar aplicações rapidamente e não deve ser usada como dependência para criar apps em larga escala. Para configurar o ambiente necessário para construir com Seahorse em nosso workspace local, vamos instalar o seguinte:

  1. Rust
  2. O Solana Tool Suite
  3. Node
  4. Anchor
  5. Seahorse

1. Instale as ferramentas essenciais de desenvolvimento Solana

Para instalar Rust, o Solana Tool Suite, Node e Anchor, consulte este tutorial sobre configuração de um ambiente de desenvolvimento Solana local.

Se você estiver rodando uma máquina baseada em Linux, pode ser necessário executar o comando a seguir para adicionar dependências adicionais:

2. Instale o Seahorse

Seahorse depende de Anchor e do Rustfmt para funcionar corretamente. Como Anchor já deve estar funcionando na sua máquina, instalar o pacote Rustfmt e o Anchor é simples.

Execute o comando a seguir para adicionar o pacote Rustfmt:

Execute o comando a seguir no seu terminal para instalar o Seahorse:

Execute um último comando para verificar se o Seahorse foi instalado corretamente:

3. Gere uma paper wallet

Como você já tem as Solana Command Line Tools instaladas, você pode criar uma "paper wallet" local para usar enquanto trabalha localmente.

Execute o comando a seguir para verificar se as ferramentas CLI da Solana estão instaladas:

Em seguida, digite o próximo comando para gerar um novo keypair:

Salve os detalhes de forma segura para poder começar a usá-los no seu ambiente local.

Para financiar sua paper wallet:

Execute o comando solana airdrop 2 para adquirir 2 tokens SOL de teste

Se você quiser usar um ambiente de desenvolvimento online para testar o Seahorse em vez de rodá-lo localmente, uma boa opção é o Solana Playground.

Como configurar o Seahorse com o Solana playground

Solana Playground é um Integrated Development Environment online construído para acelerar o início do desenvolvimento de aplicações Solana.

Solana Playground oferece os seguintes Crates pré-construídos:

  1. Native (Rust) - para desenvolvedores que pretendem construir em Solana sem nenhum framework
  2. Anchor (Rust) - para desenvolvedores construírem em Solana em Rust com ferramentas adicionais
  3. Seahorse (Python) - para desenvolvedores Solana com experiência em programação com Python
Tela de seleção do Solana Playground para escolher um framework de desenvolvimento: Native, Anchor e Seahorse.
Tela de seleção do Solana Playground para escolher um framework de desenvolvimento: Native, Anchor e Seahorse.

1. Crie um novo projeto Solana playground

Crie um novo projeto no Solana Playground com um nome para o diretório. Após criar um nome, um projeto de demonstração chamado FizzBuzz irá aparecer. Este mini dapp é o que usaremos neste tutorial.

2. Crie uma playground wallet

Você deve primeiro gerar uma Playground Wallet para interagir com seus Seahorse programs. A Playground Wallet funciona como uma carteira de teste para a aplicação.

  • Clique em "playground wallet"
  • Selecione uma nova carteira
  • Siga as instruções e baixe o arquivo JSON
Interface do Solana Playground para criar uma nova Playground Wallet
Interface do Solana Playground para criar uma nova Playground Wallet

3. Obtenha tokens SOL de teste

Digite os comandos a seguir no terminal do playground para obter tokens SOL da devnet:

$ connect

O comando connect vincula sua carteira de teste ao projeto.

$ solana address

O comando solana address imprime o endereço da sua carteira Solana. Usaremos esse endereço mais adiante para inicializar o app FizzBuzz.

$ solana airdrop 2

O comando solana airdrop deposita tokens SOL de teste na sua carteira para cobrir as taxas necessárias para executar transações como "Build" ou "Deploy".

Arquivo do projeto de dapp FizzBuzz Seahorse do Solana Playground
Arquivo do projeto de dapp FizzBuzz Seahorse do Solana Playground

Como funcionam os componentes Python do seahorse

Nesta seção, vamos percorrer a criação do popular, porém simples, app FizzBuzz on-chain. Há três seções principais no nosso código:

  1. A Account
  2. Instruction 1
  3. Instruction 2

1. Account

Executable Accounts são usadas para definir o código executável (smart contract) que roda na blockchain Solana. Na definição de Accounts, você pode atribuir os tipos de dados necessários nos seus Solana programs.

Fizz e Buzz são definidos como tipos de dados Boolean, enquanto a variável "n" é do tipo unsigned integer.

2. Instruction 1

Existem outras formas de accounts chamadas Built-In Accounts. A maioria dessas built-in accounts é usada para chamar instruções específicas on-chain.

A. Signer account

Instruções que exigem signers precisam da aprovação de uma wallet. Um Signer é a wallet que assina a transação com a chamada de instrução definida nesta parte do código.

A palavra-chave owner é usada para armazenar o valor dos detalhes do Signer. Para obter a chave pública do Signer, você pode adicionar este código:

B. Empty account

Um tipo empty account é usado para inicializar a classe da Account principal (FizzBuzz), mesmo que ela esteja inicialmente vazia.

Usando a palavra-chave Empty, você pode construir a classe definida na Account principal. Quando a account FizzBuzz é inicializada, a taxa de criação é paga pelo Owner (ou seja, o signer da transação).

Uma vez que essa account tenha sido criada on-chain, ela não pode ser recriada quando chamada novamente pelo mesmo owner. O seed gerado a partir da inicialização é capaz de identificar a account original.

3. Instruction 2

A segunda chamada de instrução usa as accounts já criadas com seus valores.

Aqui está o exemplo de código completo do FizzBuzz:

Comece a construir aplicações Solana com Python usando Seahorse

Seahorse é um projeto open-source conduzido pela comunidade, totalmente gratuito para uso público. Seahorse está atualmente em beta e muitos de seus recursos ainda não foram implementados. Embora não esteja pronto para produção, ele pode ser usado para experimentar e desenvolver aplicações na devnet da Solana.

Com Seahorse, construir em Solana com Python é possível e simples. Se você é um desenvolvedor Python interessado em aprender desenvolvimento web3, explorar Seahorse com o Solana Playground é uma forma segura e divertida de começar a adquirir habilidades usando Anchor, Rust e Solana programs.

Background gradient

Construa magia blockchain

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