🇪🇸 Actualización del Progreso Cardano por Sebastien Guillemot (Oct 2019) (Parte 2 de 2)

:es: Transcripción al español de “Cardano Progress Update by Sebastien Guillemot (Oct 2019)

Publicado en el canal de Youtube de EMURGO el 16 de Octubre de 2019

Ir a la versión doblada al español


Enlace a la Parte 1 de 2

Yoroi ha estado haciendo un montón de cosas interesantes, no somos los únicos haciendo cosas interesantes en el espacio, Daedalus también está lanzando una nueva versión llamada 0.15, tiene algunas asombrosas funciones y creo que una de las mejores es esta función de alimentación, básicamente te permite ver las próximas noticias y las pasadas en el ecosistema Cardano y la razón por la que esto es importante es porque para Shelley estaremos haciendo un montón de lanzamientos y los usuarios realmente se preocupan por saber qué es lo que está pasando, así que necesitamos decirle a la gente que la participación está disponible, estámos haciendo este cambio a la participación y la mejor manera de alcanzar a nuestros usuarios es incrustar la notificación dentro de la aplicación y para eso es esta función de alimentación. Se ve muy linda, está muy bien hecha, será parte de la actualización Dadealus 0.15.

Algunas otras funciones en las que han estado trabajando es una manera de verificar un nemotecnia, si creaste tu billetera dos años atrás y no estás tan seguro si recuerdas tu nemotecnia, ahora en Daedalus tienes una oportunidad para reescribir tus nemotecnias y te dirá cuál no parece la correcta, así que es una linda cosa UX. Para ser capaces de entregar soporte Shelley dentro de Daedalus, también han estado haciendo un montón de trabajo para integrar el código base Rust dentro de Daedalus. Significa que si estás ejecutando Daedalus, esencialmente en el back end habrá un interruptor que puede cambiar entre el código base Haskell y el código base Rust y pueden seleccionar cuál quieren usar, debido a que la testnet incentivada será lanzada en el código base Rust al principio, con el código base Haskell viniendo después, tienen que tener la habilidad de soportar el código base Rust, así que han estado haciendo un montón de interruptores en el backend Daedalus para agregar la habilidad de integrar con el código base Rust. Todo eso ahora se está juntando, mucho trabajo en la integración de las API, integración del lado del nodo, pueden ver que tienen un montón de solicitudes, ha sido un montón de trabajo, es asombroso ver cómo todo se junta.

Si te estás preguntando cómo ese interruptor es construído, está hecho con un proyecto llamado Billetera Cardano en GitHub, este es el proyecto que maneja la abstracción entre Daedalus y el nodo completo, permite tener un interruptor entre las implementaciones Rust y Haskell, también maneja la base de datos, todo este tipo de información, obviamente han estado haciendo un montón de cambios para Shelley durante el mes pasado, haciendo optimizaciones con nuevos terminales para Shelley, para obtener información de participación, optimización de información , todo este tipo de cosas. También han estado trabajando en reducciones lo cual es importante porque Shelley será un sistema descentralizado, así que hay chances de que ocurran, así que han estado haciendo un montón de actualizaciones para optimizar eso, asegurándose de que todo funcione correctamente, algo de lo que no había que preocuparse en la era Byron. Obviamente tienen que hacer un montón de testeos, han estado haciendo extensivos testeos de propiedad de base para todo el código que escriben para asegurarse de que no haya errores cuando introduzcan este nuevo lanzamiento Shelley.

