🇪🇸 Serie de Gimbalabs: Crea, Despliega y Gestiona tus propios contratos Plutus de manera efectiva - Parte 1

:es: Traducción al español de “Gimbalabs series: Create, Deploy, and Manage your own Plutus contracts effectively - Part 1”

Publicado el 15 de Febrero de 2024 por sebpabon


En esta exhaustiva serie de tres partes, creada e impartida por nuestro querido instructor de Gimbalabs, el Profesor Mix (M. Ali Modiri), alcanzarás una comprensión profunda de cómo crear, desplegar y gestionar tus propios contratos Plutus de manera efectiva.

En esta exhaustiva serie de tres partes, creada e impartida por nuestro querido instructor de Gimbalabs, el Profesor Mix (M. Ali Modiri), alcanzarás una comprensión profunda de cómo crear, desplegar y gestionar tus propios contratos Plutus de manera efectiva.

Objetivos de Aprendizaje del Estudiante (SLT):

  1. Puedo planificar e implementar mis propios contratos Plutus.

  2. Puedo crear, actualizar y mantener un proyecto Plutus.

  3. Entiendo cómo funciona el tiempo en Plutus (POSIXTime) y Ledger (Número de Slot).

En esta primera parte de la serie, nos centraremos en el primer SLT:

Puedo planificar e implementar mis propios contratos Plutus.

Gimbalabs Plutus PBL - Módulo 302 (https://plutuspbl.io/modules/302/3021)

Antes de adentrarnos en las complejidades de los contratos inteligentes de Plutus, es crucial comprender la importancia de una planificación meticulosa. Imagina tu contrato inteligente como un plano para un edificio; la calidad del plano impacta directamente en la resistencia y estabilidad de la estructura. De manera similar, la fase de planificación de tu contrato establece el escenario para su fiabilidad y previsibilidad.

Consideraciones Clave en la Planificación:

  1. Determinismo

  2. Parámetros de Entrada

  3. Diseñar la Lógica

  4. Gestión del Estado

  5. Manejo de Errores

  6. Seguridad

Contratos de Vencimiento de Tokens

Para ayudar a ilustrar los conceptos de planificación, utilizaremos contratos de ‘Vencimiento de Tokens’ o ‘Bloqueo de Tokens’ como ejemplos principales. Estos contratos desempeñan un papel fundamental en el ámbito de la criptomoneda y la cadena de bloques, especialmente durante Ofertas Iniciales de Monedas (ICOs) o eventos de distribución de tokens.

Considera este ejemplo: Estás lanzando una nueva criptomoneda y quieres distribuir tokens a inversores tempranos y al equipo de desarrollo. En lugar de acuñar todos los tokens de una vez, mantenerlos en una billetera y luego liberarlos, creas un contrato de Vencimiento de Tokens para desbloquear un cierto porcentaje de tokens en intervalos regulares.

Determinismo

Todas las calculaciones dentro del contrato de Vencimiento de Tokens relacionadas con la liberación de tokens deben ser determinísticas. Por ejemplo, si un inversor tiene derecho a recibir el 10% de sus tokens cada mes, el contrato debe calcular el número exacto de tokens a liberar basándose consistentemente en la fecha actual. Dados los mismos datos de entrada (fecha actual, fecha de inicio del contrato, asignación de tokens), el contrato siempre debería producir el mismo resultado, asegurando la previsibilidad.

Parámetros de Entrada

En un contrato de Vencimiento de Tokens, los parámetros críticos incluyen la dirección del inversor, la fecha de inicio del período de vencimiento, la asignación total de tokens y el calendario de liberación. Estos parámetros deben definirse claramente y de manera determinista. Por ejemplo, especificar la fecha de inicio como un POSIXTime asegura que el comportamiento del contrato esté directamente relacionado con un evento de cadena de bloques determinista, haciéndolo predecible para todas las partes involucradas.

Diseñar la Lógica

La lógica de un contrato de Vencimiento de Tokens debe ser precisa y completamente determinista. Por ejemplo, considera un escenario donde un inversor puede reclamar tokens después de 6 meses, y puede reclamar toda la asignación de una vez. La lógica del contrato puede ser abstraída de la siguiente manera:

isTokenClaimPossible :: Bool

isTokenClaimPossible = if desde tiempoDeReclamo contiene rangoValidoDeTxInfo then do pagarAClavePública inversor cantidadTotalDeTokens else trazarError “Los tokens están bloqueados hasta que termine el período de vencimiento.”

Gestión del Estado

Gestionar el estado de los datos es crucial en un contrato de Vencimiento de Tokens. Plutus proporciona estructuras de datos como Datum y Redeemer para gestionar el estado y activar acciones. Por ejemplo, podrías usar el Datum para almacenar información sobre los tokens con vencimiento y su calendario de liberación. La gestión del estado del contrato debe ser determinista, asegurando que los datos almacenados en Datum se alineen con el propósito del contrato y puedan evaluarse consistentemente.

Manejo de Errores

El manejo de errores es vital para asegurar que el contrato se comporte de manera predecible, incluso en escenarios inesperados. Supongamos que un inversor intenta reclamar tokens antes de que termine el período de vencimiento. En este caso, el contrato debe implementar el manejo de errores para rechazar la transacción con gracia y devolver un resultado ‘Falso’ determinista, indicando que no se han cumplido las condiciones para la liberación de tokens.

Seguridad

La seguridad es primordial al planificar un contrato de Vencimiento de Tokens. Considera vulnerabilidades potenciales como acceso no autorizado o ataques de reentrada. Para mantener la naturaleza determinista del contrato, debes implementar medidas de seguridad sólidas, que incluyan controles de acceso, validación de entradas y manejo cuidadoso de fondos. Las auditorías de seguridad y las pruebas exhaustivas deben formar parte del proceso de planificación para mitigar efectivamente los riesgos potenciales.

Consulta la lección original (incluido el video de la lección) en: https://plutuspbl.io/modules/302/3021

Sigue a Gimbalabs para más anuncios.