Intercambio de bitcoins Intercambio de bitcoins
Ctrl+D Intercambio de bitcoins
ads

Sincronización por fases de Ethereum: refactorización del modo de sincronización completa (Full Sync)

Author:

Time:

La sincronización por etapas se refactoriza a partir del modo de sincronización completa de Go-Ethereum para un mejor rendimiento.

La sincronización por fases requiere muchas operaciones de lectura y escritura. Si bien nuestro objetivo es poder sincronizar nodos en HDD, aún recomendamos usar SSD.

Como su nombre lo indica, la sincronización por fases requiere que se ejecuten 10 fases secuencialmente.

El cliente Turbo-Geth aprende de cada par el bloque HEAD del nodo (es decir, el bloque más reciente) y luego ejecuta cada fase por turno, buscando la brecha que falta entre el bloque HEAD local y el bloque HEAD del par.

La primera fase (descarga de encabezados de bloque) establece el bloque HEAD local.

Las etapas se ejecutan secuencialmente. Durante la ejecución de cada etapa, la etapa no terminará hasta que el estado local del nodo alcance el estado objetivo.

Es decir, en circunstancias ideales (sin cortes de red, sin reinicios de aplicaciones, etc.), cada etapa solo debe ejecutarse una vez para completar la sincronización inicial.

Después de la última etapa, todo el proceso de sincronización comenzará nuevamente, buscando nuevos encabezados de bloque para descargar.

Si reinicia la aplicación entre dos etapas, la aplicación se reiniciará desde la primera etapa.

Si reinicia la aplicación mientras se ejecuta una etapa, la aplicación se reinicia desde la etapa actual para completar esa etapa.

A través del gráfico circular a continuación, podemos ver la proporción de tiempo que consume cada etapa (estos son los datos obtenidos de la sincronización completa). Aunque estos datos no son precisos, pero bastan como referencia.

Xinghui Entertainment: Xinghui Tiantuo, una subsidiaria de propiedad total de la compañía, se ha convertido en miembro permanente del Comité de Industria de Metaverse: el 8 de julio, Xinghui Entertainment, una compañía que cotiza en acciones A, declaró en la plataforma interactiva que los juegos de Metaverse se separarán el mundo real del mundo virtual.La profunda integración del mundo tiene requisitos más altos para el equipo y la tecnología del juego. En la actualidad, Xinghui Tiantuo, una subsidiaria de propiedad total de la compañía, se ha convertido en un miembro permanente del Comité de Industria de Metaverse. En el futuro, comprenderá mejor las tendencias relacionadas con la industria, explorará la combinación orgánica de tecnologías y juegos relacionados, y esforzarse por proporcionar a los jugadores una experiencia de producto de juego inmersiva. (Prensa financiera asociada) [2022/7/10 2:02:58]

Si la cadena de bloques se reorganiza, necesitamos "retroceder" algunos de los datos sincronizados.

La regresión se refiere a la regresión de la última etapa a la primera etapa. Sin embargo, una cosa a tener en cuenta es que el grupo de transacciones no se actualiza hasta que realizamos el respaldo, por lo que conocemos el nuevo nonce.

El orden de fase de la reversión se muestra en el siguiente ejemplo (ocurre secuencialmente de derecha a izquierda).

estado.unwindOrder = []*Etapa{

   // Desconexión del conjunto de tx (la reinyección de transacciones en el conjunto debe ocurrir después de la ejecución de desconexión)

   etapas, etapas, etapas, etapas, etapas, etapas, etapas, etapas, etapas, etapas,

Meng Wei, portavoz de la Comisión Nacional de Desarrollo y Reforma: En el siguiente paso, llevaremos a cabo una rectificación integral centrada en la "minería" industrial centralizada, las unidades estatales que involucran la "minería" y la "minería" de Bitcoin: 16 de noviembre Noticias, Nacional Desarrollo Meng Wei, portavoz de la Comisión de Reforma: En el próximo paso, llevaremos a cabo una rectificación integral enfocándonos en la "minería" industrial centralizada, las unidades estatales que involucran la "minería" y la "minería" de Bitcoin. Para las unidades que implementan precios de electricidad residencial, si se descubre que están involucradas en actividades de "minería" de moneda virtual, estudiarán la imposición de precios de electricidad punitivos, formando una situación de alta presión que continúa rectificando las actividades de "minería" de moneda virtual. (Red de China) [2021/11/16 6:54:29]

 }

