Actualización de Safe Network Dev 🇪🇸 13 julio 2023

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

Se está volviendo un poco repetitivo, pero una vez más esta semana podemos informar que la red de prueba NodeDiscoveryNet todavía está en funcionamiento. Un poco tosco en los bordes y con necesidad de refinamiento, claro, pero los cimientos se sienten muy sólidos. Esta estabilidad ya no es una sorpresa, pero después de muchos años de emoción mientras intentamos hacer que esta cosa vuele, francamente, este es el tipo de aburrimiento con el que podemos vivir.

Entre los ajustes resultantes de los hallazgos de la red de prueba, estamos mejorando los mensajes de error para los usuarios cuando un nodo no se conecta correctamente. Actualmente, cuando esto sucede, no hay señales obvias para el usuario, que tiene que profundizar en los registros, aunque la falta de fragmentos es un regalo.

La mayoría de las fallas de conexión son el resultado de intentar conectarse a direcciones de pares inaccesibles. También hemos visto muchas más conexiones de las que podría esperar con direcciones válidas (dado que libp2p ofrece multiplexación). Más de un puñado por compañero no debería existir en ningún momento, ¡pero hemos visto cientos! Después de investigar un poco, resultó ser una característica (no un error…) de libp2p, pero no una optimizada para nuestro caso de uso. @bzee se acercó, y Max Inden de Protocol Labs amablemente ideó un parche que ha visto caer la cantidad de conexiones de docenas a sólo seis o siete. ¡Gracias Max!

Descubrimos que los nodos están haciendo una verificación get_closest cada vez que se agrega un nuevo nodo, mientras que solo deberían hacer esto cuando se unen por primera vez, por lo que hemos eliminado algunos gastos adicionales. Habra mas.

Además, hemos estado investigando más a fondo la seguridad del registro, considerando lo que sucedería si un atacante en lugar de intentar cambiar los datos en un registro (prácticamente imposible sin la autorización correcta) simplemente reemplazara todo el registro, algo que no es imposible con nuestra configuración actual. Estamos trabajando en las mejores maneras de solucionar esto.

Progreso general

@joshuef ha realizado algunos ajustes en el flujo de replicación, incluido uno que mezcla los datos que esperan ser replicados/obtenidos para evitar que un extremo del grupo cercano sea martillado debido al pedido de Xorspace. Junto con las conexiones excesivas y el exceso de mensajes, esta es otra causa probable de que los nodos tiren la toalla.

@Roland ha estado trabajando en una prueba para verificar dónde se encuentra cualquier dato en particular en la red, y @Qi_ma está introduciendo registros en la prueba de abandono , para que podamos ver cómo se las arreglan cuando las cosas se ponen salvajes. Después de eso, buscaremos refinar nuestras pruebas de retención de datos y centraremos nuestra atención en los DBC.

Con eso en mente, @bochaco ha refactorizado cómo el cliente fragmenta los archivos durante el autocifrado y paga por su almacenamiento. Anteriormente, fragmentábamos los archivos dos veces (primero para crear el árbol Merkle de pago y luego al cargarlos). Ahora generamos fragmentos y los almacenamos en una carpeta temporal local al pagar, y leemos de esa carpeta temporal en lotes al cargar los fragmentos pagados. Esto debería reducir la huella de memoria del cliente, especialmente para archivos grandes, ya que ya no es necesario almacenarlos en la memoria.

@Anselme ha actualizado el grifo. El archivo independiente simple que se encontraba en la máquina local ahora es un servidor HTTP que envía tokens a las direcciones en la solicitud. Por lo tanto, es un autoservicio y ya no necesitamos que una persona reclame la clave de Génesis y luego reparta los tokens manualmente cuando las personas envíen sus claves. Eso nos coloca en un buen lugar para cuando estemos listos para comenzar a repartir tokens para probar los DBC en futuras redes de prueba.

Esto pronto se agregará a la herramienta testnet, que @aed900 ha estado refactorizando junto con @Chriso.


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.