Skip to main content
Un nodo que se une a la red tiene que responder a dos preguntas: cómo llego a donde está la cadena ahora, y cómo me mantengo ahí. La sincronización de estado responde a las dos, y el compromiso entre ambas es explícito en lugar de estar escondido.

Dos modos de ponerse al día

El arranque inicial (llegar a la versión actual partiendo de cero) se puede hacer de dos formas fundamentalmente distintas. Reejecutar el historial. Empezar en el génesis y avanzar, ya sea ejecutando otra vez cada transacción o aplicando las salidas que la ejecución ya produjo. El resultado es un nodo que tiene el historial completo: cada versión, cada prueba, cada transacción. También es lento, y se vuelve más lento cada día que la cadena funciona. Descargar el estado actual. Saltarse el historial y traer las claves y los valores de estado tal como están en la última versión, verificados contra la raíz confirmada. El nodo se pone al día en una fracción del tiempo, y no sabe nada de cómo la cadena llegó hasta ahí.
Un nodo nuevo
Modo de arranque
Reejecutar historialreejecutar o aplicar salidas, desde el génesislento, y más lento cada día que pasa
Descargar estado actualclaves y valores en la última versión, verificados contra la raíz confirmadaal día en una fracción del tiempo
Versión actualy sincronización continua
Las dos rutas no son equivalentesUn nodo que descargó el estado actual no puede servir consultas históricas ni decir cómo llegó una posición hasta ahí. Quien alimenta a un indexador o a una auditoría necesita el historial que se saltó.
Dentro de la ruta de reejecución hay una elección más: volver a ejecutar las transacciones, aplicar las salidas almacenadas o dejar que el nodo escoja en cada punto lo que sea más rápido. Volver a ejecutar es la comprobación más fuerte, porque reproduce el resultado en lugar de fiarse de uno registrado; aplicar salidas es más rápido. El modo mixto existe porque la respuesta correcta cambia según lo atrasado que vaya el nodo.
Esta es una decisión operativa, no un valor por defecto que aceptar sin pensarlo. Un nodo que descargó el estado actual no puede servir consultas históricas ni responder preguntas sobre cómo llegó una posición a donde está: no tiene historial que leer. Un nodo que sirve a un indexador o a un proceso de auditoría necesita el historial que se saltó.

Mantenerse al día

Una vez en la versión actual, un nodo se mantiene al día consumiendo los bloques confirmados según llegan, de nuevo ejecutando las transacciones o aplicando las salidas, con el mismo compromiso entre fuerza de verificación y velocidad. La diferencia con el arranque inicial es que la distancia es pequeña y constante en lugar de grande y decreciente. Un nodo que se atrasa lo suficiente vuelve a entrar en la ruta de arranque inicial en vez de intentar cerrar una distancia arbitraria de forma incremental.

Cómo se mueven los datos

La sincronización no es un nodo pidiéndole a otro un rango de bloques. Se separa en capas para que ningún par concreto sea una dependencia y ningún fallo aislado detenga el progreso. La consecuencia que conviene entender: un nodo que sincroniza no está confiando en un par. Cada segmento llega con una prueba contra una raíz que la red confirmó, y a un par que sirve algo inconsistente se le rechaza en vez de creerle. La elección de pares es una decisión de rendimiento, no una decisión de confianza.

Verificación

En la sincronización de estado nada se acepta por quién lo haya enviado. Los valores de estado se verifican contra la raíz de estado confirmada. Las transacciones y las salidas se verifican contra los acumuladores. Un nodo que termina el arranque inicial tiene un estado cuya raíz coincide con lo que firmó un quórum de validadores, y eso es lo que hace segura la vía rápida: descargar el estado actual se salta el historial, pero no se salta la verificación.

Qué leer a continuación

Almacenamiento y pruebas

Las estructuras que hacen verificable la sincronización.

Ejecutar un nodo

Los roles de nodo y cómo solicitar información para operar uno.

Topología de la red

Con qué nivel de nodo habla un par que sincroniza.

Indexador

Qué responde el historial que el estado actual no puede responder.