Mejoras en la Eficiencia de la Sincronización y la Minería y Ajustes de Cuckoo Cycle

Foto por Joel Filipe

Finalizando la versión 0.26.0 realizando algunas tareas de “limpieza”.

La semana pasada, decidimos desviarnos de nuestro calendario de lanzamiento típico, que es un release cada dos semanas, y dedicar un poco más de tiempo a finalizar el Release 0.26.0, nuestro segundo release candidato. Nuestro objetivo es lanzar la versión finalizada esta semana.

Durante la semana pasada, hemos logrado los siguientes hitos:

Pudimos identificar varios escenarios que podrían afectar negativamente el rendimiento de los nodos de æternity:

  • Hemos notado que, al sincronizar varios microbloques en una fila, la base de datos parece ser incapaz de mantenerse al día. El acceso al disco es la parte lenta. Cuando se ejecuta con persist: false, la base de datos es de 5 a 10 veces más rápida. Aún mejor, cuando apagamos la minería, las cosas se ponen aún más rápidas. Para resolver este problema, permitiremos que los nodos se activen solo si están sincronizados con el resto de la red. Para ser más específicos, tenemos N pares configurados para sincronizar. Si estamos muy por detrás de esos nodos, entonces la minería se vuelve inviable. Es importante tener en cuenta que no podemos simplemente “no minar” si un nodo afirma estar muy por delante de los nuestros. Necesitamos alinearlo con los nodos de confianza con los que tenemos contacto (los nodos inalcanzables no son de interés). Esto se puede mitigar consultando a los compañeros de confianza con los que tenemos contacto; si tienen una altura mediana que esté alineada con la nuestra, podemos comenzar con la minería. Si la mediana es cinco debajo de la nuestra, deberíamos detener la minería.
  • Sincronización y minería en paralelo pueden reducir significativamente el rendimiento del nodo. Esto se debe a que la minería mantiene todos los núcleos de CPU ocupados, dejando recursos limitados que el nodo puede dedicar a la tarea de sincronización. La solución es bastante simple: mantener una CPU fuera de la minería. Actualmente, tenemos una marca -t N para establecer las amenazas que usamos para la minería. Nos aseguramos de que, sin importar lo que diga este indicador, nunca usemos una N mayor que la cantidad de núcleos de CPU: 1. Eso significa que tenemos una CPU libre para otras actividades además de la minería.

También hemos realizado varias actualizaciones a nuestra implementación de núcleo de minería Cuckoo Cycle:

  • Actualziamos la implementación de æternity Cuckoo mining con la implementación provista por John Tromp, el inventor del Cuckoo Cycle.
  • Hemos introducido un pequeño ajuste en la implementación de Cuckoo, para que sea más difícil construir ASIC para la blockchain de æternity.
  • Además, hemos corregido una serie de errores e introducido varias características menores. Ve Pivotal Tracker para más detalles.

Finalmente, los desarrolladores de æternity se unieron a reconocidos expertos en criptografía, sistemas distribuidos, teoría de juegos, lenguajes de programación y técnicas de seguridad del sistema al unirse a la Initiative For Cryptocurrencies & Contracts (IC3). Aprende más sobre esta emocionante noticia aquí:

https://blog.aeternity.com/%C3%A6ternity-is-now-a-member-of-ic3-a6b2d1b09134


¿Interesado en æternity? Síguenos:

GitHub | Forum | Reddit | Telegram | Twitter | Facebook | Mail


Leave a Reply

Your email address will not be published. Required fields are marked *