Skip to content

rpcdaemon: wrong reward values in response for eth_feeHistory API #2853

@Sixtysixter

Description

@Sixtysixter

Executing the following request

{
  "jsonrpc": "2.0",
  "method": "eth_feeHistory",
  "params": [
    "0x2",
    "latest",
    [1,5,95,100]
  ],
  "id": 1
}

the resulting reward arrays in silk response differs from the one provided by erigon.

The problem is due to the different sort algorithm used in STL C++ and in Go, so the same reward/gas_used list produces 2 different sorted list, and the following threshold gas used evaluation in silk differs from the erigon one.

Silk sorted list

  INFO [04-12|13:55:38.683 UTC] [asio_ctx_s6] i: 0, itr->reward: 0, itr->gas_used: 21'000
  INFO [04-12|13:55:38.683 UTC] [asio_ctx_s6] i: 1, itr->reward: 0, itr->gas_used: 269'277
  INFO [04-12|13:55:38.683 UTC] [asio_ctx_s6] i: 2, itr->reward: 0, itr->gas_used: 286'892
  INFO [04-12|13:55:38.683 UTC] [asio_ctx_s6] i: 3, itr->reward: 0, itr->gas_used: 248'236
  INFO [04-12|13:55:38.683 UTC] [asio_ctx_s6] i: 4, itr->reward: 91'240, itr->gas_used: 158'746
  INFO [04-12|13:55:38.683 UTC] [asio_ctx_s6] i: 5, itr->reward: 3'153'134, itr->gas_used: 69'819
  INFO [04-12|13:55:38.683 UTC] [asio_ctx_s6] i: 6, itr->reward: 4'099'074, itr->gas_used: 60'940
  INFO [04-12|13:55:38.683 UTC] [asio_ctx_s6] i: 7, itr->reward: 4'729'701, itr->gas_used: 105'848
  INFO [04-12|13:55:38.683 UTC] [asio_ctx_s6] i: 8, itr->reward: 4'729'701, itr->gas_used: 49'752
  INFO [04-12|13:55:38.683 UTC] [asio_ctx_s6] i: 9, itr->reward: 4'729'701, itr->gas_used: 49'752
  INFO [04-12|13:55:38.683 UTC] [asio_ctx_s6] i: 10, itr->reward: 14'357'780, itr->gas_used: 43'121
.....


Erigon sorted list

  INFO[04-12|15:43:44.096] AFTER sort                               i=0 reward=0 GasUsed=248231
  INFO[04-12|15:43:44.096] AFTER sort                               i=1 reward=0 GasUsed=186119
  INFO[04-12|15:43:44.096] AFTER sort                               i=2 reward=0 GasUsed=21000
  INFO[04-12|15:43:44.096] AFTER sort                               i=3 reward=0 GasUsed=347976
  INFO[04-12|15:43:44.096] AFTER sort                               i=4 reward=0 GasUsed=283841
  INFO[04-12|15:43:44.096] AFTER sort                               i=5 reward=0 GasUsed=21000
  INFO[04-12|15:43:44.096] AFTER sort                               i=6 reward=3153134 GasUsed=525877
  INFO[04-12|15:43:44.096] AFTER sort                               i=7 reward=3153134 GasUsed=41309
  INFO[04-12|15:43:44.096] AFTER sort                               i=8 reward=3153134 GasUsed=86904
  INFO[04-12|15:43:44.096] AFTER sort                               i=9 reward=4729701 GasUsed=55636
  INFO[04-12|15:55:38.927] AFTER sort                               i=10 reward=14357780 GasUsed=43121
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions