Actualización de Safe Network Dev 🇪🇸 24 marzo 2022

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

Safe Network se basa en el concepto de mantener los componentes básicos simples. Los elementos individuales reaccionan a los estímulos externos de manera limitada y predecible, pero se combinan para crear una entidad que es capaz de realizar tareas complejas en un mundo impredecible y defenderse de los enemigos: la analogía de la colonia de hormigas.

Pero para que esto funcione, se requieren sutiles mecanismos de retroalimentación. Las hormigas individuales deben poder indicar que están bajo presión y que no pueden transportar más, de lo contrario, el sistema se vuelve frágil y la colonia colapsa. @oetyng ha estado trabajando en un sistema de cola de mensajes y contrapresión, que es una forma de que los nodos digan: ‘Por Dios, retrocede, ¿quieres? Llegaré a ti a tiempo, pero solo tengo seis piernas, dos mandíbulas y un cerebro diminuto’. El código aún no está completo, pero las pruebas ya muestran mejoras impresionantes en la estabilidad y el rendimiento.

Progreso general

El equipo de MaidSafe se está familiarizando con el borrador del proyecto de ley de seguridad en línea del Reino Unido, que se publicó la semana pasada, y cómo puede afectarnos a nosotros como empresa y a Safe Network como proyecto. Nuestras preocupaciones sobre el proyecto de ley, que siempre ha intentado regular Internet en torno a Facebook, ciertamente no se han aliviado con el nuevo borrador; en todo caso, han empeorado. Por lo tanto, estamos trabajando para comprender qué posturas debemos tomar y qué debates debemos tener para ayudar al gobierno a comprender que proyectos como el nuestro no son Facebook, ni debemos ser tratados como lo somos. Afortunadamente, nuestra gerente de políticas y gobierno @Heather_Burns ha estado lidiando con este proyecto de ley durante más de tres años en sus trabajos anteriores y lo entiende mejor que nadie. Actualmente está encerrada en un sótano oscuro con más de 500 páginas del texto legal del proyecto de ley y una caja de Irn Bru, y pronto informará.

Al trabajar con los flujos de DBC, @danda y @davidrusu se dieron cuenta de que la menta, como se especificó originalmente, ya no era necesaria, porque la funcionalidad (verificar y firmar transacciones) ahora se había integrado en el libro de gastos. Como algunos miembros perspicaces de la comunidad (¡hola, @felizser!) vieron, esto significa que se pueden eliminar franjas enteras de código, lo que deja menos trabajo por hacer tanto para el cliente como para los mayores. Ahora estamos debatiendo si convertir el libro de gastos en un tipo de datos separado, y quizás cambiarle el nombre a ‘mint’ para que se ajuste a la convención.

@Chriso está investigando la licencia del código base que se ha vuelto inconsistente con el tiempo. La idea es licenciar la red central bajo GPL3 con cajas de red no seguras bajo licencia MIT/BDS para no limitar las aplicaciones de cliente que se pueden construir en ella.

@joshuef también ha estado trabajando para integrar el código de seguimiento de disfunción, lo que ha expuesto un par de errores en el manejo de consultas del nodo. Antes de estas correcciones, los nodos podrían no haber devuelto un fragmento válido a los clientes si otro nodo respondía más rápido con un error. Es posible que no hayan puesto en cola a un par si ya existía uno para el mismo fragmento, y es posible que no hayamos reenviado consultas a nodos en absoluto si los mensajes originales se descartaron en tránsito por algún motivo. Ese par de confirmaciones corrigen ese flujo y parecen haber tenido un impacto razonable en los resultados de las pruebas, lo cual es bueno.

Contrapresión y cola de mensajes

Debido a los límites de su CPU y memoria, los nodos no pueden manejar una cantidad infinita de solicitudes. Hasta ahora, cuando colapsaron bajo la tensión, simplemente los eliminamos, lo que da como resultado una gran cantidad de abandonos, incluso más mensajes volando y fallas eventuales, pero contrapresión, lo que permite que un nodo se queje antes de que se alcance el punto crítico. es una forma de suavizar la curva.

Entonces, los nodos ahora pueden retroceder y decir: ‘Oye, me voy aquí abajo, dame un descanso, solo envíame 10 mensajes en el próximo segundo’. La red observará de manera proactiva lo que los nodos dicen que son capaces de hacer en un momento dado y no los abrumará con mensajes si están bajo estrés. Esto les permitirá recuperarse una vez que hayan terminado su tarea.

La aceleración de los mensajes de esta manera también nos da tiempo para priorizar los mensajes, por lo que si hay algo que es una prioridad máxima, eso seguirá pasando, mientras que los mensajes menos importantes pueden esperar.

Cada nodo ahora tiene una cola de mensajes, que contiene los mensajes no enviados siempre que el nodo se considere activo. Si no es así, los mensajes se eliminan.

Con este sistema, todos los nodos son conscientes de la cantidad de mensajes por segundo que los otros pares en su sección son capaces de recibir, según lo calculado por el módulo back_pression, y los mensajes se priorizan para que los mensajes importantes de infraestructura siempre se envíen antes que los menos importantes.nt mensajes de servicio al cliente.

Esto aún no está disponible, pero al probar los cambios se han obtenido resultados realmente impresionantes:

Almacene y lea 5 MB de muchos clientes con 50 lectores de clientes que dieron lo siguiente en la rama de prueba:

Tiempo: 30 s
CPU: ~40 % (muy brevemente por encima del 50 %)
Mem: ~60 MB / Elder (muy brevemente hasta 125 MB)

en comparación con los resultados en main:

Tiempo: 704 s
CPU: 100%, todo el tiempo
Mem: ~2 GB / Mayor, todo el tiempo

Todo lo cual significa hormigas más felices y saludables. :ant:


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.