Actualización de Safe Network Dev 🇪🇸 25 agosto 2022

Esta es una traducción automática. El original en inglés está aquí: Update 25 August, 2022

“Di hola, di adiós”, cantó Marc Almond de Soft Cell en los años 80, y cuán clarividente fue. Esta semana estamos encantados de dar la bienvenida a Mo como el miembro más nuevo del equipo de ingeniería de MaidSafe. Mo es informático y desarrollador de software. Logró su Ph.D. en Ciencias de la Computación en la Universidad de Potsdam en 2020 y está interesado en la investigación, programación y pruebas de seguridad para servicios distribuidos y sistemas de software estándar.

Al mismo tiempo, nos entristece despedirnos de @yogesh, quien ha estado en el equipo durante varios años y realmente ha dejado su huella, aplicando sus capacidades forenses de resolución de problemas y atención a los detalles en todos los aspectos de la red Siempre profesional, el trabajo más reciente de Yogesh fue asegurarse de que el servidor ELK funcionaba como él quería y completaba toda la documentación. Todo lo mejor Yogesh y disfruta de tu nuevo desafío.

Progreso general

@joshuef ha reelaborado parte del módulo CmdCtrl para eliminar el último bloqueo restante fuera de la propia instancia Node. Esto ha tenido un buen golpe en términos de simplicidad del código, que siempre es una victoria.

@qi_ma ahora está investigando una posible fuga de memoria en la unión de un nodo, además de investigar por qué algunos mensajes se manejan muy lentamente en los nodos.

@roland prácticamente ha terminado de refactorizar la cadena de secciones como un árbol de Merkle y ahora está actualizando la API para que sea lo más compatible posible.

Y @anselme solucionó un problema de umbral en sn_sdkg, la caja DKG síncrona. Ahora tenemos DKG funcionando bastante bien, incluso con divisiones de sección. ¡La integración de esto continúa!