Un montón de cosas han estado ocurriendo en Shelley como les mostré, pero también estámos haciendo mucho trabajo en Goguen, Goguen, para los que no lo saben es el lanzamiento de contratos inteligentes de Cardano. Shelley no contiene contratos inteligentes, el lanzamiento Goguen los tendrá, eso incluye cosas como Plutus y Marlowe, quienes también han estado haciendo un montón de trabajo este mes. Mucho trabajo en documentación, hay nuevos casos de uso que han codificado, si eres un desarrollador de contratos inteligentes y no sabes como hacer este tipo de aplicaciones en Plutus, ahora tenemos más ejemplos, también hemos estado haciendo un montón de trabajo en tutoriales de Marlowe, obviamente tenemos el libro Plutus, el curso Plutus Udemy, tenemos un montón de información acerca de cómo escribir contratos inteligentes Plutus y ahora vamos a Marlowe y queremos explicar al mundo cómo escribir Marlowe y mostrar cuán fácil es escribir contratos inteligentes Marlowe.

Como pueden ver, si van al repositorio Plutus, en el documento Marlowe Tutorial, tenemos un montón de información acerca de Marlowe que ya está escrita, con suerte esto va a ser empaquetado en formato de libro en el futuro. Mientras hacemos esto también hemos lanzado Marlowe 3.0 a tiempo para el segundo aniversario de Cardano, que contiene un montón de mejoras. Si quieres ver cómo Marlowe se ve ahora, puedes verlo aquí, este es el código Haskell, si quieres agregar nuevas funciones encima de Marlowe lo puedes hacer en Haskell y compila al código Marlowe el cual es un lenguaje de dominio específico y si quieres ver cómo este código se comporta, puedes enviarlo a un simulador, donde de hecho puedes ejecutar tu código, ver cómo se comporta si enviaste pagos, ver las confirmaciones. Lo mejor es que ahora puedes analizar tu contrato inteligente y te dirá si hay un error en tu contrato inteligente. Esta es la ventaja de tener un DSL (Domain Specific Language - Lenguaje de Dominio Específico) simple, significa que mientras escribes código Marlowe, fácilmente puedes ejecutar esta herramienta de análisis y te dirá cosas como que tu contrato nunca terminó, podemos saber esto porque el DSL es lo suficientemente restrictivo para permitir este tipo de análisis estático. También tenemos el familiar blocky, así que si no quieres escribir código tu mismo y quieres una interfaz de usuario fácil de usar y no tienes que ser desarrollador para usarla, puedes usar esta herramienta blocky, donde fácilmente puedes utilizar un arrastrar y soltar, haciendo bloques para construir tu contrato inteligente sin tener que saber mucho de programación.

Todas estas funciones que están diseminadas por ahí ahora están todas juntas en este bonito sitio web, es similar a Plutus, así que fácilmente puedes agregar transacciones, ir a través de los bloques, analizar tu código estáticamente, todo este tipo de información, todo dentro de un sito web. Así que eso es lo que Marlowe 3.0 trae a la mesa, habrá un libro sobre este tema, tutoriales sobre este tema, todavía continúan trabajando pero ha sido muy emocionante tener una demo para el segundo aniversario de Cardano para mostrar cómo fácilmente puedes escribir contratos inteligentes agregando bloques, poniendo las piezas juntas sin tener que saber mucha codificación e igual tener una buena garantía de que no hay errores en tu código.

Todavía están haciendo cambios al código base Plutus, tienen algo llamado la StateMachine que fácilmente te permite detener un guión, terminar un guión si nada pasa, es un interruptor para matar. Han agregado soporte para tipos de familia dentro de Plutus TX, han estado trabajando en verificación formal de toda la lógica dentro de Plutus, queremos asegurarnos que el lenguaje de programación de contratos inteligentes Plutus tenga una base fundamental fuerte, quizás recuerden la servilleta Plutus, es una especie de proyecto que hemos tenido mucho tiempo atrás, queremos asegurarnos que Plutus esté basado en un muy buenos y definidos conceptos de la teoría de lenguajes de programación. Así que tenemos toda la base teórica de Plutus empaquetada en una servilleta así que pueden ver todas las reglas Plutus y ahora estámos firmemente verificando las presunciones que hemos hecho, así que eso es lo que este proyecto está haciendo, este proyecto de metateoría, mientras hacemos todas estas asombrosas experiencias de Marlowe y en Plutus también nos estámos asegurando de que todo lo que estámos haciendo está hecho correctamente.

