Transcripción al español de “Mid Month Development Update – October”
Publicado en el canal de Youtube de IOHK el 15 de Octubre 2021
Enlace a la versión doblada al español
El 12 de septiembre, Cardano desplegó con éxito las capacidades de los contratos inteligentes a través de un evento de actualización del protocolo hard fork combinator (HFC) para Alonzo. ¡Pero el equipo no se detuvo allí! Desde entonces, hemos continuado trabajando en la optimización, ajustando los parámetros de rendimiento y trabajando con nuestros operadores de stake pool para asegurar que puedan actualizar sus nodos. La construcción del ecosistema de contratos inteligentes también ha sido una prioridad, apoyando a nuestros socios y a la comunidad que está construyendo DApps en Cardano, y buscando la infraestructura y las herramientas que deben estar en su lugar para permitir esto.
Tim: Hola a todos y bienvenidos de vuelta a la primera actualización de mediado de mes en un tiempo, hemos estado bastante ocupados con la emoción de la bifurcación dura Alonzo. Y por supuesto también la cumbre Cardano. Uniéndose a mí hoy hay un par de caras familiares, tenemos a Kevin, Nigel, y también una cara nueva para muchos de ustedes, Jann Müller, del equipo Plutus. Así que vayamos a ello, Nigel, como he dicho, ha sido un verano muy ocupado, un par de meses muy emocionantes, ¿muchachos, han podido tener algo de tiempo de descanso?
Nigel: No todavía Tim, todavía estamos trabajando mucho, estamos súper ocupados, tenemos algunos miembros a través del equipo tomándose unos pequeños descansos, pero realmente estamos avanzando esta nueva era de contratos inteligentes. Luego de la bifurcación dura Alonzo, ahora estamos haciendo un montón de trabajo en términos de optimización, buscando ajustes de rendimiento, avanzando. También estamos trabajando con nuestros SPOs, asegurándonos que pueden actualizar sus nodos a la última versión, que ocurrirá en un par de semanas. Pero más allá de ello es todo acerca realizar el ecosistema de contratos inteligentes. Así que es apoyar a nuestros socios que están construyendo dApps, y desde esa posición, lo que nosotros tenemos que hacer al respecto pensar qué piezas adicionales de infraestructura son necesarias poner en lugar. Así que los hitos clave están frente a nosotros, tenemos la actualización de mantenimiento hacia fin de Octubre, luego de eso, un par de semanas, esperamos lanzar nuestro backend de aplicación Plutus, PAB. Este es un eje importante, del que Kevin y Jann hablarán en más detalle, apoyarán a nuestros socios cuando estén liberando sus dApps.
Tim: Vayamos a eso en un momento, pero antes quizás, Kevin, ¿podes darnos un resumen del marco plutus, para establecer algo de contexto, dónde se sienta el PAB dentro de eso?
Kevin: Absolutamente Tim, te daré la visión amplia. Fundamentalmente hay dos cosas principales que estamos considerando como parte de la experiencia de desarrollo Plutus, están las cosas que están corriendo fuera de cadena, esas son las cosas que están corriendo en máquinas de usuarios o desarrolladores, y luego están las cosas que corren en la blockchain, los componentes en cadena. Si comenzamos encima, luego, un desarrollador produciendo una aplicación Plutus, la aplicación es lo que estará utilizando el usuario, cuando la aplicación es desarrollada, es compilada a través del compilador de transacciones Plutus, en algo que nosotros llamamos Plutus Core, que es la versión del guión ejecutada en la blockchain Cardano. Ahora, eso está corriendo en el nodo, pero para llegar ahí, lo que tenemos que hacer es interconectar Plutus a la capa de libro contable, necesitamos asegurarnos que el libro contable puede llamar a los guiones Plutus, que puede pasar los parámetros que necesitan los guiones Plutus, y que puede ejecutar de manera segura el guión en la cadena. Así que el libro contable es la clave para hacer funcionar esto, ha habido mucho trabajo ocurriendo dentro de la bifurcación dura Alonzo para asegurarnos que todo se realiza de manera segura y eficientemente. Luego del lado fuera de cadena, además la aplicación pura Plutus, también hay algo de código de librería que ha sido escrito, hay un conjunto de librerías Haskell que han sido escritas para permitir a la aplicación Plutus interconectarse con varias billeteras y tener varias capacidades, para los parámetros, el contenido de las transacciones, etc. Y eso luego tienen que atravesar el backend de aplicación Plutus, que Nigel acaba de mencionar, enlazando dentro del backend de interfaz de billetera, que luego se conecta con el nodo. Eso a nivel muy superior es lo que estamos haciendo por el momento Tim. La mayoría de esto es una configuración muy complicada, la mayoría de esto lo tenemos en su lugar, hay un par de pequeñas cosas en las que estamos trabajando ahora.
Tim: Traigamos a Jan, porque obviamente el PAB es uno de esos elementos que todavía necesita ser completamente integrado. Quizás puedas decirnos un poquito más, ¿qué es el PAB exactamente?
Jann: En el modelo UTxO tenemos algo de infraestructura fuera de cadena que construye la transacción que de hecho mueve las dApps. Esta infraestructura fuera de cadena es bastante complicada, necesita mirar el estado del libro contable, necesita tomar información del libro contable, necesita juntar todo esto para construir la transacción con las piezas de datos correcta, del lugar correcto. El PAB es una librería Haskell que hace fácil escribir esta infraestructura fuera de cadena. Ayuda a construir las transacciones UTxo de dos maneras, una es la huella de leída, osea obtener información de la cadena, reaccionando a los eventos que ocurren en la blockchain, y la otra es la huella de escritura, donde construimos las transacciones que ejecutan los guiones Plutus. Ambas juntas están disponibles en el PAB, es una única librería Haskell, estás utilizando el mismo lenguaje para escribir la infraestructura fuera de cadena, y para los guiones en cadena.
Tim: ¿Es de hecho necesario el PAB para desplegar algo en Cardano?
Jann: No es estrictamente necesario, es posible ejecutar tus dApps utilizando Haskell para los validadores, sólo para el código en cadena. Luego, reemplazarás el trabajo offline que realiza la dApp con el CLI Cardano, esencialmente. Así que tenés que construir tus propias transacciones, tenes que seleccionar los UTxOs que querés gastar, etc, y utilizás el CLI Cardano para juntar toda esta información y construir las transacciones. Eso es lo que algunas dApps ahí afuera están haciendo, utilizando el CLI Cardano para las transacciones.
Tim: ¿Y el PAB ya está disponible en una cadena simulacro?
Jann: Sí, tenemos una cadena simulacro, que es una red Alonzo emulada, ahí toda la funcionalidad del PAB puede ser testeada, podés comenzar a escribir tus dApps, escribir escenarios de testeo, hay un marco de testeo de propiedades disponible que podés utilizar para mayor seguridad de tus contratos, eso ya está disponible. Y la huella de lectura, que mencioné antes, obtener información de la cadena, eso ya funciona para la testnet, así que integramos esa parte del PAB. La cosa que falta realizar, ahora estamos trabajando la parte de escritura donde juntamos las transacciones que enviamos al backend de billetera, y eventualmente a la cadena.
Tim: Jann, cuándo esté integrada, ¿de qué manera será diferente la cadena principal respecto al PAB de cadena simulacro?
Jann: Para los constructores de dApps es sólo cambiar los archivos de configuración que utilizan, para arrancar el PAB. Podrías decir que funciona en la cadena simulacro, en la testnet y conectarlo a la red principal, pero de hecho no requiere ningún cambio al código Haskell actual que escribiste.
Tim: Jann, supongo que una huella relativamente suave una vez que estemos completamente integrados dentro de la red principal, para los desarrolladores. Pero Nigel, esta es la integración que está ocurriendo en este momento, ¿no es así?
Nigel: Absolutamente Tim, está es nuestra liberación crítica, antes de fin de año. El backend de aplicación Plutus hablará con nuestro backend de billetera, en la billetera Cardano. Con la billetera Cardano tenemos que exponer la otra mitad de las transacciones Plutus que son presentadas, así que es asegurarse que tenemos un punto final balanceado, asegurarse que tenemos un punto final de firma, también selección de moneda, hay un par de otras cosas como tarifas que necesitan empaquetarse juntas. Ahora, eso se está realizando ahora, de hecho expusimos todas estas cosas, estamos trabajando realmente duro para tener el PAB integrado contra ello. Como cualquier ingeniero sabrá, este es un punto crítico, a medida que integrás encontrás problemas, básicamente continuamos iterando alrededor, mientras solucionamos los diferentes problemas a medida que aparecen. Mientras estamos integrando esto también estamos construyendo una dApp de testeo. La dApp que tenemos es para un mercado NFT, irá mano a mano con la liberación PAB. Es nuestra manera de fundamentalmente testear esta integración de punta a punta, así que tenemos esa pequeña dApp de trading para NFTs, que será muy divertido, y cuando tengamos el PAB fuera lo testearemos todo, mientras entregamos.
Tim: Un viaje de punta a punta. También es interesante ver que la semana pasada vimos nuestra primer tienda NFT de la comunidad, con una integración de billetera, que utiliza una ruta ligeramente diferente, así que las cosas definitivamente se están moviendo en la comunidad. Nigel, cuando ocurra esta integración, ¿qué serán capaces de hacer los desarrolladores con PAB?
Nigel: Básicamente tienen un viaje completo alrededor de las dApps. En este momento un montón de ellos están en la parte delantera, tienen un montón de lógica detrás de ello, en el backend, que está funcionando, todos ellos estuvieron trabajando en el entorno local, están comenzando a construir cosas en nuestro entorno de testeo. Ahora, no pueden el viaje completo para ninguna de las transacciones que realizan a menos que tengan integración de billetera, porque todo necesita esa integración de billetera, no sólo para financiar alguna clase de transacción, pero también para asegurarnos que estamos firmando las cosas adecuadamente, desde un punto de vista de autorización. Y eso va a través de cualquier cosa que hagamos, ya sea el mercado NFT, oráculos, Dexes que se están construyendo, o cualquier otra cosa que la gente está inventando. Una vez que tenemos ese viaje completo, le damos esa plataforma y la plomería que necesitan, para tener esa dApp completa.
Tim: Nigel, creo que estás rastreando un número de proyectos a través de Discord, de los repos, ofreciendo algo de apoyo y consejos donde podés.
Nigel: Hay un montón de gente haciendo un montón de cosas buenas, tenemos una manera muy inteligente de realizarlo, asegurándonos que están en los canales Discord, que les dá un enlace a nuestros ingenieros Plutus, también tenemos nuestra cuadrilla Plutus que mira, revisa y arregla los asuntos que aparecen. Así que es un esfuerzo apropiado para la comunidad, ayudarlos durante el camino, y ayudar a gente que de hecho ha invertido, está construyendo negocios en Cardano, mientras avanzamos al futuro. Hay un montón de cosas emocionantes viniendo por la tubería.
Tim: ¿Así que tenés que veremos más dApps en Cardano en los próximos dos meses?
Nigel: Creo que antes de fin de año veremos una selección saludable de dApps viniendo, creo que veremos una sección cruzada, algunas cosas estarán en la testnet, la gente jugará con ello, utilizando datos de testeo, y algunas personas lanzando en la red principal como primer tiro. No quiero emocionarme demasiado, estoy seguro que tendremos algunas buenas cosas fuera antes de fin de año. Pero estoy seguro que mucha gente lo hará de una manera sensible, así que las cosas que salen podrían ser una especie de lanzamiento beta, con algo de funcionalidad restringida, como para testear el mercado. Y eso es algo que debés esperar, tenemos que asegurarnos que construimos cimientos sólidos en este ecosistema, y que la gente desplegará cosas en etapas, pero hay un montón de buenas cosas para esperar Tim.
Tim: Genial, Kevin, quizás finalizar con vos porque Nigel habló de construir cimientos, la bifurcación dura Alonzo construyó los cimientos para Plutus y su integración con el nodo. También es realmente el comienzo de una red de contratos inteligentes, y sé que vos y el equipo están haciendo un montón de trabajo acerca de cómo está rindiendo la red, dónde se necesita optimización, sintonización, etc. Quizás puedas darnos una actualización acerca de dónde estamos con eso.
Kevin: Lo que Alonzo ha hecho es introducir un paso completo en los tipos de transacciones que necesitamos pre establecer. Así que estamos marchando muy muy cuidadosamente, lo que está sucediendo en la red, manteniendo un ojo en cómo se está comportando el sistema. Pero también estamos haciendo una evaluación comparativa, y equipos de control de calidad están teniendo una gran cantidad de trabajo, sólo investigando qué ocurrirá a medida que comenzamos a desplegar las dApps de las que Nigel acaba de hablar. Así que la situación es que la red está rindiendo bien, tiene el rendimiento esperado. Obviamente estamos viendo alta demanda en eventos específicos, cosas como dropeos de NFTs. Y es fantástico ver a la red siendo utilizada por gente para hacer cosas como estas, es genial ver todo el trabajo que pusimos dentro dando sus frutos. En general la red se está comportando como esperábamos, está diseñada de tal manera que incluso si la red se carga extremadamente, podría haber algo de desaceleración, pero el sistema estuvo trabajando como se esperaba. La hemos medido bajo condiciones bastante extremas, 44 veces la carga posible, y como estoy seguro que estás al tanto de otras situaciones del mundo real, típicamente los sistemas no se comportan muy bien bajo esas situaciones, los sistemas bancarios se caerían, manufactureros principales podrían fallar lanzando sus productos, etc. Pero con Cardano, las cosas simplemente continúan funcionando, podría desacelerarse un poquito, podría tomar un poco más de tiempo procesar transacciones, podrían tener que intentar unas pocas veces, pero todo continuará atravesando la red y funcionando. Y mientras reduce la carga nos ponemos al día, y volvemos al estado normal. Así que es una manera muy bonita y elegante de lidiar con situaciones de carga.
Pero todavía hay trabajo que podemos realizar para optimizar lo que está ocurriendo. He dicho que estamos mirando muy cuidadosamente cómo se desarrolla la carga, hay un montón de parámetros que están disponibles para incrementar la capacidad en la red, tal como sea necesario. Y estamos manteniendo un ojo en lo que está ocurriendo con vistas a cuándo tenemos que activar esos interruptores. Hay varias cosas que podemos realizar, podemos incrementar el tamaño de las transacciones, por ejemplo, podemos aumentar el número de unidades de ejecución que están disponibles en los guiones Plutus, el número de memoria alocada a los guiones Plutus, toda clase de cambios de detalles que podemos realizar. Obviamente lo que queremos hacer es realizar estos cambios gradualmente en línea con la demanda actual. Así que satisfaciendo las necesidades reales que la gente está depositando sobre nosotros.
Hablando de un número de desarrolladores dApps, acerca de los requisitos, parte de la entrada de evaluación comparativa que describí antes es precisamente decir al equipo de evaluación comparativa que cuando vemos estas cargas de las que habla la gente, ¿cómo impacta eso en el sistema general, cómo podemos garantizar que el sistema continuará siendo resistente, que continuará satisfaciendo todas las demandas competitivas que estamos estableciendo sobre ella? Porque obviamente lo que estamos tratando de hacer aquí es construir un sistema que va a durar no sólo por el futuro inmediato, pero indefinidamente. Así que aquí estamos buscando establecer las bases para algo que persistirá para siempre, y funcionará bien para siempre.
Así que el cambio de parámetros en el corto y mediano plazo estamos buscando varios tipos de optimizaciones. Estamos mirando buscar mover el almacenamiento fuera de la memoria, el almacenamiento del libro contable fuera de la memoria, dentro de SSD o el disco. Estamos mirando varias técnicas de compresión, y estamos mirando varios tipos de optimización, optimizando la manera en que funciona el interpretador Plutus, etc. Así que toda clase de cosas que podemos hacer para mejorar el rendimiento del sistema, para reducir los costos de ejecución y para mejorar cómo se está comportando el sistema. Así que no piensen que donde estamos hoy es donde estaremos en el futuro, hay muchas muchas cosas, muchos muchos ajustes que podemos hacer, tenemos un montón de ideas acerca de cómo podemos hacer eso. Así que el punto es que la red ha sido diseñada para ser altamente ajustable y escalable, donde al comienzo de la era Plutus, más adelante en el camino, también tenemos algunos trucos bajo nuestras mangas, como soluciones de nivel dos, la solución Hydra, que nos permitirá reducir carga y paralelizar un montón de computación, tenés un montón de espacio para crecimiento ahí Tim.
Tim: Esas son grandes noticias señor, gracias por eso. Así que caballeros muchas gracias por eso, eso es por hoy, para la actualización de mediados de mes, pero recuerden que tenemos el Cardano 360 viniendo, es el último jueves de cada mes, así que esperaremos verlos ahí, nos focalizaremos en la cumbre este mes, hay un montón de que hablar ahí, algunos repasos y también algo de contenido exclusivo que no pudimos introducir entre los cientos. Así que hasta la próxima, muchas gracias.