@bochaco ha detectado algunos problemas con la implementación del almacenamiento de registros, lo que significa que las escrituras simultáneas en los mismos datos pueden perder algunas operaciones, y al solucionar eso, también hemos detectado otro problema que puede haber estado afectando a main, por lo que similar Es posible que los registros de xorname` también se hayan sobrescrito entre sí. Ahora hay una solución para esto.

Informe de progreso

Mensajes y picos de memoria
Vimos una avalancha de mensajes y un aumento en el uso de la memoria, especialmente cuando un nuevo nodo se comunicaba con los ancianos y pedía unirse.
Progreso: Mucho mejor. Todavía hay algunas situaciones que conducen a una fuga y se depuran a medida que las encontramos. Ahora son mucho menos frecuentes y mucho más fáciles de rastrear con el tablero de ELK.
Todo: Aplastar bichos cuando vemos picos.

Tablero ELK
ELK (Elasticsearch, Logstash y Kibana) es una pila de herramientas de código abierto para agregar y visualizar archivos de registro. Posteriormente se agregó Beats, que recopila métricas de la CPU y otros lugares, pero BELK suena estúpido, por lo que el nombre ELK permanece.
Progreso: Listo. Ahora podemos monitorear redes de prueba y ver qué está haciendo cada nodo individual. Más aquí https://github.com/maidsafe/sn_testnet_tool/tree/main/scripts/ELK
Todo: Averigüe si/cómo podemos abrir esto de forma segura para que todos lo vean.

Manejo de datos
Ordenar la membresía de la sección era necesario para el manejo adecuado de los datos, la redistribución de fragmentos cuando un adulto se desconecta y el manejo elegante de las divisiones.
Progreso: Esto está hecho y se ve mucho más sólido.
Todo: A la espera de la finalización de la Membresía para poder completarla. Se están agregando más pruebas para apuntalar las capas de almacenamiento subyacentes.

Entregar
Si un anciano se da cuenta de que los ancianos actuales no son los siete nodos más antiguos, se genera una votación para promover a los adultos mayores y degradar a los ancianos más jóvenes para dejar paso. Handover es el algoritmo que controla este proceso.
Progreso: Completado, aunque se está refinando con chismes, a continuación.
Todo: Mira agregar chismes como alternativa.

Afiliación
Esto es lo que permite a los ancianos mantener el control sobre los adultos de su sección.
Progreso: La membresía ahora está integrada en sn_node y utiliza el consenso para obligar a los ancianos a acordar qué nuevos nodos podrán unirse a la sección.
Todo: Lograr que los adultos tengan la misma visión de los miembros que los mayores. Muchas de las decisiones que los adultos tienen que tomar, p. los datos de los que son responsables se basan en el estado de membresía actual, pero actualmente no tienen la misma opinión que los mayores.

Chisme
El chisme es un tipo de protocolo p2p en el que un nodo transmite información periódicamente a otro nodo, a menudo seleccionado al azar, y ese nodo pasa el mensaje a otro nodo, y así sucesivamente hasta que se convierte en “conocimiento común”.
Progreso: Estamos introduciendo chismes en varios lugares donde los procesos a veces pueden atascarse, como rondas DKG, membresías y divisiones de redes. En el caso de este último, el chisme también nos permite reconstruir la red después de una falla catastrófica.
Todo: Comenzar implementación.

NOC
La generación de claves distribuidas se usa cuando los ancianos necesitan tomar decisiones sobre la membresía.
Progreso: DKG se ha renovado con una implementación más limpia y sin temporizador y un consenso para solucionar los casos en los que DKG fallaba y se volvía a intentar de manera inconsistente debido al uso de tiempos de espera cuando se esperaba.ing para mensajes. Las pruebas están mostrando resultados positivos.
Todo: Arreglar un error en el proceso de consenso que a veces impide la terminación. Considere agregar chismes como una capa de comunicación alternativa.

Flujo de pago
Cuando el cliente paga por una carga, obtiene un recibo y los ancianos y adultos en las secciones que almacenan los datos reciben una parte de ese pago. El flujo de pago se trata de cómo funciona esa distribución.
Progreso: Estamos trabajando en el algoritmo para administrar el flujo de pago. Por el momento, la idea es incluir a todos los beneficiarios en el recibo y hacer que puedan reclamar los fondos mediante la reemisión de un DBC para ellos mismos en cualquier momento. Los destinatarios pueden ser potencialmente clientes, adultos y ancianos.
Todo: Diseño detallado para cubrir seguridad, UX, incentivos económicos. Pruebas.

Emisiones de tokens
Después de la distribución inicial de tokens al inicio de la red, el 70 % restante del suministro total se creará y distribuirá de forma segura como consecuencia de la carga de datos de las personas a largo plazo. Los SNT no se crean cada carga, sino cuando se cumplen ciertas condiciones. Estos eventos deben ocurrir con una probabilidad conocida, pero ser impredecibles en cuanto a cuándo y dónde ocurrirán.
Progreso: Actualmente estamos considerando mecanismos que recompensarán a los ancianos, almacenando adultos y clientes mientras hacen que la minería por parte de nodos deshonestos no sea rentable.
Todo: Elige una opción y pruébala.

Refactorización de nodos
sn_node se ha refactorizado para eliminar tantas instancias de subprocesos múltiples como sea posible para simplificar el código y eliminar bloqueos no deseados.
Progreso: Bastante hecho. El código es mucho más simple, se mejora el rendimiento y solo queda un bloqueo de nodo alrededor del almacenamiento, lo cual está bien. Hay algunos otros en torno a la función de contrapresión, pero eso no se usa de forma predeterminada.
Todo: Seguir supervisando el rendimiento, casos extremos.

Refactorización de cadena de sección
La cadena de secciones, la lista enlazada segura que conecta las claves de sección hasta ‘Génesis’, se está refactorizando como Merkle DAG. Ahora se llama SectionsDAG.
Progreso: Mayormente hecho.
Todo: Completa el refactor.

Disfunción
Probar periódicamente que los nodos estén en línea y tomar medidas si no lo están.
Progreso: Refactorizado con su propio conjunto de pruebas, a la espera de progreso en otras áreas.
Todo: Se revisará continuamente a medida que maduren otros componentes.

DBC
Los certificados digitales al portador son el vehículo para realizar transacciones de tokens en Safe Network.
Progreso: La integración de DBC y la funcionalidad básica están ahí en gran medida. Completar la funcionalidad básica es el siguiente paso, en particular hacer que funcione con los flujos de pago, que es mucho más sólido que hace seis meses.
Todo: Mejorar las API y la experiencia de usuario en torno a esto. Trabaje las API de DBC en los flujos de pago y pruebe allí.

Sistema de resolución de nombres y nombres de dominio
Los mapas NRS son mapas múltiples (registros bajo el capó) que contienen el mapeo de todos los subnombres a URL para un topname específico. Cada topname tiene su propio mapa múltiple.
Progreso: La API se refactorizó para simplificar el código. Hemos optado por el formato topname.subname (google.maps) como el más intuitivo.
Todo: Se implementarán cambios en el pedido de NRS.

Cliente/UX
sn_client es el conjunto de API y la interfaz de línea de comandos (CLI) que permite que los dispositivos se conecten e interactúen con la red.
Progreso: se ha refactorizado sn_client: se corrigieron los mensajes que muestran a los usuarios si están conectados o no, especialmente durante el arranque.
Todo: Mejora continua de las API y CLI a medida que avanzamos.


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.