Otras visualizaciones y cosas están ocurriendo, llegará pronto, algunas personas hablaron acerca de visualizar la blockchain en sí misma, en la testnet Plutus, no es súper obvio, estámos trabajando en una nueva interfaz de usuario para hacerla más fácil de visualizar, cómo las entradas van a las transacciones, a las salidas, ese tipo de información cuando estás testeando tu contrato inteligente Plutus, lo haces más fácil para los desarrolladores para fácilmente visualizar lo que está ocurriendo mientras están desarrollando su contrato inteligente Plutus.

Algunas cosas que ocurren detrás de escena y me gustaría cubrir el equipo de especificación Shelley está a cargo de asegurarse que Shelley, desde un alto punto de vista matemático, está bien definido. Así que es bueno tener código dónde pueden asegurarse que las matemáticas coinciden con el chequeo. Eso es en lo que el equipo de especificación Shelley está trabajando.

Así que han realizado algunas especificaciones relacionadas con cálculos no integrales, asegurándose que manejan cosas como divisiones, raíces cuadradas, ese tipo de operaciones, dónde si no las haces bien podría haber una diferencia entre las implementaciones, asegurándose de que todo eso sea manejado, así que tenemos actualizaciones de la especificación.

Tenemos actualizaciones para multi firma, cómo planeamos lanzar multi firma para Shelley, tenemos algunas actualizaciones de la especificación ejecutable que es una especie de puente entre el código y la especificación. Recuerden que Cardano toma un enfoque de paso a paso, básicamente escribes la especificación, pruebas que la especificación es equivalente a la especificación ejecutable que pruebas que es equivalente y así sucesivamente pruebas que es equivalente al código, así que están trabajando en la especificación ejecutable. Se están asegurando de que la especificación ejecutable concuerde con un conjunto de propiedades, así que escribieron un montón de propiedades que el nodo debe tener para Shelley en este documento y ahora se están asegurando que todo el código que han escrito concuerde con estas propiedades específicas. Como pueden ver aquí, comenzaron a trabajar en incluir estas especificaciones dentro de estas especificaciones ejecutables. También han estado trabajando en nuevo tipo de certificado para Shelley, así que si estás trabajando en un explorador o cualquier sistema que muestra la blockchain Cardano, necesitarás un nuevo tipo de certificado llamado DCert Mir. Si no sabes lo que son los certificados son cosas acerca de cómo registrar un pool de participación, cómo delegar a un pool de participación, todo este tipo de información donde posteas a la blockchain. Así que hay un nuevo certificado y la razón por la que necesitábamos uno nuevo es porque necesitábamos una forma de tomar las recompensas de la testnet incentivada y llevarlas a la red principal.

Quizás recuerden que para la testnet incentivada Cardano, el Ada que ganen será real, es decir que el Ada que ganes en la testnet incentivada será llevado a la red principal como Ada real. Para hacer eso, necesitamos un nuevo tipo de certificado en la red principal, que prueba que cierto monto de Ada que fue ganado en la testnet será permitido de ingresar. Si quieren saber más acerca de esto les dejo el enlace a esta solicitud plural en la descripción del video.

Por último, acerca del código, me gustaría ir al código de la red de trabajo Ouroboros. La red de trabajo Ouroboros es una manera de reescribir el apilamiento de red de trabajo para una blockchain desde el comienzo, es un proceso que está siendo llevado a cabo por unos años ya y la razón por la que estámos haciendo esto es porque un montón de blockchains fallan en escalar debido a la implementación de la red de trabajo. Queremos asegurarnos que en vez de reutilizar algunas implementaciones de red de trabajo, en Cardano, desde el comienzo, realmente hemos pensado en qué es lo que se necesita para un apilamiento de red de trabajo en una blockchain. Así que el equipo de red de trabajo Ouroboros ha estado trabajando duro, notablemente lo que han hecho este mes es una enorme cantidad de trabajo en sincronización de cadena. Ahora, con todo este trabajo, son capaces de tomar un cliente y sincronizar toda la cadena utilizando su nuevo apilamiento de red de trabajo, ahora que tienen un montón de trabajo realizado, van a volver atrás y hacer algo de trabajo extra en la transición para Ouroboros Praos, están haciendo trabajo extra en la mempool que es una especie de última cosa que necesita ser hecha antes de esta red de trabajo Ouroboros esté hecha.

