Plutus: Herramientas de Plutus
La bifurcación dura de Alonzo aporta capacidades básicas de contratos inteligentes al libro mayor de Cardano al establecer la infraestructura y añadir herramientas para el desarrollo de contratos inteligentes funcionales utilizando Plutus. Esto significa que los usuarios, desarrolladores y organizaciones pueden ahora construir de forma segura aplicaciones descentralizadas (DApps) basadas en soluciones de contratos inteligentes.
Existen diferentes herramientas que los desarrolladores pueden utilizar para evaluar y desplegar contratos inteligentes en Cardano. A continuación echamos un vistazo a estas herramientas, sus principales características y señalamos las fuentes exactas para utilizarlas.
Plutus Playground
El Plutus Playground proporciona un entorno para escribir y probar contratos inteligentes antes de que se publiquen en la blockchain de Cardano. Es un entorno ligero, basado en la web, para el desarrollo exploratorio de Plutus. Además de proporcionar un simulador basado en la web para escribir y ejecutar contratos inteligentes, Plutus Playground también permite a los desarrolladores acceder a contratos inteligentes populares que ya han sido escritos. Tutorials están disponibles en el Plutus Playground para ayudarte a empezar.
Se puede acceder a Plutus Playground a través de un navegador web y no es necesario instalar ningún software. La interfaz se divide en tres secciones:
- editor
- simulador
- transacciones
El simulador muestra cómo se comportará un contrato en la blockchain de Cardano. Un aspecto importante es que puede servir de herramienta de formación para personas que no tienen conocimientos avanzados de desarrollo, ya que demuestra los principios de funcionamiento. Los usuarios pueden definir y modificar los monederos que interactúan con un contrato, así como las acciones que afectan al resultado. A continuación, los resultados pueden evaluarse para ver lo que ocurre en la blockchain y cómo se producen las transacciones. Para más información, vea el tutorial de compilación y prueba de la aplicación Plutus o visita el repositorio GitHub de Plutus.
Plutus Application Backend
El Plutus Application Backend (PAB) proporciona los componentes y el entorno para ayudar a los desarrolladores a interactuar con los contratos inteligentes para que puedan crear y probar DApps, antes de desplegarlos en un entorno de producción en vivo. Al igual que Plutus Playground, se trata de un entorno de caja de arena en el que los desarrolladores pueden probar la funcionalidad de la DApp antes de su despliegue completo en Cardano.
El PAB elimina la necesidad de que los desarrolladores creen su propia infraestructura desde cero (incluyendo el índice de la cadena, etc.), reduciendo así el tiempo de desarrollo y los recursos necesarios. Permite a los desarrolladores simular cómo se comportaría una aplicación en la cadena para realizar pruebas previas y eliminar errores, a fin de garantizar una transición impecable para el lanzamiento.
Es un servicio de backend fuera de la cadena para gestionar y manejar los requisitos de la instancia de aplicación a lo largo de su ciclo de vida. Esto incluye la interacción con clientes externos (como los frontales de monedero) y actúa como intermediario entre las aplicaciones Plutus, el nodo, el backend de monedero y los usuarios finales. Dicha interacción es posible gracias a los comandos PAB y a los componentes simulados que permiten simular e integrar cómodamente las DApps.
El PAB es una única biblioteca Haskell que facilita la escritura de esta infraestructura fuera de la cadena y de los scripts en cadena. Ayuda a construir las transacciones UTXO para las rutas de lectura y escritura obteniendo información de la cadena, reaccionando a los eventos que se producen y construyendo las transacciones que ejecutan los scripts reales de Plutus.
El objetivo del PAB es de:
- proporcionar un entorno estandarizado en el que se ejecuten las aplicaciones Plutus
- proporcionar una gestión disciplinada del estado
- presentar interfaces detectables a los clientes externos
- seguimiento de la información en la cadena para el uso de los contratos inteligentes
- permitir a los desarrolladores trabajar en un entorno emulado o no emulado
- gestionar las solicitudes, como la ejecución de las instancias de los contratos, el reenvío de las entradas de los usuarios a estas instancias y la notificación a estas instancias de los eventos de cambio de estado del libro mayor
El PAB puede cambiar entre entornos emulados y no emulados (red real) sin problemas. Esto facilita la escritura de todo tipo de pruebas diferentes: pruebas unitarias, pruebas de integración, pruebas basadas en propiedades, etc. El PAB permite que las DApps se comuniquen fácilmente con él, ya que el backend puede recibir y entregar mensajes. Así, la DApp puede enviar solicitudes habituales a los puntos finales que el PAB ha expuesto, y que corresponden a acciones y operaciones que cualquier contrato inteligente particular es capaz de manejar.
Las aplicaciones desplegadas utilizando las bibliotecas del marco pueden ejecutarse en el PAB, que proporciona soporte en tiempo de ejecución para el acceso a la blockchain para realizar más operaciones de contratos inteligentes que desencadenan transacciones basadas en el modelo EUTXO. Además, PAB cuenta con funcionalidades de persistencia, registro y monitorización.
El siguiente diagrama ofrece una visión general de la arquitectura del PAB:
Hay dos modelos de despliegue previstos para el PAB una vez que esté disponible:
- alojado - esta opción será soportada en el lanzamiento inicial del PAB. En este escenario, el proveedor/desarrollador de la DApp aloja una instancia de la PAB junto con el índice de la cadena y un nodo Alonzo. El código fuera de la cadena de la aplicación Plutus se ejecuta en la infraestructura del proveedor de DApp.
- en el navegador - esta opción estará disponible más adelante, después del lanzamiento inicial.
Además del propio PAB, se necesitan los siguientes componentes:
- Índice de la cadena - el índice de la cadena es una base de datos de los datos recogidos de las transacciones de Cardano. Utiliza el protocolo de sincronización de cadenas del nodo Cardano y necesita estar ubicado junto a un nodo Cardano. El índice de la cadena es un componente de sólo lectura para el PAB. Por lo tanto, varias instancias del PAB pueden compartir una única instancia del índice de la cadena. Todas las consultas del índice de la cadena se sirven a través de una API HTTP.
- Nodo Alonzo — el PAB se suscribe a las actualizaciones del estado del libro mayor desde el nodo, utilizando un protocolo de socket.
El PAB es otra poderosa herramienta en Cardano que hace que las DApps sean más simples, más seguras y más rentables de desarrollar. Al proporcionar información de fuentes canónicas en un formato utilizable, libera a los desarrolladores de muchas tareas rutinarias.
Compartiremos los enlaces a su debido tiempo cuando estén disponibles.
Estimador de tasas de Plutus
El estimador de tasas de Plutus ha sido desarrollado por los expertos en rendimiento del IOG como una herramienta interna para la evaluación comparativa de precios y la comparación. Utiliza información de transacciones reales de Plutus para predecir las tasas que se cobrarán por una transacción. El estimador puede utilizarse para calcular las tarifas de las transacciones reales (por ejemplo, para determinar las tarifas que se cobrarán si los parámetros de la red cambian), y también para estimar las tarifas de las transacciones de scripts individuales o DApps completas antes o durante el desarrollo. Puede ser útil para determinar el efecto de los cambios u optimizaciones de los scripts en las tasas.
El cálculo de la tasa requiere tres datos:
- El tamaño total de la transacción en la cadena en bytes: una transacción simple, por ejemplo, es de unos 300 bytes, la que tiene metadatos es de unos 650 bytes, y los scripts de Plutus suelen ser de 4.000 a 8.000 bytes (las futuras optimizaciones reducirán esto).
- El número de pasos computacionales (CPU) que utiliza el script: cada paso representa 1 picosegundo de tiempo de ejecución en una máquina de referencia. Los scripts típicos deberían consumir menos de 1.000.000.000 (1 milisegundo).
- El número de unidades de memoria que utiliza el script: representa el número de bytes que asigna el script. Los scripts típicos deberían consumir menos de 1.000.000 unidades de memoria (1MB de asignación de memoria).
Para utilizar un estimador, el usuario sólo tiene que rellenar la información relativa, que puede obtenerse del compilador de Plutus tras construir un script en él. Tampoco es necesario ejecutar un nodo para ello, lo que simplifica considerablemente el proceso para los usuarios en general.
Encuentra una copia oficial de este documento aquí:
https://docs.cardano.org/plutus/Plutus-tools
Más traducciones de Cardano en: Home