Saltar al contenido
0%

Cómo escribir programas de Solana en Python usando Seahorse

Publicado el 4 de noviembre de 20225 min de lectura

Solana es una red blockchain de alto rendimiento con funcionalidad de contratos inteligentes construida para escalar hacia una adopción global. Solana procesa un promedio de 3,000 transacciones por segundo, y es uno de los protocolos blockchain más rápidos. Los Solana Programs son contratos inteligentes escritos en la red blockchain de Solana usados para realizar toda actividad, incluyendo transferencias de tokens, acuñación de NFTs y votación on-chain.

Este artículo explicará cómo escribir Solana Programs en Python usando el framework de desarrollo Seahorse, tanto desde un entorno de desarrollo local como desde un IDE en línea.

¿Cuáles son las principales formas de desarrollar programas en Solana?

Para desarrollar Solana Programs, necesitas aprender Rust, construir con el framework de desarrollo Anchor, o usar Seahorse, un framework de desarrollo pythonic para Solana.

Rust es el lenguaje de programación con el que se construyó Solana, y es el lenguaje de programación web3 predeterminado que puede usarse para interactuar con el Sealevel Runtime de Solana.

Desarrollar en Solana con anchor

Anchor es un framework usado para facilitar el desarrollo de aplicaciones en Solana, abstrayendo las complejidades del lenguaje Rust para el usuario promedio.

Anchor proporciona a los desarrolladores de Solana herramientas como el Interface Definition Language (IDL), paquetes de Typescript que generan clientes a partir del IDL, crates de Rust y una Command Line Interface (CLI).

Desarrollar en Solana con Seahorse

Seahorse es un framework de desarrollo para Solana liderado por la comunidad que le da a los desarrolladores la capacidad de escribir Solana programs en el lenguaje de programación Python.

Seahorse permite que todo programa escrito en Python tenga las mismas medidas de seguridad que vienen con los programas en Rust. Seahorse es totalmente compatible con Anchor, y también es interoperable con código Rust.

Python se usa en la programación cotidiana de aplicaciones web y proyectos de machine learning, y es el lenguaje de programación más popular.

Dado que muchos desarrolladores interesados en construir aplicaciones basadas en blockchain probablemente ya tengan habilidades de programación en Python, pueden usar Seahorse para construir una aplicación en Solana sin tener que aprender un lenguaje de programación completamente nuevo (Rust).

Cómo usar Seahorse con un entorno de desarrollo local de Solana

Una plataforma como Solana Playground sirve solo para construir y probar aplicaciones rápidamente, y no debería usarse como base para crear apps a gran escala. Para configurar el entorno necesario para desarrollar con Seahorse en nuestro espacio de trabajo local, vamos a instalar lo siguiente:

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

1. Instalar las herramientas esenciales de desarrollo de Solana

Para instalar Rust, el Solana Tool Suite, Node y Anchor, consulta este tutorial sobre cómo configurar un entorno de desarrollo local de Solana.

Si estás usando una máquina basada en Linux, es posible que necesites ejecutar el siguiente comando para agregar dependencias adicionales:

2. Instalar Seahorse

Seahorse depende de Anchor y de Rustfmt para funcionar correctamente. Como Anchor ya está funcionando en tu máquina, instalar el paquete Rustfmt y Anchor es sencillo.

Ejecuta el siguiente comando para agregar el paquete Rustfmt:

Ejecuta el siguiente comando en tu terminal para instalar Seahorse:

Ejecuta un último comando para verificar que Seahorse se instaló correctamente:

3. Generar una billetera de papel

Ya que tienes instaladas las Solana Command Line Tools, puedes crear una billetera "de papel" local para usar mientras trabajas localmente.

Ejecuta el siguiente comando para verificar que las herramientas CLI de Solana estén instaladas:

Luego escribe el siguiente comando para generar un nuevo keypair:

Guarda los datos correctamente para que puedas comenzar a usarlos en tu entorno local.

Para financiar tu billetera de papel:

Ejecuta el comando solana airdrop 2 para obtener 2 tokens SOL de prueba

Si quieres usar un entorno de desarrollo en línea para probar Seahorse en lugar de ejecutarlo localmente, una buena opción es Solana Playground.

Cómo configurar Seahorse con Solana playground

Solana Playground es un Integrated Development Environment en línea construido para impulsar el desarrollo de aplicaciones en Solana.