Preprocesamiento a través de  ETL 

Algunas etapas utilizan nuestro marco ETL para ordenar los datos por valor clave antes de insertarlos en la base de datos.

Esto puede reducir en gran medida la situación de amplificación de escritura de la base de datos (amplificación de escritura).

Entonces, cuando generamos un índice, o Hashed State, pasamos por un proceso de varios pasos.

Escriba los datos procesados ​​en varios archivos temporales ubicados en el directorio de datos;

Luego use una pila (montón) para insertar los datos en el archivo temporal en la base de datos e inserte los datos en el orden que pueda minimizar la amplificación de escritura de la base de datos.

Esta optimización a veces aumenta la velocidad de escritura en órdenes de magnitud.

Cada etapa contiene dos funciones, que son ExecFunc  en la etapa de avance y  UnwindFunc en la etapa de retroceso.

Cardano lanza el registro de tokens nativos: es oficial, Cardano ha anunciado el lanzamiento del registro de tokens de Cardano, una colección administrada centralmente de identificadores en cadena para tokens escritos e implementados en Cardano. El registro está diseñado para proporcionar toda la información necesaria, incluido el nombre de un determinado token, una breve descripción de su función, el nombre del activo y la identificación de la estrategia de acuñación. [2021/4/16 20:24:49]

En teoría, algunas etapas pueden funcionar sin conexión, pero la versión actual no implementa esta función.

Fase 1: Descargar encabezados de bloques

En esta etapa, descargamos todos los encabezados de bloque entre el bloque HEAD local y el bloque HEAD del par.

Esta etapa requiere un uso intensivo de la CPU y es adecuada para su uso con procesadores multinúcleo debido a la prueba de trabajo requerida para verificar los encabezados de los bloques.

La mayoría de los retrocesos comienzan en esta etapa debido a las reorganizaciones de blockchain.

Esta fase empuja el puntero HEAD local (que apunta al bloque actualizado).

Fase 2: Block Hash

Extraiga una tabla de índice que asigne el valor hash del bloque al número de bloque (blockHash -> blockNumber) del encabezado del bloque para admitir una búsqueda más rápida y hacer que el proceso de sincronización sea más amigable para los discos duros mecánicos.

Etapa 3: descargar el cuerpo del bloque

En esta etapa, también descargaremos el cuerpo del bloque del encabezado del bloque descargado en la etapa anterior.

Se requiere una buena conexión a Internet para esta fase. La gran mayoría de los datos se descargan en esta etapa.

Fase 4: Restauración del remitente

Esta etapa recupera y almacena el remitente de cada transacción en cada bloque descargado.

Esta etapa también requiere un uso intensivo de la CPU y es adecuada para su uso con procesadores multinúcleo.

No se requiere conexión a Internet en esta etapa.

Etapa 5: Ejecución de bloques

En esta etapa, ejecutamos cada transacción en todos los bloques previamente descargados.

Una cosa a tener en cuenta es que durante la ejecución del bloque no verificamos el hash raíz ni creamos un árbol Merkle.

Esta etapa es de subproceso único, no requiere redes y ocupa mucho espacio en disco. Si la ejecución del bloque falla, la etapa se puede revertir.

Etapa 6: Cálculo de raíces estatales

Esta fase construye el árbol Merkle y verifica el hash raíz del estado actual.

Esta fase también crea hashes intermedios y los almacena en la base de datos.

Si no se almacenaron previamente hashes intermedios (lo que podría suceder durante la primera sincronización inicial), esta etapa construye el árbol Merkle completo y su hash raíz.

Si no hay hashes intermedios en la base de datos, esta fase utiliza el historial del bloque para determinar qué hashes están desactualizados y cuáles son los más recientes, y luego usa los hashes más recientes para construir parte del árbol Merk Er, solo reconstruye hashes obsoletos. .

Si el hash raíz no coincide, retrocede un bloque.

