¿Podemos simplemente aumentar el límite de gas del bloque y disminuir el tiempo del bloque para aumentar el TPS? [duplicar]

Dado el límite de gas de transacción (TGL), TPS = límite de gas de bloque (BGL) / TGL / tiempo de bloque (BT). Pero no aumentamos TPS simplemente aumentando BGL y disminuyendo BT. ¿Cuál es la desventaja exactamente? ¿Un BGL más grande conduce a la centralización de la minería y una tasa de tío más grande de BT más corta?

Editar: "¿Cuáles son las dinámicas de rendimiento de Ethereum?" habla de dificultad de minería, no de centralización o TPS.

El aumento del límite de gas del bloque provocará un mayor tiempo de procesamiento de los bloques; además, los bloques grandes tardarán más tiempo en propagarse a través de la red. Reducir los tiempos de bloqueo generará más bloqueos, lo que genera más tráfico en la red. Esto hará que ambos aumenten los bloques de tíos. La consecuencia es que la red desperdiciará parte de su esfuerzo. Hay que tener mucho cuidado al hacer cambios en esos parámetros, una mala configuración puede hacer que la red se detenga y mucha gente enojada.
Algo de lo que muchas personas no son conscientes es el dilema del verificador. Básicamente, si aumenta el tamaño del bloque hasta un punto en el que los nodos de minería tienen una ventaja significativa si ignoran la validación de transacciones y usan toda la potencia de la CPU/GPU para PoW, dado que las posibilidades de txs no válidos son bastante bajas, esto establecería un incentivo real para los nodos que no para validar txs costosos antes de incluirlos en un bloque. eprint.iacr.org/2015/702.pdf
Además, el aumento de BGL hace que los mineros honestos sean vulnerables a un ataque en el que el minero malicioso A incluye una transacción muy costosa en su bloque, que ya ha verificado de antemano. Sí, tienen que pagar gasolina por ella, pero esa gasolina se les devuelve directamente como recompensa minera, por lo que pueden obtener una ventaja en la minería porque todos los demás están ocupados validando su costosa transacción mientras hacen PoW. Mantener el BGL bajo reduce la ventaja potencial que alguien obtiene a través de un ataque de este tipo.

Respuestas (1)

Las máquinas que ejecutan los nodos deben poder verificar los bloques.

Por el momento se tarda casi 15 segundos en validar el bloque para algunas máquinas. Aumentar el límite de gas de bloqueo y disminuir el tiempo de bloqueo hará que algunas máquinas no puedan seguir el ritmo de la punta de la cadena.

Sincronizar un nodo de paridad solo me da una velocidad de 30 a 100 transacciones/s, esto depende mucho del hardware en el que se esté ejecutando.

2018-02-26 14:25:47  Syncing #4950022 2622…f1f1     0 blk/s   25 tx/s   0 Mgas/s      0+  616 Qed  #4950640   100/100 peers   3 MiB chain 29 MiB db 83 MiB queue 123 MiB sync  RPC:  0 conn,  1 req/s, 2129 µs
2018-02-26 14:25:57  Syncing #4950024 5cb2…2fc6     0 blk/s   44 tx/s   1 Mgas/s      0+  612 Qed  #4950640   100/100 peers   3 MiB chain 32 MiB db 82 MiB queue 123 MiB sync  RPC:  0 conn,  2 req/s, 2470 µs
2018-02-26 14:26:08  Syncing #4950024 5cb2…2fc6     0 blk/s    0 tx/s   0 Mgas/s      0+  612 Qed  #4950640   100/100 peers   3 MiB chain 32 MiB db 82 MiB queue 123 MiB sync  RPC:  0 conn,  2 req/s, 2470 µs
2018-02-26 14:26:17  Syncing #4950026 83ce…8c21     0 blk/s   33 tx/s   1 Mgas/s      0+  612 Qed  #4950640   100/100 peers   3 MiB chain 35 MiB db 82 MiB queue 123 MiB sync  RPC:  0 conn,  2 req/s, 2409 µs
2018-02-26 14:26:27  Syncing #4950028 f1b5…2279     0 blk/s   43 tx/s   1 Mgas/s      0+  608 Qed  #4950640   100/100 peers   4 MiB chain 37 MiB db 81 MiB queue 123 MiB sync  RPC:  0 conn,  1 req/s, 2343 µs
2018-02-26 14:26:37  Syncing #4950031 68a4…7ede     0 blk/s   32 tx/s   2 Mgas/s      0+  608 Qed  #4950640   100/100 peers   4 MiB chain 39 MiB db 81 MiB queue 123 MiB sync  RPC:  0 conn,  1 req/s, 2089 µs

Aumentar el límite de gas del bloque y disminuir el tiempo promedio del bloque significaría que algunas máquinas no podrán mantenerse al día.

Es lo mismo que el tiempo de bloque. ¿Estás seguro de que te refieres a 15 segundos para un solo bloque? Tenía la impresión de que la validación tomó alrededor de 100 milisegundos. Aunque feliz de estar equivocado.
Validar el bloque es fácil, pero también debe validar las transacciones y lo que hacen en la cadena de bloques. Para poder hacer eso, debe ejecutar las transacciones y cambiar el estado, verificar y actualizar los saldos de las cuentas. Eso lleva mucho más tiempo.
Leer y validar el PoW del encabezado es fácil, sí, pero incluso aplicar el estado de un bloque de gas de 8M solo debería tomar alrededor de 150-200ms en una máquina decente, ¿verdad? (El gas de 8M es ~30kB.)
@RichardHorrocks, puede que tengas razón. No hice pruebas sobre esto. Se basó en la rapidez con que los nodos se sincronizan con la punta de la cadena. Siéntase libre de editar o agregar otra respuesta.
De acuerdo, gracias por confirmar. Déjame pensar en el proceso completo y armar una respuesta.
@RichardHorrocks Todavía estoy confundido. ¿Ya tienes la oportunidad de dar una respuesta más clara?
@RichardHorrocks He agregado más información que respalda mi reclamo
Hola de nuevo. Creo que estamos viendo dos cosas diferentes: a) procesar datos de archivo de otros nodos pares cuando se inicia un nodo por primera vez, b) sincronizar el bloque extraído más recientemente que se está propagando actualmente por la red. Estas son cosas diferentes. En a) estamos sincronizando el contenido de toda la base de datos estatal en forma de LevelDB. En b) pasamos un solo bloque y aplicamos sus transiciones de estado a la base de datos que ya tenemos en el disco. (En realidad, no estoy seguro de cómo compararlos con respecto al ancho de banda y el uso del procesador).