Esta es una traducción automática. El original en inglés está aquí: Update 19 October, 2023
Es fantástico haber llegado a la etapa en la que, del lado del cliente, al menos podemos consultar el foro, solicitar registros cuando algo no funciona y solucionarlo sobre la marcha. Por ejemplo, el problema de la falta de fragmentos al descargar archivos grandes. En ese caso, se trataba de agrupar fragmentos por lotes al descargar.
De hecho, ha sido una buena semana para correcciones, muchas de ellas relacionadas con nuestras pruebas e integración internas, pero algunas más visibles también. Uno que acaba de aparecer se ocupa de un problema en el que los clientes pagaban de más por las cargas. Cada vez que se requiere un pago, el cliente (actualmente) paga a todos los nodos del grupo cercano en lugar de solo al que tiene la tasa más alta. Entonces, si bien necesitamos mejorar esto (para no pagar de más), los nodos en realidad simplemente estaban descartando el dinero gratis que les enviaban si ya tenían los datos. Ahora toman los tokens que se les envían, antes de verificar si realmente son suficientes (la transferencia de tokens no se puede revertir de todos modos).
Al investigar un registro de cliente de @Toivo, que mostraba al cliente realizando un bucle en las cargas de fragmentos, Qi encontró que la causa eran las conexiones de red perdidas y las tablas de enrutamiento. En este caso, puede ser mejor simplemente cancelar el cliente y hacer que comience de nuevo.
También ha sido una gran semana para la colaboración externa. Tuvimos una reunión productiva con Max Inden de IPFS, quien es uno de los principales chicos de Rust libp2p
, y nos explicó cómo usamos Kademlia/Libp2p, que es bastante diferente a cómo lo usa IPFS. En IPFS se trata de rastrear quién almacena los datos en lugar de administrar los datos en sí. Como tal, está diseñado para transferencias de datos pequeñas, mientras que Safe está diseñado para transferencias grandes, por lo que tenemos nuestro propio mecanismo de replicación. De todos modos, fue un buen encuentro de mentes y esperamos continuar la colaboración y ver cómo podemos contribuir en sentido ascendente, siendo AutoNat un objetivo principal.
Gracias a todos los que han estado detectando anomalías y enviando registros. Muy apreciado. A veces es difícil reproducir errores por nuestra parte, por lo que pueden ser muy útiles. Josh, Qi y Roland los han estado examinando y nos ayudaron a solucionar varios fallos esta semana.
Hemos rastreado la causa raíz de la pérdida de memoria principal en los nodos que “vuelven a marcar” cuando notan que uno está perdido o aparentemente detrás de una NAT. Este proceso no finaliza como debería, por lo que eliminamos parte del código relacionado y observamos una caída decente en la memoria. Estamos rastreando el efecto de hacerlo ahora, además de observar si hay otras áreas que podríamos mejorar aquí.
HeapNet2 está demostrando ser una bestia robusta. Apreciamos el comentario de @neik “el silencio en el oído es ensordecedor significa que cada vez encontramos menos de qué quejarnos jajaja "
Ahora que las cargas y descargas de fragmentos parecen estables, podemos centrarnos en los registros, pagar a la Fundación y optimizar la replicación.
Esperamos que hayas notado que los chicos han estado en el foro esta semana. Si ve algo mal, envíenos un mensaje de texto. La próxima red de prueba debería centrarse en los pagos de regalías, simplemente estamos trabajando en una nueva configuración para verificar las cosas allí.
Progreso general
@anselme ha estado haciendo que los pagos sean más rápidos y eficientes, al convertir CashNotes (pesados) en transferencias (ligeras) lo antes posible en el código para evitar lidiar con grandes CashNotes que deben leerse desde el disco. Esto da como resultado una menor huella de memoria ya que las transferencias son mucho más ligeras que CashNotes y mucho menos E/S de disco.
También solucionó un posible error de posible doble gasto, al convertir cualquier división en un error, con la excepción de los registros para los cuales, como CRDT, se manejan divisiones. lado del cliente.
@roland ha abierto un PR para permitir a los usuarios configurar Open Metrics puerto del servidor. También está analizando la autocuración mediante consultas y posibles ángulos de almacenamiento en caché.
@chriso ha creado una nueva caja llamada sn_releases
para exponer un repositorio para descargar y extraer nuestros archivos binarios de lanzamiento. También hizo un PR para una caja oxidada para administrar servicios del sistema. Este trabajo abrirá la puerta a una herramienta para gestionar nodos (para permitir actualizaciones automáticas).
Recién salido de su victoria al abordar el misterio de los fragmentos perdidos en la descarga y resolver el enigma del bucle del cliente, @qi_ma ahora está investigando un enigma similar: el síndrome del nodo sin trozos. Tiene algunas pistas interesantes sobre el sesgo de “PeerId”, que bien puede explicar algunas distribuciones desiguales de nodos/fragmentos/recompensas. :hombre_detective:
@bochaco prácticamente ha completado los pagos de regalías de la red, incluida la validación de los montos pagados por dirección de nodo. Esto está listo ahora al menos como el primer paso para que los clientes realicen el pago de regalías netas, los nodos lo verifiquen y los nodos envíen notificaciones a través de GossipSub. Todos los nodos están suscritos de forma predeterminada al tema GossipSub, pero solo se pagan las regalías.No se envían notificaciones sobre el tema.
@joshuef ha estado analizando cuántos nodos se deben pagar por mantener un fragmento. En teoría, solo podría ser uno, lo que tiene la enorme ventaja de la simplicidad, pero podría ser riesgoso si el nodo deja de funcionar antes de que pueda ocurrir la replicación. @bzee está realizando pruebas en ese escenario. Josh y @dirvine también están trabajando en cómo identificar y expulsar/ignorar nodos defectuosos.
Enlaces útiles
- Sitio web de red segura
- Introducción a la red segura
- Aspectos básicos de la red
- Hoja de ruta
- Glosario
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.