Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

188
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!