Reducciones de tiempo en los nodos de Horizen y los cambios en el rastreador de nodos.
Querida comunidad Horizen,
Con el objetivo de fortalecer nuestra red de nodos y hacerla más resistente, nos gustaría anunciar dos cambios importantes:
- Cambios en los tiempos de reto de Nodos
- Rastreador de Nodos v0.4.0
Cambios En El Tiempo De Reto De Nodos
Empezando en Febrero 18, el tiempo de reto será reducido en los nodos seguros y en los super nodos. Los nuevos tiempos serán:
- Nodos seguros: 200 segundos
- Super Nodos: 100 segundos
El nuevo diseño de circuito dividido (Groth16) implementado con ZEN 2.0.16, como resultado de la última actualización de red obligatoria, redujo el tiempo necesario para ejecutar una transacción protegida y por lo tanto, un desafío de nodo, en alrededor del 50%.
La nueva implementación también puede escalar con CPUs de varios núcleos mucho mejor, lo que significa que algunas configuraciones de nodo verán mejoras aún mayores.
Una red de nodos sólida representa una parte esencial en el soporte del ecosistema ZEN. Con el fin de mantener las configuraciones de hardware con el mismo nivel de robustez que antes, decidimos reducir el tiempo permitido para que los nodos seguros y super nodos completen la ejecución del desafío.
Cambios En El Rastreador De Nodos V0.4.0
El último rastreador de nodos versión 0.4.0 tiene múltiples cambios y mejoras que ayudan con la co nectividad y el tiempo en línea.
Todos los nodos seguros y super nodos deberán ser actualizados a la nueva versión. La Versión 0.4.0 será implementada (al ganar elegibilidad) empezando en 1ero de marzo.
Las instrucciones generales para actualizar un nodo se pueden encontrar aquí: github readme
Las instrucciones detalladas se encuentran en (texto en inglés) Maintenance Guide: Upgrading Tracker Software (systemd)
Lista Resumida:
- Agregar un retraso aleatorio antes de volverse a conectar.
- Eliminar el socket reinit en la reconexión.
- Agregar el drop socket y conectar a petición del servidor.
- Incluir región en move home.
- Eliminar peers tls en la comprobación de estado.
- Añadir tls peers a petición del servidor
- Añadir el “stat ack timeout” para dar reset al socket después de un intento aleatorio
- Agregar un temporizador de reset y otras configuraciones del servidor de rastreo.
- Agregar un temporizador de guardado y otras configuraciones del servidor.
- Agregar una revisión de multiples direcciones z para usar la de mayor balance.
- Añadir una revisión de latencia de red basada en el nivel de ping/pong del socket.
- Añadir un ‘checkIn’ (ping/pong) periódico a nivel aplicación.
- Añadir el error check y un temporizador para reintentar al fallar en obtener el balance de una dirección z
- Guardar las configuraciones de aplicación localmente y permitir actualizaciones del servidor.
- Agregar la familia del ipv6 lookup para la solución del dns del ipv6 (créditos a emminer – ¡Gracias!)
Detalles:
Agregar un retraso aleatorio antes de volverse a conectar- cuando se desconecta, el rastreador aleatoriza la cantidad de tiempo antes de intentarse conectar. Esta distribución vuelve a conectar los nodos en un período de tiempo mucho más amplio (por defecto, aproximadamente una ventana de un minuto), lo cual es útil si se reinicia un servidor del rastreador. Esto utiliza características de socket.io nativas.
Eliminar el socket reinit en la reconexión- se descubrió que reiniciar los objetos internos no era necesario. Esto ahora solo registra el evento
Agregar el drop socket y conectar a petición del servidor- un comando desde el rastreador del servidor puede ser enviado para resetear la conexión socket.io
Incluir región en move home- Si un nodo fue movido entre regiones , tal vez se regresó a su región original si la configuración se corrió de nuevo.
Eliminar peers tls en la comprobación de estado- Ya no son usadas para los nodos seguros
Añadir tls peers a petición del servidor- el servidor pudiera solicitar la lista de peers para solucionar los problemas del nodo.
Añadir el “stat ack timeout” para dar reset al socket después de un intento aleatorio- Si el servidor no responde a la revisión de estado (stat check) (6min), el rastreador enviara el stat check en un tiempo aleatorio de espera. Si no hay respuesta del servidor después de 3 intentos, la conexión será reseteada. Si después del reinicio sigue sin haber respuesta, el intervalo de reintento incrementará al máximo.(default 2min)
Agregar un temporizador de reset y otras configuraciones del servidor de rastreo- Ciertas configuraciones pueden ser manejadas desde el rastreador del servidor. .
Agregar un temporizador de guardado y otras configuraciones del servidor.- Ciertas configuraciones pueden ser guardadas en la carpeta local del rastreador de nodos. Los timestamps para cada sección son enviados a cada statcheck y se realiza una comparación con el servidor. Si los valores del servidor son nuevos, estos son enviados al rastreador de nodos. Los tiempos de recorrido son reiniciados (conCheck and statCheck)
Agregar una revisión de multiples direcciones z para usar la de mayor balance- Si una o más direcciones zaddress están disponibles para los retos, la dirección con los balances más altos será usada.
Añadir un ‘checkIn’ (ping/pong) periódico a nivel aplicación.- la verificación de la conexión existente (ocurre cada 30 s) que inicia el temporizador de conmutación por error (failover) si el servidor es desconectado ha sido actualizado para también enviar una solicitud sobre el socket hacia el servidor, Cuenta las respuestas falladas en un lapso de respuesta de 5 segundos y si más de 2 fallan dentro de este marco de tiempo, la comunicación se resetea. Esta característica esta apagada por predeterminado y se activará desde el rastreador de nodos en un futuro cercano.
Añadir el error check y un temporizador para reintentar al fallar en obtener el balance de una dirección z- Si hay un‘ERROR zend get addrwithbalance’ , un temporizador ahora está configurado para volver a intentarlo hasta que tenga éxito.
Agregar la familia del ipv6 lookup para la solución del dns del ipv6- PR de community (emminer) para incluir el ‘family: 6’ en los parámetros para dns.lookup cuando solo use ipv6.