go-ethereum/internal
Roberto Bayardo 950ccddfc8
internal/ethapi: optimize & clean up EstimateGas (#27710)
Optimizations:

- Previously, if a transaction was reverting, EstimateGas would exhibit worst-case behavior and binary search up to the max gas limit (~40 state-clone + tx executions). This change allows EstimateGas to return after only a single unconstrained execution in this scenario.
- Uses the gas used from the unconstrained execution to bias the remaining binary search towards the likely solution in a simple way that doesn't impact the worst case. For a typical contract-invoking transaction, this reduces the median number of state-clone+executions from 25 to 18 (28% reduction).

Cleanup:

- added & improved function + code comments
- correct the EstimateGas documentation to clarify the gas limit determination is at latest block, not pending, if the blockNr is unspecified.
2023-08-18 03:03:14 -04:00
..
blocktest internal/blocktest: add package for shared test code (#27270) 2023-07-11 14:57:02 +02:00
build internal/build: apply -ubuntu to env (#27910) 2023-08-12 10:32:50 +02:00
cmdtest internal: use atomic type (#27858) 2023-08-07 03:11:06 -04:00
debug node: fix listening on IPv6 address (#27628) (#27635) 2023-07-02 13:21:16 +02:00
ethapi internal/ethapi: optimize & clean up EstimateGas (#27710) 2023-08-18 03:03:14 -04:00
flags all: activate pbss as experimental feature (#26274) 2023-08-10 22:21:36 +03:00
guide rpc, internal/guide: speed up tests a bit (#26193) 2022-11-17 15:30:53 +01:00
jsre internal/jsre/deps: fix typos in web3.js (#27500) 2023-06-19 07:50:56 +02:00
shutdowncheck eth, les: update unclean shutdown markers regularly (#24077) 2021-12-17 15:18:51 +01:00
syncx core: improve shutdown synchronization in BlockChain (#22853) 2021-10-07 15:47:50 +02:00
testlog internal/testlog: print file+line number of log call in test log (#20528) 2020-01-08 17:11:51 +02:00
utesting all: replace uses of ioutil with io and os (#24869) 2022-05-16 11:59:35 +02:00
version README, go.mod, event, internal/version: bump min Go to 1.19 (#26803) 2023-03-03 12:24:09 +02:00
web3ext internal/ethapi: implement eth_getBlockReceipts (#27702) 2023-08-15 14:35:48 +02:00