Actualización de Safe Network Dev 🇪🇸 23 marzo 2023

Esta es una traducción automática. El original en inglés está aquí: Update 23 March, 2023

Sabemos que todos están ansiosos por volver a probar las redes, pero hay una o dos correcciones que debemos hacer primero para asegurarnos de que nos brinde aprendizajes valiosos. Uno en particular es hacer que el envejecimiento de los nodos funcione de manera confiable. @joshuef explica más sobre los obstáculos y cómo nos estamos preparando para superarlos mientras nos dirigimos hacia pastos más verdes.

Progreso general

Están sucediendo muchas cosas como siempre, incluidas algunas inmersiones profundas en los fundamentos. Como algunos de ustedes sabrán, nuestra biblioteca de redes qp2p se basa en Quinn, una implementación de Rust del estándar de la industria QUIC que fue desarrollado por Google.

Lo bueno de adoptar componentes ampliamente utilizados es que tienen muchos ojos en ellos y se actualizan constantemente, pero el inconveniente es que no siempre funcionan de la manera que queremos. En este caso, la biblioteca TLS se basa en DNS y eso requiere una autoridad de certificación (CA), los cuales en su forma estándar están prohibidos para una red p2p. Pero… David tiene un plan astuto para usar el consenso de nuestro grupo como una forma de convertirse en nuestra propia CA, lo que debería permitirnos proteger el tráfico y firmar con nuestras claves ed25519, al menos cuando una versión actualizada de rustls, que debería ser pronto. En última instancia, queremos minimizar nuestro uso de qp2p y este será un paso para hacerlo.

@bzee también ha estado profundizando en qp2p y está agregando una versión simplificada al repositorio stableset_net para mejorar la eficiencia de la mensajería. @davidrusu también está trabajando en el conjunto estable, incluida la obtención de la herramienta Stateright para descargar su cola de trabajo al disco para permitirnos probar modelos más elaborados.

En DBC, @oetyng ha hecho un buen progreso con la actualización de la caja sn_dbc y aclarando el lenguaje que estamos usando para describir el cegamiento (ocultar el monto transado) y desenmascaramiento para que sea más fácil de seguir. Ahora está trabajando en la actualización del flujo de comandos entre clientes y ancianos al realizar transacciones con DBC.

@bochaco está trabajando en exponer gRPC para safe_node y está agregando un paso en nuestra herramienta de testnet para verificar los códigos lanzados usando dicho servicio.

Roland se ha esforzado mucho en la telemetría, mejorando nuestra visibilidad a nivel de nodo y función. Los rastros nos permiten ver lo que sucede con cada función, pero en su forma original son difíciles de leer, por lo que Roland los está introduciendo en OpenSearch, donde se pueden agregar por nodo y tiempo para brindarnos una imagen muy granular de lo que sucede en cada lugar. .

Y con las cuestiones legales fuera del camino, @JimCollinson está centrando su atención en la marca. ¿Cuáles deberían ser nuestros mensajes centrales y cómo deberíamos presentarlos? Hay mucho que aprender de otros que lo han hecho bien, así que si hay alguna empresa o individuo que encuentre particularmente inspirador, háganoslo saber en este hilo.

Progreso hacia una red que envejece

Hay varias cosas en marcha que nos gustaría que fueran más sólidas para cualquier red de prueba nueva. El principal problema que vimos en la última red de prueba fue que nuestro código de reubicación y, por lo tanto, la edad del nodo, no funcionaba como se esperaba.

La razón básica de esto fue que simplemente no teníamos suficiente rotación antes de abrir la red. Pero abrió la pregunta de cómo lograr eso de manera confiable y la reubicación en el futuro.

Un cambio simple ha sido la reducción de la edad de inicio del nodo, esto se reubica más rápido… pero esto en sí mismo también conlleva varios costos y compensaciones, especialmente hasta que tengamos almacenamiento de datos en niveles en su lugar. Pero también nos encontramos con algunos otros problemas allí.

Hemos visto que nuestro enfoque anterior de “dos pasos” para la membresía nos estaba causando problemas (tenemos “Membresía” donde se vota y también “SectionPeers” que se suponía que estaba actualizado para los cambios de membresía y basado en nuestra SectionAuthorityProvider (SAP), pero estos dos podrían perder la sincronización). Como tal, es genial que el PR de @qi_ma se haya fusionado, lo que debería reducir tal discordia.

También nos encontramos con un problema con las decisiones de votación de los miembros que se volvían increíblemente grandes y causaban demasiado tráfico, lo que hacía que el tiempo de verificación se disparara. Esto en sí mismo ha sido refactorizado a niveles cuerdos, y también expuso inadvertidamente algunos bloqueos que teníamos.

El bloqueo de ese proceso también se ha eliminado, por lo que las cosas funcionan mucho mejor en torno a la votación de miembros y DKG ahora también.

Como tal, volvemos a observar la velocidad de reubicación y tratamos de asegurarnos de que no estamos viendo ningún bucle a medida que los nodos se mueven por la red. Una vez que esté en su lugar, estaremos en un lugar mucho mejor para manejar la rotación y almacenar datos.

Este en sí mismo es un gran lugar para estar, pero no nos detendremos allí. Trabajar en un POC separado para el conjunto estable tiene begun, como algunas personas aquí han notado! Este pretende ser el nodo más simple (y bien podría ser mucho más simple si podemos evitar gran parte del mantenimiento del conocimiento de la red y DKG que proviene de nuestra rama “principal”). Todavía es pronto allí, pero estamos ansiosos por implementar la implementación simple y destrozarla para ver cómo se ven las cosas.

¡Ambos caminos son bastante emocionantes y se espera que produzcan otra red de prueba más “antigua” en el futuro cercano!


Enlaces útiles

No dude en responder a continuación con enlaces a las traducciones de esta actualización para desarrolladores y los moderadores las agregarán aquí.

Como proyecto de código abierto, siempre estamos buscando retroalimentación, comentarios y contribuciones de la comunidad, así que no sea tímido, únase y creemos la red segura juntos.