Ahora que nos estámos acercando al final, tenemos que tener un plan de testeo muy estricto para asegurarnos que no tenemos ningún problema en este nuevo apilamiento de red de trabajo. Para ello está este Plan de Pruebas de Consenso, es un documento que explica exáctamente cómo vamos a testear todas las variadas propiedades de nuestro nuevo apilamiento de red de trabajo para asegurarnos que no hay errores y que todo lo que implementemos funcione bien. Obviamente en Cardano tomamos esto muy seriamente y nos aseguramos de que todo lo que implementamos funciona. Como he mencionado han trabajado en la mempool, en la transición a Praos, un montón de implementaciones en la sincronización de cadena.

Tenemos un plan que muestra lo avanzados que estamos en la implementación Ouroboros y el mes pasado hemos chequeado un montón de estas cajas de aquí en el cliente de sincronización de cadena. Así que pueden ver las últimas cosas que nos faltan, cosas como mempool, hemos hecho parte del trabajo, hemos hecho parte del trabajo del nodo único y la última parte es el testeo, así que ahora tenemos que ir a esta lista y asegurarnos de que cada parte está bien testeada y nos aseguramos que todo funcione. Así que es emocionante ver que estos largos proyectos que han estado por un largo tiempo se están acercando a una primera versión justo a tiempo para Shelley.

Otra cosa que está ocurriendo en el ecosistema Cardano que quiero mencionar que no está relacionada con código es nuestro programa de educación en India. Emurgo tiene un programa de educación en India, entrenamos a estudiantes en universidades acerca de blockchain, de tecnología descentralizada en esperanza de que luego puedan unirse a nuestro ecosistema y la industria blockchain y ayuden a contribuir. Tenemos a uno de nuestros ingenieros llamado Vicente que fue a India a ayudar a enseñar a los estudiantes acerca de blockchain, acerca de Cardano, acerca de todo el trabajo que hacemos, pueden ver aquí algunas de las fotos.

También tuvimos nuestro segundo aniversario Cardano en Bulgaria, fue un evento asombroso, unos cientos de personas asistieron, lo que es sorprendente porque mucha gente es tan apasionada acerca de Cardano así que fueron a Bulgaria para pasar el tiempo y celebrar con nosotros el evento. Ahí tuvimos un evento con los embajadores Cardano, hablamos de lo que piensan es importante en nuestro ecosistema. Si no sabes lo que los embajadores Cardano son, es un grupo de gente que ha contribuido mucho al ecosistema Cardano y son reconocidos por la Fundación Cardano por ser contribuidores constantes a nuestro ecosistema. Nos encontramos con muchas de estas personas en Bulgaria, pagamos los boletos de avión para que vengan, hablamos acerca de qué podemos hacer como IOHK, Fundación Cardano y Emurgo para ayudar a mejorar el ecosistema Cardano. También plantamos algunos árboles y el punto de plantar árboles es simbólico porque estos árboles van a crecer por las próximas decenas o cientos de años, así que es como una parte viviente del ecosistema Cardano, puedes ir nuevamente ahí en cincuenta años y ver los árboles que plantamos para celebrar el segundo aniversario de Cardano.

