Precio de Bitcoin Precio de Bitcoin
Ctrl+D Precio de Bitcoin
ads

Presentamos: Cliente Turbo-Geth: Mejoras en la base de datos

Author:

Time:

Hace unos meses, me uní al equipo de Turbo-Geth y comencé a contribuir activamente con código para el cliente de Turbo-Geth. El cliente Turbo-Geth es una versión alternativa del cliente Geth (actualmente todavía en desarrollo), que pretende ser más rápido y eficiente que el cliente original. Entonces, el enfoque de Turbo-Geth para lograr este objetivo incluye lo siguiente:

Optimizar aún más la estructura de la base de datos

Reduzca las operaciones de lectura y escritura en la base de datos donde se requiere la interacción con los datos de estado

Optimice la eficiencia de las operaciones del árbol de estado (puede ser necesario cambiar la estructura de datos del árbol de estado existente)

En este artículo, resaltaré las diferencias entre las bases de datos de Turbo-Geth y Geth. Las principales diferencias son:

Base de datos diferente (usando Bolt en lugar de LevelDB)

Segmentar la base de datos por cubo

Entonces, el contenido principal de este artículo está relacionado con estos dos puntos.

Bolt y LevelDB son en realidad muy similares, ambos son almacenamiento de "par clave-valor" (clave-valor), y el objetivo del diseño es proporcionar una base de datos simple, rápida y confiable para proyectos que no requieren un servidor de base de datos completo. La base de datos elegida por Geth es LevelDB, mientras que la de Turbo-Geth es Bolt.

Pero también hay una diferencia clave entre los dos: la forma en que se organizan los datos. LevelDB es una base de datos LSM (Log-Structured Merged-Tree), mientras que Bolt usa cubos, y cada cubo contiene una estructura B+-Tree. Podemos pensar en un cubo como "una pequeña base de datos en una gran base de datos".

Amber Group adquiere DeCurret, una plataforma de comercio de cifrado, con el objetivo de ingresar al mercado de cifrado japonés: el 1 de febrero, la plataforma de activos digitales Amber Group anunció la adquisición de DeCurret Inc., una plataforma de comercio de criptomonedas regulada por Japón, con el objetivo de ingresar al mercado japonés. mercado de cifrado. Amber Group declaró que planean utilizar el estado regulatorio de DeCurret para "desbloquear el potencial del criptomercado japonés".

Se informa que DeCurret es uno de los 30 proveedores de servicios de negociación de activos cifrados autorizados por la Agencia de Servicios Financieros de Japón. Fundada en 2018, la plataforma de negociación también participó en el proyecto de diseño de moneda digital (CBDC) del Banco de Japón. (theblockcrypto) [2022/2/2 9:26:46]

La principal diferencia entre los dos, entonces, es que una base de datos LSM está optimizada para la exploración de rango y agregación pesada, no para el rendimiento de lectura aleatoria; para proporcionar coherencia, no permite operaciones simultáneas de lectura y escritura en la base de datos. Además, por consideraciones de rendimiento, esta base de datos no implementa la atomicidad. Bolt, por otro lado, tiene una velocidad de inserción lenta, pero una velocidad de lectura aleatoria rápida, logra atomicidad y puede leer y escribir en la base de datos al mismo tiempo.

Expliquemos un poco más la atomicidad:

Atomicidad: "atómico" significa indivisible. Supongamos ahora que queremos almacenar varios valores hash para una base de datos y uno de ellos falla al insertarlo en la base de datos, si todas las operaciones de valores hash se revocarán al mismo tiempo, esto se llama atomicidad. Turbo-Geth tiene una característica tal que esta operación solo puede tener éxito si todas las operaciones de inserción de valores hash son exitosas. Una base de datos que no implementa la atomicidad (como LevelDB) significa que se debe usar una solución alternativa para insertar datos en la base de datos de manera segura. En otras palabras, en este punto, creemos que Bolt es mejor porque es más seguro al agregar datos a la base de datos.

Como se mencionó anteriormente, Turbo-Geth se divide en varios grupos. Cada depósito es una pequeña pieza de datos en una gran base de datos, cada uno de los cuales contiene una estructura B+-Tree.

Aquí está la división de la base de datos Turbo-Geth a la altura del bloque 9,346,492:

