Cómo obtener la recompensa completa del minero

Bien, digamos que estoy buscando obtener 1000000una recompensa de minero en bloque:

{
  difficulty: 12549332509227,
  extraData: "0xd783010303844765746887676f312e352e31856c696e7578",
  gasLimit: 3141592,
  gasUsed: 50244,
  hash: "0x8e38b4dbf6b11fcc3b9dee84fb7986e29ca0a02cecd8977c161ff7333329681e",
  logsBloom: "0x00000000000000000000000000000000000800000000000000000000000800000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000",
  miner: "0x2a65aca4d5fc5b5c859090a6c34d164135398226",
  mixHash: "0x92c4129a0ae2361b452a9edeece55c12eceeab866316195e3d87fc1b005b6645",
  nonce: "0xcd4c55b941cf9015",
  number: 1000000,
  parentHash: "0xb4fbadf8ea452b139718e2700dc1135cfc81145031c84b7ab27cd710394f7b38",
  receiptsRoot: "0x20e3534540caf16378e6e86a2bf1236d9f876d3218fbc03958e6db1c634b2333",
  sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
  size: 768,
  stateRoot: "0x0e066f3c2297a5cb300593052617d1bca5946f0caa0635fdb1b85ac7e5236f34",
  timestamp: 1455404053,
  totalDifficulty: 7135202464334937706,
  transactions: ["0xea1093d492a1dcb1bef708f771a99a96ff05dcab81ca76c31940300177fcf49f", "0xe9e91f1ee4b56c0df2e9f06c2b8c27c6076195a88a7b8537ba8313d80e6f124e"],
  transactionsRoot: "0x65ba887fcb0826f616d01f736c1d2d677bcabde2f7fc25aa91cfbc0b3bad5cb3",
  uncles: []
}

Basado en la respuesta de esta pregunta: ¿Cómo consultar la cantidad de recompensa minera de un determinado bloque? Agregaría la recompensa base y el gas utilizado:5 + (50244 gwei I think?)

Pero lo que veo en etherscan: https://etherscan.io/block/1000000

5.003614887722 Ether (5 + 0.003614887722 (Tx fees))

Estoy muy confundido, ¿qué estoy haciendo mal?

Respuestas (1)

El tema es que no hay un precio fijo por unidad de gas. Se usaron 50,244 gas, pero no se puede saber cuánto pagó cada usuario por cada gas solo con el encabezado.

Al examinar cada transacción en un bloque a través web3.eth.getTransaction()de y web3.eth.getTransactionReceipt(), eventualmente puede determinar quién pagó qué y luego determinar la recompensa final del minero.

Como señala la pregunta vinculada, también tendrá que agregar recompensas de tío para obtener el total final, pero no conozco la fórmula para eso.

¡Eso tiene mucho más sentido! En este caso ya que solo hay 2 transacciones: (tx.gasPrice * tx.gasUsed) first = 80525500000 * 29244 second = 60000000000 * 21000Lo que da como resultado: 3614887722000000 Wei ¡Gracias hombre!