Otra cosa que quiero mencionar y había olvidado, también es acerca de código, es Ouroboros Formal, estámos haciendo un montón de trabajo para firmemente verificar los documentos Ouroboros y cómo estructuramos los documentos, por ejemplo la comunicación que describimos en los documentos y ese tipo de cosas. Hemos estado trabajando en verificar formalmente esto por un largo tiempo y es un enfoque paso a paso, es muy duro tuvimos que inventar nuestro propio cálculo para ser capaces de hacer esto, así que si estás interesado cálculo customizado para ser capaz de solucionar estos problemas, definitivamente chequea el repositorio GitHub Ouroboros Formal donde continuamos haciendo más trabajo para formalmente verificar todo el contenido de los documentos Ouroboros. Lo que es muy importante, ya saben, porque es posible que alguien lea este documento y no encuentre un error, eso no es aceptable para nosotros, necesitamos asegurarnos que no haya errores y podemos probar formalmente que no hay errores y de eso es lo que se trata este repositorio GitHub.

Por último quería mencionar investigación, ha habido un montón de investigación este mes también, una es la actualización de software. Recuerden que en Cardano queremos ser capaces de actualizar la blockchain de una forma descentralizada, tenemos un documento sobre este tema y ahora estámos trabajando en la implementación de este tema, por ejemplo en esta solicitud plural estámos implementando el sistema de propuesta de mejora de votación, este no es el comienzo de la implementación porque hemos estado trabajando unos meses, así que si estás interesado en implementación de actualizaciones de software para blockchains, chequea este repositorio GitHub, chequea el documento y el código que contiene.

Runtime Verification el cual es uno de nuestros aliados para el ecosistema Cardano publicaron un documento en IELE la cual es una máquina virtual que pensamos es mucho mejor que la EVM, es mucho más fácil de verificar formalmente que en EVM, así que publicaron un documento sobre IELE y el trabajo que han hecho en sociedad con IOHK, así que si estás interesado en IELE y cómo podría ser utilizada por Cardano en el futuro luego que entreguemos Plutus y otras tecnologías, chequea este documento.

También tenemos un documento llamado Kachina, el cual es la fundación de contratos inteligentes privados, el cual es importante porque hay algunos contratos inteligentes, aplicaciones financieras donde legalmente no puedes tener otros participantes, esta es la regulación para varios países, así que tenemos que tener una manera de manejar competencia privada así que este documento es sobre ese tema. También tenemos otro documento que es la sistematización de conocimiento acerca de la comunicación a través de libros contables distribuidos, ha habido mucha charla acerca de cosas como la capa dos, mucha charla acerca de Atomic Swaps, Lighting, toda esta clase de variados sistemas que comunican a través de un libro contable distribuido. Así que este documento habla acerca de varios sistemas con que la gente ha aparecido y trata de categorizarlos en distintas clases para fácilmente razonar acerca de las propiedades de seguridad de cada diferente implementación, así que si tu estás interesado en diferentes maneras de tratar de solucionar la comunicación entre libros contables, chequea este documento y ten una vista general de todo el ecosistema.

Y finalmente hay otro tema, se ha publicado un documento de prueba de quema que tambíen es importante por que la prueba de quema es una de las maneras en que la gente quiere comunicarse entre libros contables distribuidos. Imaginen que quieren transferir un Bitcoin a Cardano, una de las maneras en que podrías hacerlo es quemar un Bitcoin y liberarlo en la blockchain Cardano, para hacer eso de forma segura necesitas ser capaz de probar que realmente quemaste tu Bitcoin, así que no había una definición formal previa de lo que significa quemar una moneda y cómo probar que la quema realmente ocurrió y es de lo que este documento se trata.

Así que hay un montón de investigación siendo realizada en Cardano, obviamente estámos escribiendo todo el código, pueden ver que con Jormungandr estámos haciendo un montón de trabajo para entregar todo en producción pero mientras hacemos esto continuamos haciendo investigación para que Cardano nunca se quede por detrás, siempre vamos a estar haciendo la investigación y estar seguros de que estámos un paso adelante de la competencia.