El año pasado tuvimos la oportunidad de entrevistar a MicroHash (Lukas Tassanyi) quien estuvo explicándonos acerca de Qubiota, uno de los proyectos pioneros realcionados a Qubic.
Hace un par de meses atrás, Lukas, se convirtio en parte del equipo de IOTA Foundation y ha estado trabajando en el desarrollo de Ict.
En esta ocación le pedimos que nos ayude a entender de qué se trata Ict y cómo es trabajar para la IF. Si te interesa conocer un poco más sobre este tema, no te podés perder esta entrevista.
Gabriela Jara
Coordinadora de Contenidos & Redactora
IOTA Hispano
En nuestra última entrevista todavía no formabas parte de la Fundación IOTA ¿podés contarnos cómo es un día de trabajo?
Me gusta mucho trabajar en la Fundación. Como estoy trabajando a distancia, tengo mucha libertad en cuanto a la forma en que manejo mi tiempo y básicamente puedo trabajar desde cualquier lugar donde tenga acceso a Internet. Mi día de trabajo consiste en revisar los canales de ICT en Discord para ayudar, averiguar sobre errores, discutir varios conceptos con la comunidad y el equipo. Pero, obviamente, la gran mayoría del tiempo se dedica a la codificación: averiguar cómo abordar una característica o un problema técnico necesario e implementar la solución.
Debido a las diferencias horarias, el trabajo también se mezcla mucho con otras actividades diarias. Es bastante común que alguien intente iniciar una conversación técnica conmigo en medio de la noche. Pero te acostumbras a eso después de un tiempo, jaja.
Esta vez, nos encantaría que nos explicases sobre Ict, ¿podrías explicarnos qué son las Ict?
Ict – abreviatura de Iota Controlled agenT – es nuestra implementación de nodos IOTA construida específicamente para dispositivos edge en el Internet de las Cosas. A diferencia del IRI, el software estándar de IOTA para nodos completos, Ict es mucho más ligero en su diseño. Esto permite que incluso los dispositivos débiles con bajos recursos computacionales se conecten a la red IOTA y operen en el Tangle – un paso muy importante hacia la visión final de la IOTA para la Internet de las cosas.
Aunque el Ict definirá el protocolo final de IOTA, al que el IRI se ajustará en algún momento en el futuro, el Ict se encuentra todavía en un estado muy experimental. Es un prototipo de rápido desarrollo que está siendo construido por el equipo Omega. Una vez que el desarrollo pase al equipo Alpha, será reconstruido en un lenguaje más eficiente con un mayor enfoque en el rendimiento para satisfacer las demandas de los dispositivos de vanguardia.
Ict no almacena todo el historial de la Tangle. En su lugar, está destinado a nodos con un caso de uso específico. Basado en ese caso de uso, se filtra a través de todas las transacciones entrantes y sólo considera aquellas relevantes para la aplicación. Estas aplicaciones se realizan a través de módulos personalizados que se conectan a Ict. Se comunican con el Tangle a través de una interfaz mínima y simplificada: la interfaz IOTA eXtension Interface (IXI). Por lo tanto, estos plugins se denominan módulos IXI. Ejemplos de módulos IXI existentes son CHAT.ixi[[https://blog.iota.org/chat-ixi-using-ict-for-permissionless-chat-on-the-iota-tangle-59ce6c5b95fb] (un chat descentralizado que se ejecuta en el Tangle), el informe construido por la comunidad.IXI[https://github.com/Trifel/Report.ixi] (una herramienta de monitoreo de red Ict) y EC.ixi[https://github.com/iotaledger/ec.ixi].
¿Qué es son los EC y por qué son necesarios en el escenario de IOTA?
El Economic Clustering o EC abreviado, es el mecanismo de consenso utilizado para el Ict. Debido a los recursos computacionales limitados de los dispositivos edge del Internet de las Cosas, no podemos esperar que cada nodo Ict valide todo el ledger por sí mismo. En cambio, los EC permiten que los nodos Ict «sigan» la opinión de otros nodos.
Estos últimos nodos se denominan Economic Actors. Ellos le dicen públicamente a la red lo seguros que están de que una parte específica de la Tangle está confirmada. Esa confianza puede alcanzar del 0% al 100% y se ajustará constantemente. Dependiendo de los Actores a los que siga, formará parte de un clúster económico diferente. Cada grupo llega a su propio consenso y, por lo tanto, a su propio ledger.
Otros nodos Ict dependen de múltiples de estos actores para estimar la probabilidad de que una transacción específica sea confirmada en su conglomerado. Como tal, estos actores pueden ser comparados con un coordinator distribuido. Sin embargo, todo el mundo puede mantener su propio actor para hacer la validación del ledger por sí mismo si están ejecutando Ict en un dispositivo más potente.
¿Podrías explicar de una manera no muy técnica cómo funciona Ict para construir EC?
Ict en sí mismo hace posible que los plugins personalizados (los módulos IXI) hablen y escuchen la Tangle. Esto sucede enviando nuevas transacciones a la red, buscando transacciones existentes o analizando las transacciones entrantes tan pronto como se reciben.
EC se construye sobre Ict como tal un módulo IXI, por lo tanto se llama EC.ixi. el IXI, los actores en EC.ixi pueden emitir nuevas transacciones al Tangle. Estas transacciones, llamadas marcadores, indican la probabilidad de que se confirme una determinada maraña. Otros nodos usan EC.ixi para escuchar el Tangle y encontrar estos marcadores. De esta manera EC puede utilizar simplemente el Tangle para transferir datos de un nodo a otro sin necesidad de saber cómo funciona Ict en un nivel inferior.
¿Podrías explicar un caso de uso de Ict en la vida real?
Claro. Creo que el más ilustrativo podría ser un coche. Imagínense una carretera con muchos coches de una multitud de fabricantes diferentes. Si desean que se comuniquen, necesitan un protocolo subyacente compartido. El IOTA Tangle ofrece exactamente esto de una manera ligera y sin permisos, con transferencias de valor de la integridad de datos y sin impuestos/tasas directamente implementadas.
Ahora esos autos tienen pocas razones para ejecutar un nodo completo pesado. Después de todo, intentan resolver problemas específicos de cada dominio (por ejemplo, prevenir el tráfico).
Por lo tanto, sólo se preocupan por un pequeño subconjunto de transacciones. Con Ict pueden engancharse a todo el flujo de transacciones y encontrarlas relevantes. Se tratará principalmente de las transacciones emitidas por vehículos cercanos con un contenido que pueda ser interpretado.
Por ejemplo, su coche puede estar de acuerdo con el coche que está detrás para dejar que entre por detrás a una distancia muy corta para disminuir la resistencia al aire. Esto se llama «Platooning» y como resultado, el otro coche desperdiciará significativamente menos combustible o electricidad y puede recompensar a su coche con una parte de estos ahorros mediante el envío de micro-pagos a través de un Flash channel de IOTA de vuelta a la wallet de su coche.
Debido al uso de Ict, su coche puede reducir enormemente los recursos utilizados para ejecutar un nodo. Aunque esto podría no ser un gran problema para un coche, los dispositivos más débiles (sensores, tostadoras, aviones teledirigidos, etc.) ciertamente se beneficiarían aún más de cualquier reducción de recursos.
Recientemente leímos acerca de Ict 0.6, ¿puede resumir las mejoras o características que se han logrado en esta nueva versión?
La característica más importante que viene con 0.6 – aunque como un módulo IXI separado – fue Bridge.ixi[https://blog.iota.org/introducing-ict-0-6-and-bridge-ixi-9c5168a16b07] desarrollado por Samuel. Hasta ahora los módulos IXI sólo podían ser escritos en Java, pero Bridge le permite finalmente escribir módulos IXI en casi todos los demás lenguajes de programación importantes y abre la puerta a Ict para muchos desarrolladores.
Además de mejorar la seguridad general y la eficiencia de Ict, la otra característica principal es EEE – abreviatura de Environment Entity Effect.
¿Qué es el EEE (Environment Entity Effect)?
EEE es una arquitectura basada en eventos en Ict que permite a «entidades» (Entinty) como los módulos IXI, emitir «efectos» (Effect – normalmente secuencias de caracteres) a un lugar específico, llamado «entorno» (Environment). Otras entidades pueden suscribirse a estos entornos para recibir todos los efectos que se les envíen. Esta infraestructura es bastante potente y permite que diferentes módulos IXI se comuniquen entre sí. Si usted está desarrollando un módulo IXI, definitivamente debería investigarlo. Pero todo está corriendo entre bastidores. Así que no se preocupe: si simplemente quiere usar un módulo, ni siquiera tendrá que saber que existe.
¿Cuáles son los próximos objetivos?
Ahora que la primera iteración de EC ha sido lanzada como Prueba de Concepto, se trata de estabilizarla y escalarla durante las siguientes iteraciones hasta que podamos ejecutar clusters reales en la red Ict. Aparte de eso, queremos mejorar la experiencia general del usuario y del desarrollador mejorando aún más el IXI y haciendo que el mantenimiento de los nodos sea aún más sencillo a través de la función de auto-peering.
Mientras que una primera solución coordinada de auto-peering llamada «IcTinder» ya está en alpha cerrado, queremos descentralizar ese proceso en el futuro. Una vez que la base de código Ict haya madurado lo suficiente y hayamos pasado por todas las tareas de desarrollo de alta prioridad, vamos a implementar un auto-peering.ixi descentralizado.
¿Algún pensamiento o idea que quieras agregar para finalizar?
Hay un componente integral de Ict que no debe quedar sin mencionar: la comunidad. El compromiso de la comunidad en torno a Ict es increíblemente fuerte y ayuda al proceso de desarrollo inmensamente. Hay muchos miembros de la comunidad que establecen sus propios nodos Ict, reportando cualquier problema emergente, ayudándose unos a otros y siguiendo y discutiendo el progreso del desarrollo. Si quieres mantenerte en contacto con la comunidad en torno a Ict y el progreso técnico, sólo puedo recomendar que te clasifiques como «ict-testing» en Discord y compruebes los canales ict (#ict-discussion, #ict-help y #ict-dev). Hay tantas cosas que están sucediendo y ciertamente se puede «perder» bastante tiempo allí.