- Particionamiento de datos del nodo de archivo de Turbo-Geth (altura de bloque 9,346,492) -

Tamaño de archivo del cliente Geth (altura del bloque 9346492): 3,7 Tamaño del archivo del cliente TBParity (altura del bloque 9346492): 3,6 TBCliente Turbo-Geth Tamaño del archivo (altura del bloque 9346492): 652,62 GB Cada parte se almacena en un depósito en. Una breve explicación de las partes principales es la siguiente:

Preimagen: la gestión de valores hash y direcciones, y la asociación entre valores hash de ubicación de almacenamiento y ubicaciones de almacenamiento

recibo (recibo): recibo de transacción

Historia del almacenamiento: la historia de los cambios en el almacenamiento por contrato

Historial de Cuentas: Cambiar historial de cuentas

Encabezado de bloque: el encabezado de bloque de cada bloque

Cuerpo de bloque: el cuerpo de bloque de cada bloque

Almacenamiento por contrato: Es el contenido de almacenamiento por contrato

ChangeSet: historial de cambios de la base de datos

Cuenta: Cuenta

El propósito de usar tantos cubos es evitar que la altura de cada B+-Tree que constituye una base de datos grande sea demasiado alta, para que la interacción con la base de datos sea más fácil. En otras palabras, se trata de utilizar varios cubos para mejorar el rendimiento de la lectura de la base de datos.

Después de cambiar a Bolt, Turbo-Geth tuvo algunos problemas con las claves aleatorias, como los hashes de transacciones, porque Bolt ordena esas claves antes de enviar los datos y porque esos hashes son aleatorios y el número es grande, por lo que se genera una gran cantidad de requisitos de clasificación. lo que luego conduce a una gran cantidad de amplificación de escritura (amplificación de escritura, la cantidad real de datos físicos escritos es varias veces la cantidad de datos escritos). Y BadgerDB usa el modo de fusión estructurada de registro (LSM), que parece ser una mejor opción. Este problema aún está bajo investigación, sin embargo, hemos implementado una solución para solucionar este problema.

Aquí hay un gráfico que muestra el rendimiento general de BadgerDB y BoltDB (gracias a Alexey Akhunov por el gráfico):

El cliente Turbo-Geth optimiza el rendimiento de Ethereum al:

Use varios cubos para recuperar algunos datos más rápidamente

Use B+-Tree en lugar de LSM

Si desea donarnos, puede hacerlo a través de Gitcoin.

Tags:

Precio de Ethereum USD
Después de que se rechazó el ETF de Bitcoin, el comisionado de la SEC de EE.UU.acusó a la SEC de "estándares de conversión"

La Comisión de Bolsa y Valores de EE. UU. (SEC, por sus siglas en inglés) rechazó la solicitud de Wilshire Phoenix, con sede en Nueva York, de un fondo cotizado en bolsa (ETF, por sus siglas en inglés) de bitcoin.

Los datos históricos muestran que las subidas del VIX pueden predecir el fondo de Bitcoin

Bitcoin ha tenido una mala racha en las últimas semanas, y el precio muestra debilidad desde la resistencia clave de $10,500. Los analistas están algo divididos sobre hacia dónde se dirige Bitcoin.

¿La contraseña de riqueza más cercana es SpaceM? Este artículo explica en detalle las nuevas reglas del juego de matcha MXC

El 27 de febrero, MXC Matcha anunció oficialmente que lanzará oficialmente el canal de marketing en línea del proyecto SpaceM de 12:00 a 16:00 el 2 de marzo La primera fase del proyecto es JUS (JUST Network).Hablemos.

Presentamos: Cliente Turbo-Geth: Mejoras en la base de datos

Hace unos meses, me uní al equipo de Turbo-Geth y comencé a contribuir activamente con código para el cliente de Turbo-Geth. El cliente Turbo-Geth es una versión alternativa del cliente Geth (actualmente todavía en de.

Las 7 principales criptomonedas que brillarán en 2020

Nota del editor: El 21 de febrero de 2020, hora de EE. UU.

Recibió una inversión de $40 millones de Sequoia e Intel.Esta empresa resuelve los puntos débiles de DEX y CEX

Una startup israelí, Starkware, cree que puede resolver dos de los problemas más apremiantes en el comercio de criptomonedas: la fragilidad inherente de los intercambios centralizados y la baja capacidad comercial de.

ads