Actualización de Safe Network Dev 🇪🇸 29 junio 2023

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

Una buena semana de correcciones de errores y ajustes en preparación para nuestra próxima red de prueba: NodeDiscoveryNet, que analizará cómo los nodos se encuentran entre sí en la red.

Hemos encontrado una causa del uso excesivo de memoria. Pensamos que los nodos solo enviaban mensajes a los ocho nodos más cercanos a ellos, mientras que en realidad enviaban mensajes a 20 nodos. No estamos completamente seguros de cuáles fueron todos los efectos colaterales, pero para cualquier llamada en la que supusiéramos un grupo cercano hubo muchos mensajes desperdiciados, lo que se traduce en un mayor uso de la memoria y también puede haber afectado la replicación de datos.

Debido a que ejecutamos muchos nodos por máquina en las redes de prueba, tenemos poca tolerancia para lo inesperado. Vimos algunos nodos muriendo inesperadamente, y ese aumento en el uso de la memoria es una posible razón.

El otro lugar donde vimos la muerte del nodo fue alrededor de la replicación: esto tenía que ver con los procesos predeterminados de Kademlia/libp2p que agregan basura a la tabla de enrutamiento, incluidos los nodos que están detrás de NAT y no se pueden alcanzar. Esto significaba que los nodos pensaban que estaban conectados a la red pero en realidad no lo estaban, una causa probable del problema “Me uní pero no tengo datos”, y también de la muerte inesperada de los nodos. Entonces, ahora estamos agregando manualmente entradas a la tabla de enrutamiento en lugar de confiar en Kademlia para hacerlo cuando se detecta una conexión. A veces solo tienes que arremangarte y hacerlo tú mismo. :roll_eyes: Puede ser que los nodos que se encuentran atascados en el inframundo necesiten reiniciarse para ingresar correctamente a la red, pero eso no debería ser necesario, creemos.

Progreso general

@Chriso pasó la semana trabajando en mejoras de UX en el proceso de instalación y registro, gracias a los comentarios de la última red de prueba.

@aed900 está trabajando en un archivo por lotes para extraer recuentos de mensajes de registro/errores significativos de los directorios de nodos de testnet, similar a lo que @Shu ha estado haciendo para crear sus gráficos. También está trabajando con @Chriso para hacer que la herramienta de redes de prueba sea más útil, con la capacidad de iniciar redes de prueba a través de la interfaz de usuario de github próximamente.

@Anselme prácticamente ha terminado de implementar las operaciones PUT y GET y la replicación de registros después de su trabajo anterior en fragmentos y gastos. ¡Grandes noticias ya que establece el escenario de infraestructura para los DBC! También ha estado refactorizando y racionalizando las cajas relacionadas para ayudar con el trabajo futuro aquí.

@bzee está eliminando nuestro código personalizado para administrar las comunicaciones con pares (marcando en la jerga) sin requerir una identificación, reemplazándolo con la funcionalidad nativa libp2p que evita marcar a un par si ya se ha iniciado la mensajería. También cambió nuestras API para no necesitar una ID de compañero.

Junto con @joshuef, Benno también ha estado buscando insertar entradas manualmente en la tabla de enrutamiento en lugar de que suceda automáticamente. Hemos notado que ese proceso a veces inserta basura (ver arriba) con efectos secundarios desafortunados.

@qi_ma está trabajando en varios escenarios sobre quién verifica qué cuando un cliente paga por partes. Como siempre, queremos cargar tanto en el cliente como sea posible, pero no en la medida en que pueda engañar al sistema.

Y @bochaco y @roland están eliminando los blindajes del código DBC e integrándolo en los procesos de pago. Ese es un paso que sentimos que ahora podemos prescindir con el beneficio significativo de simplificar otros procesos (y uno de los beneficios dudosos ya que se conocerá el costo de la tienda, lo que efectivamente revelará grandes franjas de las transacciones en la red).


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.