Actualizaci贸n de Safe Network Dev 馃嚜馃嚫 08 septiembre 2022

Esta es una traducci贸n autom谩tica. El original en ingl茅s est谩 aqu铆: Update 08 September, 2022

Configura una red de prueba, carga algunos datos, algo sale mal. 驴Qu茅 pas贸 y d贸nde ocurri贸 exactamente? Rastrear d贸nde surgen los problemas en las redes es un desaf铆o complicado, particularmente en las redes descentralizadas donde cada nodo es un individuo. Esta semana, @davidrusu nos gu铆a a trav茅s de statemaps, una herramienta de diagn贸stico que nos muestra exactamente en qu茅 estado se encuentra cada nodo en cualquier momento. Es una visi贸n divina de la red que, sin duda, har谩 que la eliminaci贸n de errores sea mucho m谩s f谩cil.

Gracias como siempre a todos los que experimentan con redes locales y redes de comunicaci贸n. Estamos razonablemente convencidos de que algunos de los problemas con la carga de archivos grandes est谩n en la capa API, y lo estamos analizando ahora.

Progreso general

@bochaco contin煤a refinando el proceso de informe de errores para brindar mensajes m谩s significativos a los clientes.

@anselme est谩 analizando AE y chismes y c贸mo uno puede ser un respaldo para el otro en caso de fallas en la comunicaci贸n.

En cuanto a la documentaci贸n, @jimcollinson est谩 finalizando el documento t茅cnico principal requerido por la autoridad suiza FINMA. Es una descripci贸n general en lugar de una inmersi贸n t茅cnica profunda, por lo que probablemente no sea nada nuevo para la mayor铆a de las personas aqu铆, pero no obstante, marque las casillas de verificaci贸n legales listas para el lanzamiento.

@Chriso y @bochaco est谩n arreglando lo que sucede cuando se env铆a un DBC para su reemisi贸n, y al verificar ese proceso se encontr贸 que algunas pruebas gastadas se firmaron con una clave de secci贸n que la secci贸n que procesa la solicitud de reemisi贸n no conoce.

Mapas de estado

En un sistema altamente concurrente, puede ser muy dif铆cil ver lo que est谩 pasando. Los nodos se mueven a trav茅s de estados incre铆blemente r谩pido y tratar de correlacionar mensajes entre nodos puede parecer como si estuviera tratando de recuperar un documento triturado.

Statemaps nos permite recrear una imagen parcial de lo que sucedi贸 en una red despu茅s del hecho. Han sido una herramienta muy 煤til para comprender d贸nde pasan el tiempo los nodos.

Hemos instrumentado la base de c贸digo sn_node para registrar cuando ingresa a un estado y nuevamente cuando sale de un estado. Luego podemos procesar esos registros para generar un mapa de estado como el siguiente:

Cada fila corresponde a un nodo, con el tiempo en el eje x. Los rect谩ngulos en cada fila corresponden al estado en el que se encontraba el nodo durante ese intervalo de tiempo.

A cada estado se le asigna un color:

Al analizar este mapa de estado, puede comenzar a comprender lo que sucedi贸 aqu铆, etiquetemos las diversas fases y hablemos de ellas.

  1. Podemos ver que el mapa comienza con 6 Ancianos votando por la membres铆a (salm贸n)
  2. Una vez que se completa la membres铆a, inmediatamente inician DKG (naranja). Esto deber铆a ser una pista de que habr谩 un cambio de Ancianos.
  3. Mientras tanto, vemos que un s茅ptimo nodo se conecta. Recibe una actualizaci贸n de AntiEntropy (azul claro) que le informa que ha sido aceptado en la red y luego se une al DKG (naranja). Esto sugerir铆a que este nuevo nodo que acaba de unirse est谩 siendo promovido al estado de Anciano y que es por eso que los 6 Ancianos originales comenzaron DKG.
  4. Ahora vemos que DKG se ha estancado, esto se debe a que DKG requiere una participaci贸n total para completarse, los 6 nodos existentes han contribuido con sus partes, pero necesitan que el 7潞 nodo aporte su parte para completar la clave de secci贸n.
  5. Eventualmente, el s茅ptimo nodo se pone al d铆a y se completa DKG. El siguiente paso es hacer que los antiguos 6 Ancianos verifiquen que la nueva clave de secci贸n sea v谩lida y pasar el control (azul oscuro) a los nuevos 7 Ancianos.
  6. Despu茅s de que se completa el traspaso, vemos que se env铆a una r谩faga de antientrop铆a, presumiblemente con el nuevo SAP, lo que demuestra que los nuevos ancianos han tomado el control de la secci贸n.

Hemos desarrollado algunas herramientas en torno a estos mapas de estado, el L脡AME de Safe Network tiene instrucciones para generar el suyo propio.

Para facilitar el desarrollo, tambi茅n hemos configurado CI para generar y cargar autom谩ticamente mapas de estado tambi茅n para cada PR.

Esperamos que estos mapas te resulten esclarecedores, 隆feliz diversi贸n!


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.