Plutus: Mejores prácticas de contratos inteligentes

 

Estas son algunas de las mejores prácticas generales que deberías seguir al desarrollar contratos inteligentes con Plutus.

Conocer el objetivo de tu contrato inteligente
Conoce exactamente lo que debe hacer tu contrato inteligente y pruébalo para asegurarte de que cumple el objetivo esperado.

Comprueba si existen contratos anteriores similares
¿Existe ya un contrato que haga lo mismo? Si es así, ¿qué tiene de diferente tu contrato inteligente?

Nombramiento
Elige un nombre claro y significativo para tu contrato inteligente. Mantenlo corto y simple, y trata de usar el nombre para transmitir lo que hace el contrato.

Revisión por pares del código
Los beneficios de la revisión del código son bien conocidos; el código revisado conduce a la coherencia en todo el proyecto, sin defectos, y al código optimizado para el rendimiento. El conocimiento del código se comparte entre los desarrolladores, reduciendo el tiempo y el coste de mantenimiento en el futuro. Para los contratos inteligentes, la correctitud es absolutamente crucial.

Pruebas en una red de pruebas (testnet)
Siempre debes probar tus contratos inteligentes en un entorno de red de pruebas antes de ejecutarlos en la red principal. Escribe tantos escenarios de prueba como puedas y ejecuta varias iteraciones de tus pruebas. Para configurar una red de prueba de Alonzo, consulta los ejemplos de scripts aquí.

Documentar los casos de prueba
Mantén una lista de los casos de prueba que ejecutas para tenerlos como referencia y verificación.

Considera la verificación formal
El tema de la verificación formal es demasiado amplio para tratarlo aquí. Puedes asumir que tu código se ejecutará en un entorno hostil en el que actores altamente cualificados, con buenos recursos y sin escrúpulos estarán esperando para aprovecharse de cualquier vulnerabilidad.

 

Encuentra una copia oficial de este documento aquí:

https://docs.cardano.org/plutus/sc-best-practices

 

Más traducciones de Cardano en: https://cardanofortheworld.com/es-es/