cryptofoundry

Contactar con cryptofoundry

Cuéntanos qué quieres construir o automatizar.

Correo electrónico
[email protected]
ADAMANT Messenger
Abrir en ADAMANT
adamant

ADAMANT Node v0.10.2

ADAMANT blockchain node v0.10.2 es una versión centrada en fiabilidad, recuperación y capacidades de la API para operadores de nodos, delegados, exploradores, mensajeros y desarrolladores de servicios. Ayuda a los nodos a recuperarse de sincronizaciones estancadas y apagados interrumpidos, añade acceso a datos más rico a través de REST y Socket.IO, corrige regresiones en la API de delegados, mejora las consultas en bases de datos grandes y actualiza las dependencias y la guía para operadores. Se recomienda actualizar para mejorar la fiabilidad, el tiempo de recuperación, el mantenimiento de seguridad y las capacidades de la API, pero no es obligatorio para la compatibilidad de red. Esta versión no introduce ninguna bifurcación de consenso y no modifica la serialización de bloques o transacciones, las firmas, el orden de los delegados, las recompensas, las comisiones, las alturas de activación, la temporización de slots ni la reproducción determinista.

Las actualizaciones de la API incluyen una nueva API de cuentas principales con ordenación determinista, paginación, filtrado por isDelegate, metadatos de respuesta y solicitudes de solo recuento. Se restaura la corrección del ranking de delegados y se corrige la API de votantes de delegados para evitar que se filtre a todas las cuentas, añadiendo además filtrado por lista de direcciones. Se mejora la visibilidad del consenso exponiendo el calendario efectivo de activación del consenso y el calendario completo de hitos de recompensa de bloque a través de las APIs de estado. Se añaden las cantidades forjadas por los delegados a las respuestas, se estabiliza la proyección del próximo forjador en los límites de ronda y el filtrado de bloques ahora soporta correctamente consultas con cero transacciones.

La API WebSocket del cliente añade eventos compactos newBlock opcionales y eventos balances/change para balance, unconfirmedBalance o ambos. Las suscripciones de bloques, transacciones y balances ahora están indexadas para evitar escanear clientes no relacionados. Las lecturas de cuentas afectadas se agrupan alrededor de la aplicación/reversión de bloques y los fallos de publicación se aíslan de la mutación del estado de consenso. La entrega sigue siendo de mejor esfuerzo y no duradera, por lo que los clientes deben restaurar las suscripciones tras la reconexión y conciliar el estado crítico a través de REST.

Las reglas de protocolo y consenso permanecen sin cambios, aunque el calendario efectivo de activación y el nombre en clave del consenso activo ahora son observables a través de las APIs públicas de estado. La corrección del próximo forjador solo corrige una proyección de API pública previamente incorrecta en los límites de ronda. Ninguna regla de consenso, altura de activación, bytes de transacción o bloque, IDs, firmas, recompensas, comisiones, liquidación de ronda o comportamiento de reproducción cambian en esta versión.

Las mejoras de fiabilidad y recuperación incluyen un supervisor de sincronización que detecta ejecuciones de sincronización que no progresan en altura de bloque durante cinco minutos, abortando de forma segura la ejecución estancada y permitiendo la recuperación automática. Los rechazos de PostgreSQL ahora se propagan a través de la verificación y carga de bloques en lugar de aparcar silenciosamente las cadenas de callbacks. Se añaden puntos de control de mem-table persistidos con tres slots rotativos verificados con SHA-256 para el estado derivado. La recuperación es a prueba de fallos, restaurando solo los puntos de control que pasan todas las comprobaciones y recurriendo a una reconstrucción determinista completa si la verificación falla. Los bloques canónicos y la reproducción determinista siguen siendo la fuente de verdad.

Las actualizaciones de seguridad incluyen actualizaciones de dependencias dentro de las versiones mayores actuales y la eliminación de una dependencia directa de npm en tiempo de ejecución no utilizada. Se añade una anulación compatible y limitada de grunt a js-yaml, reduciendo el gráfico de dependencias auditadas a cero hallazgos moderados, altos o críticos. No se introducen cambios en el comportamiento de firmas, mnemónicos, validación de transacciones, handshake de pares o protocolos criptográficos.

Las mejoras de red, base de datos y rendimiento incluyen un índice parcial de balance para consultas deterministas de cuentas principales. El índice hash del generador de bloques se reemplaza por un índice B-tree compuesto para evitar escaneos completos de tabla para generadores desconocidos. Las suscripciones indexadas de Socket.IO y las lecturas agrupadas del estado final reducen los escaneos innecesarios de clientes y las consultas de cuentas, y el almacenamiento rotativo de puntos de control permite una recuperación más rápida desde estados derivados inconsistentes.

Para operaciones y herramientas de nodo, los puntos de control de estado en memoria persistidos se habilitan por defecto, manteniendo la alternativa de reconstrucción completa para puntos de control inválidos u obsoletos. Se aclara el apagado graceful, requiriendo esperar a que el procesamiento activo se drene y aparezca el mensaje “Cleaned up successfully” antes de reiniciar. Se documenta la ruta de reconstrucción del ABI nativo de Node para pg-native y libpq, y el requisito de Node.js sigue siendo 22.13.0 o superior.

Las mejoras en la experiencia de desarrollo amplían la cobertura de pruebas para recuperación de sincronización, puntos de control, cuentas, delegados, bloques, APIs de estado y flujos de Socket.IO. Se reorganiza el README y se alinean la documentación complementaria y los cambios de OpenAPI con las APIs actualizadas.

Los operadores que actualicen a esta versión deben usar Node.js 22.13.0 o superior y hacer una copia de seguridad de la base de datos. Detenga el nodo de forma graceful y espere el mensaje “Cleaned up successfully” antes de desplegar v0.10.2. El primer inicio requerirá tiempo y espacio en disco adicionales para completar todas las migraciones, crear el almacenamiento de puntos de control y construir los nuevos índices. Después del inicio, verifique el estado del nodo, el progreso de sincronización, el procesamiento de bloques en vivo y cualquier capacidad REST o Socket.IO utilizada por sus servicios.

Cambios que rompen la compatibilidad

No hay cambios que rompan el protocolo, el consenso, el formato de transmisión o el contrato de API en v0.10.2. Los nuevos campos REST y las suscripciones de Socket.IO son aditivos y compatibles hacia atrás. Se elimina el interruptor de configuración legacy topAccounts y el endpoint GET /api/accounts/top ahora se registra de forma consistente en cada nodo. La versión añade migraciones de base de datos solo hacia adelante, lo que significa que el primer inicio después de la actualización puede necesitar tiempo y espacio en disco adicionales para crear el almacenamiento de puntos de control y los índices de cuentas y bloques.