Transcripción al español de “Cardano Progress Update by Sebastien Guillemot (August 2019)”
Publicado en el canal Youtube de EMURGO el 7 de Agosto de 2019
Link a la versión doblada al español
Hola a todos, mi nombre es Sebastien líder de Ingeniería de Emurgo, una de las tres compañías detrás del proyecto Cardano, en este video voy a ir a través de todo el trabajo ocurrido durante Julio en el ecosistema Cardano.
Para darles un vistazo, el equipo Haskell hay estado haciendo toda la preparación para la testnet (red de prueba) Shelley, el equipo Rust, que ya lanzó la testnet, está haciendo trabajo en la capa network (red de trabajo) para ir al próximo paso. Estamos haciendo todo el trabajo requerido en el ecosistema para Shelley que implica nuevas fijaciones de ensamblaje web, un nuevo explorador API, por su puesto los equipos Yoroi y Daedalus están haciendo todo el trabajo de preparación requerido para soportar Shelley en el día uno.
Comencemos, quiero hablar un poco acerca de Plutus, el equipo Plutus lanzó un libro hace poco acerca del lenguaje de programación Plutus, es un libro muy largo pero muy detallado, bien explicado, puedes ver los cortes en el código y en secciones, explica todo el conocimiento requerido para construir un programa usando el lenguaje de programación Plutus. Plutus no ha sido lanzado todavía, será lanzado luego de Shelley, pero tendremos todo el lenguaje de programación hecho, todo los recursos hechos de antemano. Una vez que Shelley sea lanzado nos podemos meter directo en los contratos inteligentes y realmente construir el ecosistema Cardano. Este libro no es lo único que hemos hecho.
Han estado haciendo algunas mejoras al lenguaje de programación en sí mismo, de la forma en que las páginas web puede hablar con los programas Plutus y construir interfaces de usuario para tu aplicación Plutus. Tienen un tutorial para las nuevas mejoras que han hecho en GitHub, si lo quieres chequear, los links estan en la descripción como siempre.
También hemos estado haciendo trabajo en la verificación formal, recuerda que para Cardano la forma en que hacemos todo es siempre en múltiples pasos, primero la investigación luego las especificaciones ejecutables y la implementación. Así que para Plutus, al mismo tiempo que están trabajando en la implementación también están refinando la verificación formal que prueba que lenguaje Plutus está construido correctamente. Esto es diferente a otros lenguajes de programación de otras blockchains, (cadena de bloques) donde no hay prueba de exactitud, de hecho errores dentro del programa en sí mismo han causado montón de problemas en el pasado así que el equipo Plutus, para eludir este problema, ha estado haciendo un montón de modelaje usando un programa llamado Agda, pueden ver aquí qué hay más cambios para básicamente probar formalmente que el núcleo Plutus es seguro y no hay problema con él. También están trabajando en un modelaje llamado CK Machine, este no es el último paso pero están haciendo un buen progreso para eventualmente ser capaces de probar que el apilamiento total es correcto desde un punto de vista fundamental. También están trabajando en un nuevo libro que es para Marlowe, así que si te gustó el libro Plutus, ha tenido mucha atracción, ahora podrás ver este nuevo libro acerca de Marlowe, qué es el otro lenguaje de programación en el que estamos trabajando para Cardano.
Este obviamente no es el único lugar en el ecosistema en el que estamos trabajando en verificación formal, Ouroboros en sí mismo se supone que tiene que ser probadamente correcto, y hacemos esto a través de muchos pasos de refinamiento, el primer paso después del documento de investigación es la especificación así que en este repositorio estamos trabajando con el lenguaje de programación llamado Isabel, básicamente estamos trabajando para probar que el protocolo de consenso Ouroboros satisface todos los requerimientos que hemos sentado en el documento de investigación. Así que estás interesado en el trabajo y la verificación formal definitivamente chequea este repositorio. Con todo ese trabajo de investigación realizado, con toda la especificación que hemos hecho, ¿A dónde estamos yendo con esta ingeniería de producto? Bueno el equipo Haskell ha lanzado una demo privada que básicamente muestra el nodo completo Haskell ejecutándose, es lo que tienen hasta ahora para Shelley, esta demo fue privada así que les muestro una foto de Twitter. pero estas demos serán públicas en el futuro y Charles ha hablado acerca de como unos de los empleados llamado David estará ocupándose de todo este tipo de relaciones para las demos.
Para poder hacer muchas más demos en el futuro podemos ver que el equipo haskell está haciendo un trabajo no solamente en la especificación formal, también están empezando a entregar productos reales que serán lanzados como testnet, esperemos que pronto. Cuándo digo que el nodo completo Haskell, que es este repositorio GitHub, está basado en la verificación formal realmente significa eso. En este posteo podemos ver, por ejemplo, la dependencia de las especificaciones para el proyecto y realmente modificar el código en el nodo completo, modificar la especificación para estar actualizado y alineado. Y cada función en la que trabajan está pensada para ser reflejada en la especificación y ser probadamente correcta. Pueden ver que hay muchos posteos como este todos, trabajando no sólo para desarrollar el nodo completo, pero también asegurándose de que el código que escriben coincide con el código que están verificando y es correcto.
Hablando de la especificación, están haciendo más trabajo aquí también, notablemente a medida que hacemos trabajo tanto en el código Haskell y el código Rust nos damos cuenta de mejores formas de hacer las cosas, de formas más óptimas, y cada vez que eso ocurre obviamente tenemos que realizar una especificación, así que en este caso estamos agregando más casos de ejemplos de incentivos para la especificación de Shelley, como ustedes saben, las testnets para Shelley son en tres pasos. El primer paso es un nodo único, el segundo paso es una network lo que significa que múltiples modos se pueden comunicar entre ellos y hay un tercer paso que es una testnet que no solo funciona con networking sino que también tiene un esquema de incentivos. Para ese tercer paso necesitamos un montón de ejemplos para asegurarnos de que la implementación es correcta, así que a esta especificación formal, le estamos agregando más casos de test para cubrir todos esos pequeños casos límite y asegurarnos que la implementación se corresponde con especificación. También estamos trabajando en multi firma, significa que si quieres enviar dinero necesitarás 2 de 3 personas o 3 de 5 para aceptar. Para hacer esto obviamente necesitamos seguir la metodología Cardano, lo que significa que primero hacemos la especificación, hicimos la especificación formal para la multifirma más en Cardano está incluida en esta especificación que estamos usando para Shelley.
Una vez que hayamos hecho esta especificación formal trabajaremos en la especificación ejecutable, ahora estamos trabajando en la especificación de ingeniería así que esta es una especificación de ingeniería que se convertirá en una especificación formal y en un pedazo de código es que realmente código de producción. Así que estamos siguiendo los mismos pasos que siempre, la misma metodología, que nos ha traído tanto éxito y ser capaces de probar que nuestros sistemas no tienen problemas. También estamos trabajando no sólo en multifirmas para enviar dinero, también estamos trabajando en multifirmas para staking (participación) y delegación Así que ahora esa parte de la ecuación está actualmente en un paso de especificación formal, si estás interesado en cómo harás delegación multifirma para el staking definitivamente chequea las especificaciones, deja tus comentarios y tu retroalimentación.
Hemos estado haciendo unos pequeños cambios a la VRF, estas son sólo mejoras de ingeniería que tienen que estar reflejadas en la especificación. Toma nota que si estás escribiendo software para interactuar con Shelley, chequea esto ocasionalmente para ver qué esté actualizado ¿Cómo tomamos todo este código para Shelley y lo convertimos en una capa de billetera? Eso es exactamente lo que el proyecto de billetera Cardano ha hecho, este es el equipo Haskell, define como tomar el nodo completo y darle una capa de billetera para una API de billetera.
Como ustedes pueden ver el equipo Haskell está trabajando en la solución networking qué es diferente de la solución networking Rust, así que el proyecto de billetera cardano ya puede hablar con el nodo completo Rust y ahora están agregando código para hablar con el nodo completo Haskell. El apilamiento networking está por salir y lo estamos integrando dentro de la capa de billetera. También estamos trabajando para agregar compatibilidad hacia atrás. Ahora que tenemos una capa de billetera que funciona bien con todas las nuevas funciones Shelley tenemos que asegurarnos que todos puedan actualizarla desde Daedalus o Yoroi. Para lograr esto estamos agregando soporte para derivación aleatoria, el cuál es un esquema que Daedalus utiliza, estamos haciendo todo el trabajo extra requerido para ayudar a todo el mundo a actualizarse dentro de Shelley. Solo para recordarles, esta será una hardfork (bifurcación dura).
Hablé un poco acerca de la capa networking de Haskell .Aquí está el repositorio que se llama Ouroboros network, He mostrado esto en videos de meses anteriores pero como siempre han estado haciendo un montón de actualizaciones para poder entregar una capa networking de última tecnología para Cardano. Recuerden que la visión original de Cardano es algo al estilo RINA, (Recursive Internetwork Architecture) lamentablemente esto no va a poder estar para Shelley, pero igual podemos hacer un montón de innovación para la capa network construyéndola en algo similar a RINA, La capa networking para Cardano ha sido un gran esfuerzo de investigación y ahora que esa investigación está casi concluida se ha convertido en un gran esfuerzo de ingeniería. Así que todos lo podemos seguir y ver lo que está pasando. Y la cosa en la que han estado trabajando el mes pasado es la implementación de la base de datos para la capa Network, a medida que salen bloques de la network ¿como los guardas? Para guardar todos los bloques tienen documentación acerca de cómo planean hacer todo esto, desde el punto de vista de la ingeniería esto está en la cima de la especificación, describe desde un punto de vista teórico y tienen un plan en el que han estado trabajando para mostrar cuán lejos están llegando, asi que si estás interesado en el apilamiento networking para el equipo Haskell y quieres ver cuán lejos han llegado puedes ver que tienen un montón de marcas de chequeo. Han estado trabajando en cadena DB, como pueden ver a llegado hasta aquí y la sección debería tener muchas más marcas ahora que han completado un montón del trabajo.
Cómo pueden ver un montón de las cajas que no han sido chequeadas, por ejemplo testeo con bloques, eso está cubierto en este posteo y podrán ver que esta Cadena estará prácticamente chequeada muy pronto. El equipo haskell está haciendo montón de trabajo en la capa networking, es muy emocionante, a diferencia de un montón de otras criptomonedas dónde la capa networking es desarrollada por un tercero. El equipo Haskell realmente ha surgido con la mejor manera de hacer capa networking para poder ser aplicado en Cardano, es muy emocionante ver esto transformarse en realidad
Por supuesto, si tu quieres hacer un gran cambio en la capa networking como nosotros estamos haciendo, tenemos que construir un puente desde el viejo código al nuevo código networking ¿Cómo eso ocurre exactamente? Bueno tenemos algo llamado el proxy Byron que solía estar la red Ouroboros pero ahora está en un repositorio GitHub, así que si tu quieres escribir tu propia aplicación que funciona con la networking Byron que sin inconvenientes transiciona en la network en Shelley definitivamente chequea el proxy Cardano Byron Network. No es solo una especificación pero también un programa ejecutable que es capaz de descargar bloques usando el protocolo network tanto de Byron como de el nuevo lanzamiento Shelley.
Eso nos relaciona con Cardano SL, si no lo sabes es el nombre de implementación Byron de Cardano. La computación hash para Shelley es llamada Cardano Ledger, la implementación Byron es llamada Cardano SL. A medida que nos alistamos para la hardfork Ouroboros, que recuerden que es el primer paso hacia la transición Shelley dónde se lanzará una nueva versión llamada 3.0.3 de Cardano SL con un montón de refactoría de scripps y proveyendo solución de errores adicionales de terminales para básicamente facilitar no sólo la transición de los nodos a Ouroboros BFT y Shelley pero también ayudando a los intercambiadores (exchanges) y compañías construyendo en Cardano para transicionar todo el código hacia Ouroboros BFT y Shelley. Así que si vos sos alguien que está operando un nodo Cardano para tu negocio definitivamente chequea el posteo del 3.0.3 que será lanzado muy pronto, quizás al momento que este video esté saliendo al aire. Chequea las mejoras y fíjate si pueden ayudarte durante la transición hacia Ouroboros BFT y eventualmente a Shelley
Link a Parte 2 de 2