¡Hola, mundo!
Last updated
Last updated
Esta guía muestra cómo comenzar a desarrollar en ICP rápidamente implementando su primer contrato inteligente "¡Hola, mundo!".
Para implementar un contrato inteligente simple del tipo “¡Hola, mundo!”, puedes usar una variedad de entornos de desarrollo, como:
Instalación nativa de herramientas en sistemas Linux, Mac o Windows (usando WSL).
Entornos basados en la nube como Gitpod o GitHub Codespaces.
Cada entorno de desarrollador utiliza dfx
, una herramienta de línea de comandos que se utiliza para desarrollar e implementar contratos inteligentes en ICP.
¿Qué entorno deberías elegir?
La instalación nativa requiere la descarga e instalación dfx
manual de las dependencias. El uso de una instalación nativa dfx
es más adecuado para proyectos grandes.
Gitpod y GitHub Codespaces son entornos de desarrollo basados en la nube a los que se puede acceder a través de un navegador web. Los ejemplos de Gitpod y GitHub Codespace a los que se hace referencia en esta página incluyen las herramientas y dependencias necesarias preinstaladas. Estos entornos utilizan recursos limitados en la nube y es posible que no se adapten bien a la creación de proyectos grandes y complejos.
La Hello, world!
dapp predeterminada utiliza dfx
la plantilla predeterminada de que contiene dos recipientes hello_backend
y hello_frontend
.
El hello_frontend
contenedor se utiliza para almacenar los recursos de interfaz de la aplicación descentralizada. Esto incluye archivos como HTML, CSS, JavaScript, React, imágenes y videos.
El hello_backend
recipiente se utiliza para almacenar las funciones y la lógica central de la dapp.
Es importante tener en cuenta que un contenedor puede almacenar tanto los activos del frontend como el código del backend. Sin embargo, dfx
de forma predeterminada, se utiliza una plantilla de proyecto con un contenedor dedicado para el frontend, ya que esto permite utilizar cualquier lenguaje para el contenedor del backend sin necesidad de utilizar una biblioteca para la API de almacenamiento de activos.
Motoko
Motoko es un lenguaje basado en actores y representa el contrato inteligente como un actor con varios métodos que los usuarios y otros contratos inteligentes pueden llamar.
Este actor de Hola mundo tiene una única función llamada saludo. Está marcada como consulta porque no modifica el estado del actor. La función acepta un nombre como entrada y devuelve un texto de saludo.
fuente/hola_backend/main.mo
Óxido
Este contrato inteligente de Rust tiene una única función llamada saludo. Está marcada como consulta porque no modifica el estado del contenedor.
La función acepta un nombre como entrada y devuelve un texto de saludo.
fuente/hola_backend/fuente/lib.rs
Mecanografiado Beta
Los contenedores TypeScript se pueden escribir utilizando el kit de desarrollo de contenedores Azle. Para los proyectos Azle, necesitará instalar la dfx
extensión Azle:
El código de contenedor predeterminado para los proyectos de Azle contiene el siguiente código:
src/hola_backend/src/index.ts
Python
Cree el directorio del proyecto y la estructura de archivos:
src/hola_backend/src/main.py
Implementar los contenedores del proyecto localmente:
Este comando realiza varias funciones en segundo plano:
Establece un cycle-wallet
contrato inteligente especial para almacenar ciclos . Todas las operaciones requieren pagos en ciclos. En su red de prueba local, esta billetera viene precargada con ciclos.
Construye los contratos inteligentes definidos en el dfx.json
archivo en binarios Wasm.
Crea contratos inteligentes en la red de prueba local y guarda sus direcciones en el archivo ./.dfx/local/canister_ids.json
.
Instala los binarios de Wasm en los nuevos contratos inteligentes.
Motoko
Producción:
Óxido
Producción:
Mecanografiado Bet
Producción:
Python
Producción:
Esta llamada realiza varias funciones en segundo plano:
Primero, busca la dirección del contrato inteligente (conocida como ID del recipiente) utilizando el nombre del contrato inteligente hello_backend
en el archivo ./.dfx/local/canister_ids.json
.
Luego, busca la interfaz del contrato inteligente en el archivo src/declarations/hello_backend/hello_backend.did
.
Busca la firma de la función saludo en la interfaz.
Construye un mensaje para el greet
punto final del contrato inteligente con el name
texto dado como argumento.
Firma el mensaje con la clave privada de la cuenta de desarrollador .
Envía el mensaje a la red de prueba local ( réplica ).
Una vez ejecutado el mensaje, el resultado se decodificó mediante el archivo de interfaz y se imprimió en la ventana del terminal.
Alternativamente, puede interactuar con el contrato inteligente a través del navegador web si se ha implementado un contrato inteligente de interfaz. Obtenga más información sobre cómo usar el contrato inteligente de interfaz en el navegador web