Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

84
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda