Actualización de Safe Network Dev 🇪🇸 28 de enero de 2021

Esta es una traducción automática. El original en inglés está aquí: Safe Network Dev Update - January 28, 2021

Resumen

Estas son algunas de las cosas principales a destacar desde la última actualización de desarrollo:

  • Hoy es el Día de la privacidad de los datos (también conocido como Día de la protección de datos en algunas partes). Alentamos a todos en nuestra comunidad, así como a todos los asociados con otros proyectos con objetivos similares, a esforzarse más que nunca para alcanzar esos objetivos compartidos. Todos los días nos acercamos un paso más. :raised_hands:
  • El Rewards PR ahora está siendo revisado y probado por pares - ¡ver cómo se ganan las monedas está muy cerca!
  • Finalmente logramos y arreglamos el error de bloqueo de conexiones que nos había estado evadiendo durante algunas semanas.
  • La depuración del problema de las conexiones colgadas ha resaltado algunas áreas de mejora para que sea un proceso mucho más simple si algo similar surge nuevamente y, por lo tanto, se está trabajando para actualizar qp2p y simplificar su API.
  • Con este PR ahora combinado, la CLI ahora es capaz de verificar el saldo de su propia SafeKey.
  • Se han publicado nuevas versiones de sn_authd (v0.0.15), CLI (v0.17.2) y sn_node (v0.25.39), con CLI y authd ahora compilados usando MUSL para Linux.

Aún no hay testnet público …

Hoy estábamos realmente indecisos mientras consideramos si continuar arreglando mensajes, recompensas y hacer algunas mejoras de qp2p (todas descritas con más detalle más abajo), o poner una red de prueba pública con todo lo que teníamos hasta ahora. Decidimos que la decisión correcta era continuar con las correcciones y las mejoras en las que nos encontramos actualmente, y así mantener una red de prueba pública por lo que creemos que serán unos días más. Decidimos que habría demasiadas distracciones para el equipo al configurar y dar soporte a la red de prueba, además de que las versiones “* podrían *” hubieran sido menos estables y más difíciles de depurar de lo que nos gustaría si faltaran las correcciones y mejoras de mensajería y qp2p. Retrasarlo también nos da la oportunidad de terminar e incluir el trabajo de flujo de recompensas que se detalla a continuación (ganar monedas: guiño :slight_smile: en cualquier testnet público.

Estamos trabajando en una ruta de corrección / mejora aquí y está funcionando bien con el equipo en una racha en una mentalidad de una pista, por lo que dejar el lanzamiento de nuevo por ahora y tomarse unos días más para ordenar algunas partes más se siente bien. Hay grandes compromisos y participación de la comunidad y todo ayuda, hay un impulso definido en la dirección correcta.

Algunas noticias generales adicionales esta semana: hemos contratado a un pasante de los Institutos Indios de Tecnología que se especializa en criptografía. La intención es que comenzará la próxima semana e inmediatamente comenzará a auditar, hurgar y, en general, verificar la seguridad en la mayor parte del código base posible. Aumentaremos ese esfuerzo sustancialmente durante el próximo corto tiempo a medida que entremos en el modo de lanzamiento completo.

Cliente seguro, nodos y qp2p

Plan del proyecto Safe Network Transfers
Plan de proyecto de cliente seguro
Plan de proyecto de nodo de red segura

Recompensas

El trabajo con recompensas ha continuado con una simplificación del inicio de la sección en sn_node, que ahora requiere que exista el número mínimo de Ancianos en la sección, antes de instanciar el actor distribuido, también conocido como actor de sección, responsable de los fondos de la sección.

Con eso en su lugar, ahora hemos llegado al inicio de los pagos de recompensas. El borrador de PR se ha convertido en un PR adecuado y se está probando desde un P.O.V. antes de fusionar este trabajo con el maestro una vez que las pruebas pasen.
El seguimiento será la finalización del pago de la recompensa, momento en el que la función de agricultura está más o menos lista para ser incluida en una red de prueba.

Relaciones públicas de la comunidad

Hemos fusionado un par de PR esta semana, @mav ha enviado uno que agrega algunas funciones de cliente faltantes, y otro que mejora la eficiencia del llamada sequence.in_range.

La conexión se cuelga

Continuamos depurando nuestros fallos de conexión la semana pasada y finalmente hemos encontrado la causa raíz allí. Qp2p estaba descartando por error las conexiones que habían devuelto un error. En este caso, el error era válido y no justificaba la interrupción de la conexión del grupo. Con esta solución ahora fusionada ya no vemos tiempos de espera prolongados debido a conexiones perdidas, lo cual se siente muy bien :aliviado:. ¡El rumor es que @joshuef tenía una cabellera llena antes de que surgiera este error!

El nodo maestro / cliente es mucho más estable ahora. Estamos cavando un poco máserrores ocasionales que surgen como parte del almacenamiento de blobs, donde parece que no estamos almacenando el blob y / o los metadatos relacionados con el blob.

API qp2p más simple

El problema reciente con la conexión se cuelga en qp2p nos reveló que el usuario de la API asumía mucha responsabilidad, como mantener las conexiones y aferrarse a los oyentes y transmisiones en las que los mensajes son entrantes. Esto hizo que la depuración fuera relativamente compleja, ya que el manejo de la conexión era parte del enrutamiento y las cajas de clientes que están repletas de funciones a su manera. Al mover el mantenimiento de los componentes de red a la caja qp2p, podemos aislar y probar múltiples escenarios y asegurarnos de que toda la conexión y el manejo de mensajes se realice correctamente. En última instancia, esto también simplifica la API qp2p, por lo que es beneficioso para todos. Hemos comenzado esta refactorización en qp2p como una prueba de concepto para proporcionar una API asíncrona simple que el enrutamiento y los clientes pueden usar para comunicaciones p2p.

API y CLI

El repositorio de sn_api ha visto mucha actividad por parte de los miembros de la comunidad esta semana, lo cual es una excelente noticia, especialmente porque estas aplicaciones están todas orientadas al usuario y, por lo tanto, más información recibimos de usuarios finales reales, mejor podremos mejorarlos, ¡incluso mejor si la entrada es código real!

Hay una nueva característica en la que está trabajando @latch para introducir un comando reset en la CLI, que puede permitirnos limpiar todos los datos y archivos de configuración que las aplicaciones CLI, sn_authd y sn_node almacenan localmente, manteniendo los binarios reales de la aplicación. intacto. Cualquier persona interesada en ayudar, por favor únase a las discusiones y revise en: https://forum.safedev.org/t/wip-feat-cli-implements-safe-reset-subcommand/2939/6.

Algunas mejoras enviadas por @mav a nuestra API también se han combinado, hubo algunos errores tipográficos en los mensajes de error que se han corregido, así como agregar validaciones de nombres de NRS para rechazar caracteres de barra.

@Scorch (https://github.com/maidsafe/sn_api/pull/690) está desarrollando algunas aplicaciones de ejemplo qjsonrpc que ayudarán a los usuarios a comprender cómo se puede utilizar la API qjsonrpc y cómo las aplicaciones que necesitan JSON-RPC sobre el protocolo QUIC. Alguna información de contexto y contexto está muy bien detallada en esta publicación para cualquier persona interesada en comprender más sobre este esfuerzo .

Con este PR ahora combinado, la CLI ahora también es capaz de verificar el saldo de su propia SafeKey, es decir, el saldo que se le transfirió cuando se autorizó con authd, que es el que usa CLI para pagar los costos de todas las operaciones realizadas por / con él. Por lo tanto, al invocar $ safe keys balance sin proporcionar ninguna clave secreta, ahora revisa el saldo actual del par de claves / SafeKey de la CLI.

Se han publicado nuevas versiones de sn_authd (v0.0.15), CLI (v0.17.2) y sn_node (v0.25.39), para aquellos que han estado jugando con ellos localmente. Dado que los binarios de CLI y authd ahora se compilan usando MUSL para plataformas Linux, si está en Linux asegúrese de instalarlos en lugar de intentar actualizarlos usando el CLI puede encontrar instrucciones completas para instalarlos en la Guía del usuario de CLI.

BRB - Difusión confiable bizantina

Esta semana hicimos algunos pulidos de los errores de validación devueltos por BRB DataTypes y también agregamos minuciosos comentarios de documentos a todas las cajas BRB. Estos cambios deberían facilitarle las cosas a cualquiera que desee utilizar las bibliotecas.

Hubo bastante discusión de diseño sobre la integración de BLS Distributed Key Generation (DKG) en BRB. La esperanza era que DKG pudiera aprovechar las operaciones dinámicas de membresía de BRB (unirse / salir). Sin embargo, finalmente determinamos que esto no funciona ya que DKG requiere una participación del 100% y debe realizarse como un proceso separado después de que se establezca el grupo de votación de BRB.

Enrutamiento

Plan del proyecto

Esta semana fue mayormente tranquila en términos de cambios de código reales en el enrutamiento porque una parte del equipo estaba ocupada discutiendo los algoritmos BRB / DKG y la otra estaba ayudando a rastrear los problemas con las conexiones del cliente. También dejamos el trabajo de mejora en el manejo de errores en espera, ya que decidimos que hay problemas más urgentes que abordar primero.

Sin embargo, fusionamos un pequeño PR que mejora el manejo de eventos. Tuvimos eventos separados para cuando los ancianos de la sección cambian y para cuando el nodo actual es promovido o degradado. Resulta que estas cosas suceden al mismo tiempo y manejar los eventos por separado estaba causando cierta confusión en las capas superiores sobre el orden en que deberían manejarse. Lo resolvimos fusionando estos eventos en un solo evento, eliminando así la confusión.

WTambién comenzamos trabajar para unificar el manejo de bootstrap en nodos y clientes. Resulta que la lógica para iniciarlos es exactamente la misma, pero se implementó de dos formas ligeramente diferentes en dos lugares diferentes. Este trabajo eliminará esta duplicación dando como resultado un código más simple. Esperamos terminarlo a principios de la próxima semana.

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.