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.
El volumen total de transacciones de OpenSea superó los 40.000 millones de dólares estadounidenses: según Jinse Finance, según los últimos datos de Dune Analytics, el volumen de transacciones diarias acumulativas de OpenSea en el mercado NFT superó los 40.000 millones de dólares estadounidenses, que actualmente es de 40.005.864.063 dólares estadounidenses.
Los datos históricos muestran que el volumen de transacciones de OpenSea superó los 10 000 millones de dólares estadounidenses en noviembre de 2021, superó los 20 000 millones de dólares estadounidenses a principios de febrero de 2022 y luego superó los 30 000 millones de dólares estadounidenses en junio de este año. generado. [2022/9/24 7:18:23]
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".
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.
Vontobel, un gigante suizo de gestión de inversiones: los grandes clientes están interesados en las criptomonedas: noticias del 28 de julio, Zeno Staub, director ejecutivo del gigante suizo de gestión de inversiones y banco privado Vontobel, dijo en una entrevista con Bloomberg el martes que algunos de los clientes adinerados de la empresa tienen criptomonedas Exposición, interés en criptomonedas. Staub cree que la tecnología blockchain tendrá un profundo impacto en las finanzas globales. El CEO de Vontobel describió la nueva tecnología como “una consecuencia lógica de la megatendencia de titulización, ya que es la única tecnología disponible que puede generar confianza sin una contraparte central”. (Cointelegraph)[2021/7/28 1:21:08]
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.
Opinión: Las transacciones encriptadas de Turquía no se ven afectadas, y las ventas lentas de la lira han llevado a las autoridades a prohibir los pagos encriptados: aunque el banco central turco ha prohibido previamente el uso de pagos en moneda encriptada en todo el país, según las "Regulaciones sobre el uso de activos cifrados en pagos", las transacciones de moneda cifrada no parecen verse afectadas por la regulación. La lira turca se ha enfrentado a una enorme presión de venta externa, lo que ha dado lugar a una prohibición a nivel nacional de los pagos con criptomonedas. (CoinDesk) [2021/4/16 20:27:41]
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:
La "ley 20-8" también se conoce como la "ley de minoría clave", y lo más importante suele ser la minoría del 20%. En el mercado encriptado.
Jinse Finance informó que el 29 de febrero, Huobi Global publicó un anuncio sobre el lanzamiento oficial de la red de prueba de la cadena pública.
Jinse Finance informó que, a fines de febrero de 2020.
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.
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.
¿Cómo cambiará el mercado en el futuro tras sucesivos ajustes a la baja? ¿Se ha estabilizado el mercado después de la inmersión unilateral de hoy? Bajo la expectativa de reducir a la mitad.
Autor: Zhang Tiecheng, Director del Departamento de Ciencia y Tecnología de la Administración Estatal de Divisas y Director del Centro de Monitoreo de Datos Comerciales de DivisasEn los últimos años.