Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

83
Vistas
¿Cómo puedo calcular el costo promedio de gas por transacción en RSK?

Quiero calcular una tarifa de gas promedio pagada por todas las transacciones en RSK en los últimos tres meses. Traté de consultar la cadena de bloques RSK usando la bibliotecaWeb3.js. Para obtener datos de transacciones para una sola altura de bloque, tuve que hacer lo siguiente:

 const txsPerBlock = await web3.getBlockTransactionCount(block.height); const txs = await Promise.all( [...Array(txsPerBlock).keys()].map( (i) => web3.eth.getTransactionFromBlock(block.height, i)) );

Y luego para calcular la tarifa promedio de gas:

 const averageGasFee = txs.reduce( (p, c) => p + Number(c.gasPrice) * c.gas, 0 ) / txs.length;

Sin embargo, en 3 meses había alrededor de 230 000 bloques en RSK, incluidas alrededor de 3 transacciones por bloque. Así que tuve que sondear unas 600 000 transacciones que tardarían una eternidad en completarse. Esperé una hora y luego cancelé el guión. ¿Hay algo mejor para consultar la cadena de bloques de RSK y calcular la tarifa de gas de transacción promedio en una cantidad tan grande de bloques y transacciones?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Puede usar el método getBlock() ( docs ) que puede devolver todas las transacciones en el bloque a la vez si pasa true como el segundo parámetro ( returnTransactionObjects ).

 const block = await web3.eth.getBlock(blockNumber, true); const averageGasFee = block.transactions.reduce( (p, c) => p + Number(c.gasPrice) * c.gas, 0 ) / block.transactions.length;

Esto da como resultado "solo" 230 000 solicitudes en lugar de las 600 000 anteriores.

over 4 years ago · Santiago Trujillo Denunciar

0

Es mucho más fácil lograr esto usando Covalent . Puede calcular las tarifas de gas deseadas realizando una sola consulta de PostgreSQL:

 SELECT AVG(t.gas_spent * t.gas_price) / 10^18 AS gas_paid FROM chain_rsk_mainnet.block_transactions t WHERE t.signed_at > (NOW() - INTERVAL '3 month') AND t.signed_at <= NOW() ;

El resultado de esta consulta es 0.000009922904625 (RBTC), y tomó solo 4.2 segundos para ejecutar/obtener el resultado.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda