¿Cómo aplican los clientes SPV un nuevo bloque?

Los usuarios de SPV (peso ligero) no tienen cadena. (Bueno, algunos usuarios de SPV tienen una fracción de la cadena completa, pero algunos usuarios de SPV solo tienen encabezados de bloque. ¿Estoy en lo correcto?)

Si un minero crea un bloque y un usuario de SPV recibe este bloque, debe agregar este bloque a la cadena de bloques existente, pero este usuario de SPV no tiene la cadena de bloques en este caso, entonces, ¿qué hace el usuario de SPV con un bloque cuando? el lo recibe?

¿Simplemente adjuntan su encabezado de bloque a lo que tiene el usuario de SPV en ese momento?

Respuestas (2)

Los usuarios de SPV (peso ligero) no tienen cadena. (Bueno, algunos usuarios de SPV tienen una fracción de la cadena completa, pero algunos usuarios de SPV solo tienen encabezados de bloque. ¿Estoy en lo correcto?)

Los clientes de SPV solo realizan un seguimiento de los encabezados de los bloques, por lo general confían en otros nodos para realizar la verificación de la validez del bloque y no conservan ningún bloque completo. Esto puede parecer similar a un nodo podado que solo conserva una parte de los bloques más recientes, pero es completamente diferente. Los nodos completos necesitan los bloques completos para actualizar el estado de su libro mayor (el Conjunto UTXO), los nodos podados verifican completamente cada bloque y luego descartan parte de la cadena original. Esto solo significa que no pueden servir todos los bloques a otros nodos y que tienen que descargar los bloques nuevamente si se reindexan, pero ellos mismos siempre han verificado la cadena de bloques completa. Los nodos SPV solo rastrean los encabezados de los bloques y, cuando están interesados ​​en un bloque, lo consumen por completo. Solo entonces hacen algunos controles de cordura, como verificar que el bloque esté bien formado. De todos modos, eso'

Si un minero crea un bloque y un usuario de SPV recibe este bloque, debe agregar este bloque a la cadena de bloques existente, pero este usuario de SPV no tiene la cadena de bloques en este caso, entonces, ¿qué hace el usuario de SPV con un bloque cuando? el lo recibe?

Los clientes de SPV no realizan un seguimiento del libro mayor completo, solo realizan un seguimiento del estado de las transacciones que crearon o que se les envió. Los clientes de SPV utilizan uno de varios métodos para averiguar si un bloque incluye transacciones interesantes, como delegar esto completamente a terceros (por ejemplo, servicio de billetera, servidor Electrum), solicitar a los pares de nodo completo que ejecuten el filtro de floración BIP37 del cliente de SPV en cualquier bloque nuevo . , o buscando los filtros de bloque compacto BIP158 bastante nuevos . Una vez que el cliente de SPV ha identificado que está interesado en un bloque, solicita el bloque completo para obtener los datos reales de la transacción o solicita la sucursal de Merkle y la transacción.

¿Simplemente adjuntan su encabezado de bloque a lo que tiene el usuario de SPV en ese momento?

Sí, los clientes de SPV mantienen una cadena de todos los encabezados de bloque, y para cualquier transacción que les interese, mantienen la rama de Merkle que vincula la transacción al bloque.

SPV puede entenderse bien si observa el propósito de tener SPV. SPV se crea para la verificación rápida de una transacción en la cadena de bloques. Esto es útil cuando un usuario solo está interesado en saber si una transacción relacionada con él/ella está incrustada en la cadena de bloques y cuánto poder de cómputo ha gastado la comunidad después de eso.

Cada bloque en blockchain tiene un tamaño de 1 MB, mientras que el tamaño del encabezado del bloque es de solo 80 bytes. El tamaño total de todo el encabezado del bloque hasta la fecha sigue siendo de unos pocos MBytes que se pueden almacenar fácilmente en un dispositivo móvil.

En un bloque, las transacciones se rastrean en el árbol de Merkle, donde se puede verificar la existencia de una transacción en tiempo O (log n) si se conoce la ruta a la transacción. Entonces, siempre que un cliente SPV esté interesado en conocer la existencia de una transacción, puede descargar el bloque correspondiente de un nodo completo y luego verificarlo.

Ahora yendo a tu pregunta

Bueno, algunos usuarios de SPV tienen una fracción de la cadena completa, pero algunos usuarios de SPV solo tienen encabezados de bloque

Depende de si un SPV ha solicitado el encabezado de bloque actualizado de un nodo completo o no.

¿Qué hace el usuario de SPV con un bloque cuando recibe esto?

Idealmente, debería propagar el bloque a los nodos a los que está conectado, pero un SPV puede simplemente decidir descartarlo y no hacer nada.

¿Simplemente adjunte su encabezado de bloque a lo que tiene el usuario de SPV en ese momento?

No se puede hacer porque el encabezado del bloque del bloque anterior no coincidirá

En realidad, un bloque puede tener más de 1 MB desde BIP141. bitcoin.stackexchange.com/questions/69468/…