• gary rong's avatar
    eth/gasprice: lighter gas price oracle for light client (#20409) · 61270e5e
    gary rong authored
    This PR reduces the bandwidth used by the light client to compute the
    recommended gas price. The current mechanism for suggesting the price is:
    
    - retrieve recent 20 blocks
    - get the lowest gas price of these blocks
    - sort the price array and return the middle(60%) one
    
    This works for full nodes, which have all blocks available locally.
    However, this is very expensive for the light client because the light
    client needs to retrieve block bodies from the network.
    
    The PR changes the default options for light client. With the new config,
    the light client only retrieves the two latest blocks, but in order to
    collect more sample transactions, the 3 lowest prices are collected from
    each block.
    
    This PR also changes the behavior for empty blocks. If the block is empty,
    the lastest price is reused for sampling.
    61270e5e
Name
Last commit
Last update
.github Loading commit data...
accounts Loading commit data...
build Loading commit data...
cmd Loading commit data...
common Loading commit data...
consensus Loading commit data...
console Loading commit data...
contracts/checkpointoracle Loading commit data...
core Loading commit data...
crypto Loading commit data...
docs/audits Loading commit data...
eth Loading commit data...
ethclient Loading commit data...
ethdb Loading commit data...
ethstats Loading commit data...
event Loading commit data...
graphql Loading commit data...
internal Loading commit data...
les Loading commit data...
light Loading commit data...
log Loading commit data...
metrics Loading commit data...
miner Loading commit data...
mobile Loading commit data...
node Loading commit data...
p2p Loading commit data...
params Loading commit data...
rlp Loading commit data...
rpc Loading commit data...
signer Loading commit data...
swarm Loading commit data...
tests Loading commit data...
trie Loading commit data...
whisper Loading commit data...
.dockerignore Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.golangci.yml Loading commit data...
.mailmap Loading commit data...
.travis.yml Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
COPYING.LESSER Loading commit data...
Dockerfile Loading commit data...
Dockerfile.alltools Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
SECURITY.md Loading commit data...
appveyor.yml Loading commit data...
circle.yml Loading commit data...
fuzzbuzz.yaml Loading commit data...
go.mod Loading commit data...
go.sum Loading commit data...
interfaces.go Loading commit data...