// Investigación

Benchmarks de rendimiento de Bitroot

Borrador. Las cifras siguientes provienen de una única prueba de estrés interna. Aún faltan por añadir el hardware, el número de nodos, la versión del software y el tipo de transacción, por lo que la página permanece sin indexar hasta entonces.

Esta página explica cómo mide Bitroot el rendimiento, en qué condiciones y cómo pueden reproducirse los números. El objetivo de diseño y el resultado medido se informan por separado. Cada cifra medida indica la ejecución de la que proviene.

1. Objetivos y mediciones

MétricaObjetivo de diseñoÚltima mediciónEjecución
Rendimiento (TPS)100,000+36,430.68 tx/s, promediado durante toda la ejecución, desde la primera hasta la última transacción confirmadaPrueba de estrés de 30,000,000 de transacciones, sección 4
Tiempo hasta la finalidadPor definirPor definirNo cubierto por esta ejecución
Tiempo de bloquePor definirPor definirNo cubierto por esta ejecución

El rendimiento medido está por debajo del objetivo de diseño. El objetivo describe lo que la arquitectura está construida para alcanzar. La medición describe lo que produjo una ejecución concreta.

2. Definiciones

Aquí, TPS es la tasa del lado de la cadena: el número de transacciones incluidas en bloques dividido entre el tiempo transcurrido desde la primera hasta la última transacción incluida. No es la tasa a la que el generador de carga envió las transacciones. Para el vocabulario general, consulta el Glosario de métricas de rendimiento.

TODO(engineering): indicar si se incluyen la sobrecarga de consenso y de red, y cómo se contarían las transacciones fallidas. En esta ejecución no falló ninguna.

3. Entorno de prueba

ElementoValor
Modo de ejecuciónmempool
Modo de noncelocal
Firmantes500
Mempool TXs100,000
Propina5,000,000,000 wei (5 gwei)
RedPor definir (testnet, devnet o clúster aislado)
Número y roles de nodosPor definir
Hardware por nodo (CPU, memoria, disco, red)Por definir
Distribución geográfica y latenciaPor definir
Versión y commit del softwarePor definir
Fecha de ejecuciónPor definir

La herramienta de carga también informa un ajuste de bloques de 300 y un tamaño de fragmento de 0 KB. TODO(engineering): explicar qué significan estos dos valores antes de publicarlos como condiciones.

4. Carga de trabajo y resultados

ElementoValor
Transacciones planificadas30,000,000
Transacciones enviadas30,000,000
Transacciones confirmadas30,000,000
Fallos de envío0
Reintentos0
Tasa de éxito100.00%
Duración del envío805.19 s
Rendimiento del lado de la cadena36,430.68 tx/s

TODO(engineering): indicar el tipo de transacción. El informe lista el destinatario como "default" y no dice si la ejecución usó transferencias nativas, transferencias de tokens o llamadas a contratos. Las cifras de solo transferencias son un límite superior para aplicaciones reales, por lo que esto debe indicarse junto al resultado. Consulta también Puntos críticos en cargas de trabajo EVM paralelas para ver cómo los conflictos modifican el rendimiento.

Salida sin editar

El informe de la herramienta de carga, sin modificar:

==================================================
🔥 Stress Test Report
==================================================
Total Planned:       30000000
Successfully Sent:   30000000
Duplicate Sent:      0 (already known, not counted above)
Failed to Send:      0
Landed Transactions: 30000000
Success Rate:        100.00%
Retry Attempts:      0
Signing Time:        79499764 ms (all sign_batch_txs)
Total Pause Time:    79499764 ms (incl. recharge & signing)
--------------------------------------------------
Send Duration:       805.19s
Total Duration:      805.19s (incl. waiting)
Average RPS:         46425.94 req/s (send speed)
Average TPS:         46425.94 tx/s (inclusion speed)
--------------------------------------------------
Run Mode:            mempool
Nonce Mode:          local
Signer Count:        500
Blocks:              300
Chunk Size:          0 KB
Tip Wei:             5000000000
Mempool TXs:         100000
To:                  default
Real Chain TPS:      36430.68 tx/s (first to last landed)
==================================================

La herramienta imprime dos cifras de rendimiento. "Real Chain TPS" (36,430.68 tx/s, de la primera a la última transacción incluida en cadena) es la cifra del lado de la cadena que se usa en esta página. "Average RPS" y "Average TPS" (46,425.94) no se usan: 30,000,000 de transacciones en 805.19 s dan unos 37,257 tx/s, y no coinciden.

TODO(engineering): explicar cómo calcula la herramienta "Average TPS" y qué miden las líneas "Signing Time" y "Total Pause Time" (79,499,764 ms cada una), para que el lector pueda conciliar el informe.

5. Reproducir los resultados

TODO(engineering): enlazar la herramienta de pruebas de estrés, el commit exacto, la línea de comandos y la configuración, y la salida sin procesar.

6. Límites conocidos

  • Una sola ejecución no equivale a una carga de producción sostenida. Muestra lo que hizo la red durante aproximadamente 13 minutos con esta configuración.
  • La carga es de un único tipo. No se cubre el rendimiento bajo alta contención, por ejemplo con muchas transacciones que afectan al mismo contrato.
  • El resultado se aplica al entorno descrito arriba, una vez completado, y a ningún otro.

7. Verificación independiente

TODO(product): enlazar cualquier medición o informe de auditoría de terceros, con la organización, el alcance y la fecha. Si aún no existe ninguno, indicarlo aquí.

8. Historial de cambios

FechaCambio
Por definirPrimera publicación: prueba de estrés de 30,000,000 de transacciones