Respuestas>Más información sobre los nodos de blockchain>Nodo completo frente a nodo de archivo
Nodo completo frente a nodo de archivo
// Tags
Nodo completo frente a nodo de archivoethereum nodo de archivo
En resumen: un nodo completo almacena el estado actual de la cadena de bloques y valida todas las transacciones y bloques nuevos, pero elimina los datos históricos más antiguos para ahorrar espacio de almacenamiento. Un nodo de archivo hace todo lo que hace un nodo completo, además de conservar el historial completo de la cadena desde el bloque génesis en adelante. El tipo que necesites dependerá de si tu aplicación requiere datos actuales o acceso a cualquier estado histórico en cualquier momento.
La explicación sencilla
Todos los nodos de una cadena de bloques descargan y verifican la cadena, pero no todos conservan la misma cantidad de datos. Piensa en ello como la diferencia entre una biblioteca y un archivo. Un nodo completo es como una biblioteca: tiene todos los libros que están actualmente en circulación y puede decirte qué hay en las estanterías en este momento. Un nodo de archivo es como el archivo nacional: tiene todos los libros que se han publicado jamás, todas las ediciones y todos los manuscritos agotados desde el primer día.
En Ethereum, un nodo completo almacena el estado actual de todas las cuentas, saldos y contratos inteligentes, junto con un historial de bloques reciente suficiente para verificar la integridad de la cadena. Por defecto, la mayoría de los clientes de Ethereum mantienen los últimos 128 bloques de datos de estado fácilmente accesibles, lo que abarca aproximadamente los últimos 25 a 30 minutos de actividad de la red. Todo lo anterior a ese periodo se elimina para ahorrar espacio en disco. Técnicamente, el nodo completo aún puede reconstruir estados más antiguos reproduciendo las transacciones desde el bloque génesis, pero ese proceso es extremadamente lento y requiere un gran esfuerzo computacional.
Un nodo de archivo se salta por completo el proceso de poda. Almacena una instantánea del estado completo de la cadena de bloques en cada uno de los bloques desde el inicio de la cadena. Esto significa que puedes consultar el saldo de cualquier monedero, el contenido de cualquier contrato inteligente o el resultado de cualquier transacción en cualquier momento del historial de la cadena, y obtener una respuesta instantánea. No es necesario reproducir la cadena. La contrapartida es el almacenamiento. Un nodo completo Ethereum que ejecute Geth necesita alrededor de 1 TB de espacio en SSD. Un nodo de archivo que ejecute Geth necesita más de 12 TB, y esa cifra aumenta cada día. Erigon, un cliente más eficiente en cuanto a almacenamiento, reduce los requisitos de archivo a aproximadamente 2 TB, pero sigue siendo una cantidad significativamente mayor que la de un nodo completo podado.
¿Cuál es la diferencia entre un nodo completo y un nodo de archivo?
Ambos tipos de nodos validan la cadena y almacenan el estado actual, pero solo un nodo de archivo conserva todas las instantáneas del estado histórico. La tabla siguiente resume las diferencias prácticas. Si aún estás decidiendo qué tipo de nodo utilizar, nuestras descripciones generales sobre qué es un nodo de cadena de bloques y sobre la diferencia entre ejecutar un nodo y utilizar un proveedor de RPC te proporcionarán información útil.
Atributo
Nodo completo
Nodo de archivo
Situación histórica
Se poda tras unos 128 bloques
Procedente de Génesis
Almacenamiento (Ethereum, Geth)
Aproximadamente 1 TB
Más de 12 TB (unos 2 TB en Erigon)
Consultas sobre el historial del estado
Error al devolver un nodo del árbol trie que no existe
Instantáneo a cualquier altura de bloque
Hora de sincronización
De horas a días
De días a semanas
Ideal para
Carteras, aplicaciones descentralizadas, pagos, lecturas en tiempo real
Exploradores, análisis, auditorías, rastreo
Cuándo necesitas un nodo completo
Los nodos completos son los pilares de cualquier red blockchain. Validan cada nuevo bloque, hacen cumplir las reglas de consenso, rechazan las transacciones no válidas y sirven como puntos de referencia de confianza para los clientes ligeros que no almacenan la cadena completa. Si estás desarrollando un monedero, una dapp que solo necesita los saldos actuales y los datos de transacciones recientes, o un servicio que envía transacciones a la red, un nodo completo es suficiente.
La mayoría de las aplicaciones de producción entran en esta categoría. Una plataforma de intercambio descentralizada necesita conocer los saldos actuales de los tokens y ejecutar intercambios en tiempo real. Un procesador de pagos necesita verificar que las transacciones entrantes sean válidas y estén confirmadas. Un monedero necesita mostrar los saldos actuales y transmitir nuevas transacciones. Ninguno de estos casos de uso requiere consultar cuál era el saldo de una cuenta específica hace 500 000 bloques. El estado actual es suficiente, y un nodo completo lo proporciona con unos requisitos de hardware considerablemente menores que los de un nodo de archivo.
Los nodos completos también desempeñan un papel fundamental en el buen funcionamiento de la red. Cuantos más nodos completos independientes haya en funcionamiento en una cadena de bloques, más descentralizada y resistente será la red. Cada nodo completo verifica la cadena de forma independiente, por lo que ningún nodo ni grupo de nodos puede alterar unilateralmente el registro. Ejecutar un nodo completo es la forma más directa de participar en el modelo de seguridad de una cadena de bloques y de respaldarlo.
Cuándo necesitas un nodo de archivo
Los nodos de archivo resultan esenciales cuando tu aplicación depende de datos históricos de la cadena de bloques. Si estás desarrollando un explorador de bloques que permita a los usuarios consultar cualquier transacción o el estado de una cuenta desde cualquier punto del historial de la cadena, necesitas acceso al archivo. Si estás realizando análisis que hacen un seguimiento de cómo han cambiado con el tiempo las tenencias de tokens, los estados de los contratos inteligentes o las métricas de los protocolos DeFi, necesitas acceso al archivo. Si estás creando una bifurcación de mainnet utilizando herramientas de desarrollo como Hardhat o Foundry para simular condiciones pasadas con fines de prueba, necesitas acceso al archivo.
Ciertos escenarios técnicos también requieren nodos de archivo. Llamar a eth_getBalance o eth_call con un número de bloque histórico (cualquier bloque anterior a los últimos 128 en la mayoría de los clientes) requiere datos de archivo. Depurar una transacción fallida de hace semanas mediante el seguimiento de su ejecución requiere datos de archivo. Reconstruir el estado de un protocolo de préstamos en un bloque específico para auditar un evento de liquidación requiere datos de archivo. Sin un nodo de archivo, estas consultas devolverán un error de «nodo trie ausente», ya que los datos han sido eliminados.
El público al que se dirigen los nodos de archivo es más reducido, pero fundamental: plataformas de análisis de cadenas de bloques, investigadores forenses, auditores de protocolos, servicios de indexación como The Graph y cualquier aplicación que necesite responder a preguntas sobre el pasado, y no solo sobre el presente.
¿Por qué fallan las consultas históricas en un nodo completo?
Un nodo completo elimina el estado anterior a, aproximadamente, las últimas 128 bloques, por lo que llamar a eth_getBalance o eth_call en un bloque más antiguo devuelve un error de nodo trie ausente. El registro de la transacción sigue existiendo, pero el estado en ese momento se eliminó para ahorrar espacio. Para recuperarlo se necesita un nodo de archivo o un conjunto de datos almacenado, lo cual constituye la idea fundamental que subyace al acceso a los datos históricos de la cadena de bloques. Esta poda es también la razón por la que la consulta de datos de la cadena de bloques a gran escala suele requerir más de un único nodo completo.
¿Cuánto espacio de almacenamiento necesita cada tipo de nodo?
El almacenamiento es la mayor diferencia práctica, y depende de la cadena y del cliente. La tabla muestra cifras típicas de Ethereum . Estas cifras crecen continuamente, lo que constituye una de las razones por las que muchos equipos consultan el estado histórico a través de un proveedor, tal y como se explica en la sección «Datos de la cadena de bloques en tiempo real frente a datos históricos».
Configuración
Capacidad aproximada de almacenamiento
Notas
Nodo completo (Geth)
Aproximadamente 1 TB
Estado anterior de las ciruelas pasas
Nodo de archivo (Geth)
Más de 12 TB
Guarda todas las instantáneas de estado
Nodo de archivo (Erigon)
Aproximadamente 2 TB
Cliente con mayor eficiencia de almacenamiento
La realidad del almacenamiento y los costes
Gestionar tu propio nodo de archivo supone un compromiso importante. Más allá de los más de 12 TB de almacenamiento que requiere solo Ethereum , necesitas SSD de alto rendimiento (no discos duros) para lograr una velocidad de consulta aceptable, y la sincronización de un nodo de archivo desde cero puede llevar semanas, dependiendo de tu hardware y de tu conexión a Internet. Si tu nodo se desincroniza o se bloquea durante la sincronización inicial, es posible que tengas que empezar de nuevo. Multiplica eso por cada cadena que admita tu aplicación, y la carga de la infraestructura aumentará rápidamente.
Por eso, la mayoría de los desarrolladores y equipos recurren a proveedores de infraestructura en lugar de gestionar ellos mismos los nodos de archivo. Quicknode incluye el acceso a los datos de archivo en todos los planes, lo que significa que puedes consultar cualquier estado histórico en cualquier cadena compatible sin tener que gestionar el almacenamiento subyacente ni el proceso de sincronización. Tanto si necesitas los datos de los últimos 10 minutos como el historial completo desde el génesis, la API Core de Quicknode lo gestiona a través del mismo RPC endpoint. Para los equipos que necesitan una infraestructura dedicada y aislada, los nodos de archivo dedicados de Quicknode Clústeres ofrecen acceso a nodos de archivo privados con acuerdos de nivel de servicio (SLA) que garantizan el tiempo de actividad y un rendimiento predecible.
¿Puede un servidor endpoint servir tanto datos completos como datos de archivo?
Sí. Muchos proveedores redirigen las solicitudes sobre el estado actual a los nodos completos y las solicitudes sobre el estado histórico a los nodos de archivo a través de una única URL, por lo que no es necesario gestionar dos configuraciones. Desde el punto de vista de la aplicación, se trata simplemente de una llamada RPC endpoint que responde tanto a las consultas recientes como a las históricas.
¿Un nodo de archivo es lo mismo que un nodo completo?
No. Un nodo de archivo realiza todas las funciones de un nodo completo y, además, conserva todas las instantáneas históricas del estado desde el génesis. Un nodo completo elimina el estado antiguo para ahorrar espacio en disco, por lo que no puede responder a consultas arbitrarias sobre el estado histórico.
¿Necesito un nodo de archivo para mi dapp?
La mayoría de las dapps, carteras y aplicaciones de pago solo necesitan el estado actual, por lo que basta con un nodo completo. El acceso al archivo es necesario principalmente para los exploradores de bloques, los análisis, las auditorías, mainnet las bifurcaciones y el seguimiento de transacciones históricas.
¿Por qué falla eth_getBalance en un bloque antiguo?
Dado que un nodo completo ha podado el estado de ese bloque, la llamada devuelve un error de nodo trie ausente. La consulta a un nodo de archivo, que conserva todas las instantáneas de estado, resuelve el problema.
¿Qué capacidad de almacenamiento tiene un nodo de archivo de Ethereum ?
Alrededor de 12 TB o más en Geth, frente a aproximadamente 1 TB en un nodo completo. El cliente Erigon, que optimiza el almacenamiento, reduce el espacio de almacenamiento del archivo a unos 2 TB, y todas estas cifras aumentan con el tiempo.
¿Qué relación hay entre los nodos de archivo y la indexación?
Los indexadores suelen leer datos históricos de nodos de archivo o conjuntos de datos retroactivos para crear bases de datos en las que se puedan realizar consultas. Para saber cómo funciona esa capa, consulta qué es la indexación de blockchain.