¿Cuántos bloques puede contener tentitivamente un caché de 1 gb (1024)?

Si uso un comando geth --cache=1024, cuántos bloques mantendrá el tiempo de ejecución en caché. Y cuál será el tamaño de cada bloque. ¿Hay algún cálculo? ¿Y hay alguna forma en la que podamos obligar a escribir los datos presentes en el caché en archivos leveldb?

Respuestas (1)

Encontré esta explicación de un usuario de reddit y pensé que te sería útil para entender algunas cosas.

Ethereum tiene un límite de gas en lugar de un tamaño de bloque. El límite de gas es un límite tanto para el procesamiento como para el almacenamiento/ancho de banda porque el costo de una transacción/función se fija en unidades de gas para cada tipo de instrucción.

Cada minero vota hacia arriba o hacia abajo el límite de gas y cada minero determina qué precio de gas está dispuesto a aceptar, que es como las tarifas de transacción de bitcoin, pero por gas en lugar de por transacción.

Para calcular cuántas transacciones pueden caber en un bloque, no necesita saber cuál es el precio del gas. Solo necesita saber cuánto gas usa una transacción y dividir el límite de gas por eso.

Si la red recibe una gran cantidad de transacciones de spam que comienzan a llenar bloques, los mineros tienen 2 opciones. Pueden votar por el límite de gasolina para incluir más transacciones o pueden comenzar a aumentar el precio de la gasolina y rechazar las transacciones que pagan una tarifa demasiado baja. Al igual que con bitcoin, una transacción con una tarifa baja aún podría realizarse, pero tendría que esperar hasta que un minero que acepte una tarifa más baja (precio de gasolina más bajo) esté dispuesto a dejarla entrar.

Con un ataque de spam sostenido, las transacciones se volverían progresivamente más costosas hasta que el spammer se quedara sin dinero o los mineros ganaran tanto dinero que comenzaran a expandir la capacidad de la red...

Todo lo que dice este usuario es cierto, y está muy bien explicado.

Como puede ver, funciona bastante diferente al esquema de Bitcoin.

EDITAR Dejo aquí la discusión completa de reddit sobre eso

Espero eso ayude.

Esa es una buena explicación, y totalmente cierta, tal vez agregue ese enlace para permitirnos obtener información adicional, por favor.
una cosa más que quiero saber, ¿cuándo se escribirán los bloques en el disco? porque cuando eliminé el nodo usando la altura kill -9 <processId>de bloque 1000 y luego comencé la cadena nuevamente, pero no comenzó desde la altura 1000. Entonces, si mi cadena muere, ¿cómo evitar la pérdida de datos? ¿Y hay alguna forma de escribir explícitamente los datos de caché en el disco?
La pérdida de datos se puede evitar teniendo varios nodos. Esto hace que al menos uno de ellos pueda seguir registrando el estado de la cadena de bloques. Y sabiendo que, por ejemplo, en ethereum hay más de 20000 nodos, es bastante difícil que todos se bloqueen al mismo tiempo y luego se pierdan datos. Agregue que si la respuesta fue correcta para usted, márquela como tal para ayudar a otros usuarios a encontrarla fácilmente.
Sí. pero siempre que la memoria caché se llene, los bloques se escribirán en el disco y tendremos la memoria caché vacía nuevamente. ¿bien?
Las cachés también pueden escribir y leer datos de forma continua, el objetivo de las mismas es que nunca se llenen, ya que si están llenas y llega un nuevo bloque de datos, se perderá porque el tiempo de proceso de la caché no es tan rápido como debería. necesita ser.