🇪🇸 Demostración de Cabeza Hydra con Sebastian Nagel | IOG 11 Feb 2022

:es: Transcripción al español de “Hydra Head Demo with Sebastian Nagel

Publicado en el canal de Youtube de IOHK el 11 de Febrero 2022

Enlace a la versión doblada al español


Hola, estoy feliz de realizar una demo del protocolo Cabeza de Hydra, mientras lo desarrolla IOG, la última libración, 030. En el repositorio encontrarás el directorio de la demo, que incluye instrucciones, cómo arrancar lo que estoy mostrando hoy aquí también, así que sería genial si vos también lo probás y das algo de retroalimentación, si funciona para vos también.

Para comenzar necesitás preparar una Defnet, esta versión del nodo Hydra funciona contra un nodo Cardano real, que está corriendo localmente, así que hay un testeo local, una defnet se llamaría. Si preparamos una defnet, que básicamente es arrancar de génesis, podemos utilizar el compositor de archivos Docker para lanzar un nodo Cardano y tres nodos Hydra, los veremos corriendo ahora. Por ejemplo si mirás los logs del nodo Cardano, aquí vemos que está produciendo bloques, es el único en esta red, pero todavía es una red Cardano. Veremos si buscó todo el conjunto UTxO de esta red, podemos pedir que nos de todo el estado UTxO, sólo hay tres distribuciones iniciales de activos, de Ada, 900 millones de Ada o algo así, a tres participantes, en este caso es Alice, Bob y Carol, como siempre. Primero tenemos que empezar en esta versión del nodo Hydra, todavía estamos utilizando algunos trucos especiales, tenemos una billetera interna que rastrea los fondos para ser capaces de gastar cosas en el nodo Hydra, para cada uno de estos participantes, Alice, Bob, Carol. Para eso veamos que está ocurriendo en esta cadena local, lo trimé un poco para que encaje en la pantalla, o la mayoría al menos. Ahora ves la red, o la defnet, básicamente redistribuimos estos 900k de Ada para Alice, Bob y Carol, como para que tengan 500k para Bob, 250k para Carol, y un 1k de Ada para Alice, para comprometer a una cabeza, para que tengan algunos UTxOs que puedan traer dentro de una cabeza, y que tengan mucho remanente de Ada para pagar por tarifas de transacción. Mantendré eso abierto, que está representando la cadena aquí. Para interactuar con el nodo Hydra lanzamos un cliente Hydra, que es una terminal de interfaz de usuario para una demo al menos, y demostrar la utilización de API bajo el capot. Lancé una terminal en cada uno de los actores, cada uno tiene su propio terminal aquí, sus propios nodos Hydra, estos tres clientes Hydra están conectados a la billetera de nodo Hydra 1, 2 y 3, para Alice, Bob y Carol. Cada uno de ellos puede iniciar una cabeza ahora. Si iniciamos vemos que una transacción ha sido posteada en la cadena, vemos mucho siendo producido, en particular estas cuatro salidas. Abrir una cabeza significa que creamos una salida que inició la cabeza, que está pendiente, y una salida por participante. Cada uno de ellos tiene que comprometer, hagamos que Alice comprometa su 1k de Ada, Bob 500 mil Ada, y Carol 250 mil Ada. Hay una limitación aquí, sólo podemos elegir que uno comprometa salida en una cabeza, esto cambiará en el futuro definitivamente. Y el último compromiso, la última salida dentro de la cabeza, hay una transacción adicional ocurriendo. Hasta ahora hemos preparado 1k de Ada, 500 Ada, y ahora si comprometemos 250 Ada de Carol. El nodo de Carol también postear una segunda transacción que colectará todo dentro de una salida, que luego abrirá la cabeza. Así que si pegamos esta, esto ocurre, ahora vemos una única salida acumulando todo el valor comprometido dentro de una cabeza, que es son 1 758 Ada, más algo de sobrecarga que hemos colectado durante la iniciación de transacción que todavía está sobre estimado, estos 8 Ada son acreditados de este valor de transacción inicial, pero esto también cambiará en el futuro.

Ahora la cabeza está abierta, podés hacer transacciones, Alice le envia a Carol por ejemplo, que está identificado por una dirección VQA, esta es la segunda, quiero enviar a Alice, digamos 700 de esos 1000 Ada, y esa es una transacción que ya está confirmada. Cada uno de los nodos confirmó que la transacción ocurrió, y ahora vemos esto resaltado en amarillo, la dirección de Carol en el conjunto UTxO, y esta tiene como 250 y 700 Ada aquí. Ahora a Alice sólo le quedan 300 en esta cabeza. Hagamos que Bob también le envie algo a Carol, quizás vendió algo, hagamos que Bob envie de nuevo a Carol, 100 Ada, así que a Bob le quedan 400, a Alice le quedan 300 y Carol ahora tiene tres salidas en la cabeza. También podés enviar las cosas hacia atrás, por supuesto, podemos enviar toda la salida de vuelta, así que por ejemplo si Carol ahora hace otra compra por 100 Ada, gasta eso y lo envia de vuelta digamos a Alice, eso sería VRU, es una segunda dirección aquí, 100 Ada, realizado de nuevo, captura de pantalla 3

Así que cada vez que hacemos una captura de pantalla, un nuevo estado UTxO en la cabeza, que puede estar cerca en cualquier punto en tiempo, así que cada uno de estos participantes puede cerrar la cabeza, hagamos que Carol cierre la cabeza después de realizar esta transacción, así que se cierra, se ejecuta la disputa ahora, esto es bastante corto ahora, diez segundos, pero podés ver que hasta ahora no ocurrió nada en la cadena, hasta ahora la cabeza básicamente está finalizada, los activos se han distribuido en la cadena principal, en la capa uno aquí. El mismo tipo de salidas son reproducidas, tienen una dirección diferente, una id de transacción diferente, referencia de transacción, la entrada de transacción es diferente que fuera de cadena, pero las salidas son las mismas, así que esto fueran salidas de scripts también habría salidas de scripts aquí, los datos serían los mismos, en este caso sólo son salidas de Ada. Eso concluye la demo, podemos comenzar otra cabeza aquí, podemos traer cosas nuevas. Alice ahora quizás compromete sólo 300 Ada, etc, y este juego continua por siempre. Esas son las cabezas Hydra, los veo la próxima.

2 Likes