Fase 7: Generar estado hash

Durante la ejecución, Turbo-Geth usa almacenamiento de estado simple.

Estado simple: en el estado estándar (que llamamos "estado hash"), la dirección de la cuenta y el elemento de almacenamiento es  keccak256(dirección) , pero en el estado general, tanto la dirección de es  dirección  .

Sin embargo, para garantizar que algunas API funcionen correctamente y sigan siendo compatibles con otros clientes, también generamos un estado hash.

Si el estado hash no es nulo, observamos el History ChangeSet y solo actualizamos los elementos que han cambiado.

No se requiere conexión a Internet en esta etapa.

Etapa 8, 9, 10 : creación de índice

Se generan 3 índices durante la sincronización.

Estos 3 índices pueden deshabilitarse ya que no son utilizados por ninguna API.

Índice de consulta de transacciones

La tabla de índice consta de una asignación de hash de transacción a números de bloque.

Índice del historial de la cuenta

El índice almacena una asignación de direcciones de cuenta a una lista de bloques en los que ha cambiado el estado de la cuenta.

Índice histórico de la tienda

El índice almacena el mapeo desde la dirección del elemento de almacenamiento hasta la lista de bloques donde el elemento de almacenamiento ha cambiado hasta cierto punto.

En esta etapa, iniciamos el grupo de transacciones o actualizamos su estado. Por ejemplo, si algunas transacciones están incluidas en los bloques que hemos descargado, estas transacciones se eliminan del grupo de transacciones.

Al revertir, volveremos a agregar las transacciones en el bloque revertido al grupo de transacciones.

Enlace original:

https://github.com/ledgerwatch/turbo-geth/tree/master/eth/stagedsync

Por Alex Sharov

Traducción y revisión: Min Min & A Jian

Tags:

cadena de bloques
Los titulares de Golden Sentinel丨YAM están migrando a YAMv2 lo antes posible.La fecha límite es el 23 de agosto a las 0:20.

Los agricultores que tienen tokens YAM deben darse prisa e intercambiarlos por YAMv2.Yam Finance declaró en Twitter que YAMv1 debe migrarse al contrato YAMv2 antes de las 4:20 p. m.

Blockchain + mercado de valores regional: antecedentes, ideas y exploración de modelos

El mercado de valores regional ha estado tranquilo durante mucho tiempo y, recientemente, una carta de la Comisión Reguladora de Valores de China ha vuelto a causar turbulencias.

Primer lanzamiento | OKEx Research: La capitalización de mercado de Bitcoin ha caído a un mínimo anual ¿Se acerca un mercado alcista estructural?

Desde agosto, el precio de Bitcoin ha abierto y se ha movido al alza. Aunque hay una ligera corrección en la actualidad, todavía se encuentra en un nivel alto para el año.Sin embargo.

Sincronización por fases de Ethereum: refactorización del modo de sincronización completa (Full Sync)

La sincronización por etapas se refactoriza a partir del modo de sincronización completa de Go-Ethereum para un mejor rendimiento.La sincronización por fases requiere muchas operaciones de lectura y escritura.

Lectura recomendada de oro | Comprenda Curve y su token CRV en un artículo

Este artículo fue publicado por Maxwell, reportero de Jinse Finance, el 14 de agosto en Jinse Finance para ayudar a los lectores a comprender el desarrollo actual de DeFi.

Por primera vez en la historia de Sichuan, la mina de Bitcoin Leshan Ya'an de control de inundaciones de Nivel I se vio afectada, vigilancia de seguimiento de desastres geológicos

A las 5:00 a. m. del día 18, la provincia de Sichuan lanzó una respuesta de emergencia de control de inundaciones de nivel I; esta es la primera vez que Sichuan lanza este nivel de respuesta desde que se registraron l.

Escala de grises: la estructura actual del mercado de Bitcoin es similar a la que existía antes de que comenzara la histórica carrera alcista a principios de 2016

Un nuevo informe del administrador de fondos de criptomonedas Grayscale Investments sostiene que la estructura actual del mercado de bitcoins es "similar a la estructura anterior a la histórica carrera alcista que com.

ads