Solana Playground ofrece los siguientes Crates preconstruidos:

  1. Native (Rust) - para desarrolladores que buscan construir en Solana sin ningún framework
  2. Anchor (Rust) - para desarrolladores que buscan construir en Solana en Rust con herramientas adicionales
  3. Seahorse (Python) - para desarrolladores de Solana con experiencia programando en Python
Pantalla de selección de Solana Playground para elegir un framework de desarrollo: Native, Anchor y Seahorse.
Pantalla de selección de Solana Playground para elegir un framework de desarrollo: Native, Anchor y Seahorse.

1. Crear un nuevo proyecto de Solana playground

Crea un nuevo proyecto en Solana Playground con un nombre para el directorio. Después de crear un nombre, aparecerá un proyecto de demostración llamado FizzBuzz. Esta mini dapp es lo que usaremos en este tutorial.

2. Crear una billetera de playground

Primero debes generar una Playground Wallet para interactuar con tus programas de Seahorse. La Playground Wallet actúa como una billetera de prueba para la aplicación.

  • Haz clic en "playground wallet"
  • Selecciona una nueva billetera
  • Sigue las indicaciones y descarga el archivo JSON
Interfaz de Solana Playground para crear una nueva Playground Wallet
Interfaz de Solana Playground para crear una nueva Playground Wallet

3. Obtener tokens SOL de prueba

Escribe los siguientes comandos en la terminal del playground para obtener tokens SOL de devnet:

$ connect

El comando connect vincula tu billetera de prueba con el proyecto.

$ solana address

El comando solana address imprime la dirección de tu billetera de Solana. Usaremos esta dirección más adelante para inicializar la app FizzBuzz.

$ solana airdrop 2

El comando solana airdrop deposita tokens SOL de prueba en tu billetera para cubrir las tarifas necesarias para ejecutar transacciones como "Build" o "Deploy".

Archivo del proyecto dapp FizzBuzz Seahorse de Solana Playground
Archivo del proyecto dapp FizzBuzz Seahorse de Solana Playground

Cómo funcionan los componentes de Python de seahorse

En esta sección, recorreremos la creación de la popular pero simple app FizzBuzz on-chain. Hay tres secciones principales en nuestro código:

  1. La Cuenta
  2. Instrucción 1
  3. Instrucción 2

1. Cuenta

Las Cuentas Ejecutables se usan para definir el código ejecutable (contrato inteligente) que corre en la blockchain de Solana. En la definición de Accounts, puedes asignar los tipos de datos necesarios en tus Solana programs.

Fizz y Buzz se definen como tipos de datos Boolean, mientras que la variable "n" es un tipo unsigned integer.

2. Instrucción 1

Existen otras formas de cuentas llamadas Built-In Accounts. La mayoría de estas cuentas integradas se usan para llamar instrucciones específicas on-chain.

A. Cuenta Signer

Las instrucciones que requieren firmantes necesitan la aprobación de una billetera. Un Signer es la billetera que firma la transacción con la llamada de instrucción definida en esta parte del código.

La palabra clave owner se usa para contener el valor de los detalles del Signer. Para obtener la clave pública del Signer, puedes agregar este código:

B. Cuenta Empty

Un tipo de cuenta empty se usa para inicializar la clase de la Account principal (FizzBuzz) aunque inicialmente esté vacía.

Al usar la palabra clave Empty, puedes construir la clase definida en la Account principal. Cuando se inicializa la cuenta FizzBuzz, la tarifa de creación la paga el Owner (es decir, el firmante de la transacción).

Una vez que esa cuenta se ha creado on-chain, no puede volver a crearse cuando el mismo owner la llame nuevamente. La seed generada a partir de la inicialización permite identificar la cuenta original.

3. Instrucción 2

La segunda llamada de instrucción usa las cuentas ya creadas con sus valores.

Aquí está el código completo de ejemplo para FizzBuzz:

Comienza a construir aplicaciones en Solana con Python usando Seahorse

Seahorse es un proyecto de código abierto liderado por la comunidad, completamente gratuito para uso público. Seahorse está actualmente en beta y muchas de sus funciones todavía no se han implementado. Aunque no está listo para producción, puede usarse para experimentar y desarrollar aplicaciones en la devnet de Solana.

Con Seahorse, construir en Solana con Python es posible y sencillo. Si eres un desarrollador de Python interesado en aprender desarrollo web3, explorar Seahorse con Solana Playground es una forma segura y entretenida de comenzar a adquirir habilidades usando Anchor, Rust y Solana programs.

Background gradient

Construye magia blockchain

Alchemy combina los productos y herramientas de desarrollo Web3 más potentes con recursos, comunidad y un soporte legendario.