zjubfd
1ded097733
[R4R]implement diff sync ( #376 )
...
* implement block process part of light sync
* add difflayer protocol
* handle difflayer and refine light processor
* add testcase for diff protocol
* make it faster
* allow validator to light sync
* change into diff sync
* ligth sync: download difflayer (#2 )
* ligth sync: download difflayer
Signed-off-by: kyrie-yl <lei.y@binance.com>
* download diff layer: fix according to the comments
Signed-off-by: kyrie-yl <lei.y@binance.com>
* download diff layer: update
Signed-off-by: kyrie-yl <lei.y@binance.com>
* download diff layer: fix accroding comments
Signed-off-by: kyrie-yl <lei.y@binance.com>
Co-authored-by: kyrie-yl <lei.y@binance.com>
* update light sync to diff sync
* raise the max diff limit
* add switcher of snap protocol
* fix test case
* make commit concurrently
* remove peer for diff cache when peer closed
* consensus tuning
* add test code
* remove extra message
* fix testcase and lint
make diff block configable
wait code write
fix testcase
resolve comments
resolve comment
* resolve comments
* resolve comments
* resolve comment
* fix mistake
Co-authored-by: kyrie-yl <83150977+kyrie-yl@users.noreply.github.com>
Co-authored-by: kyrie-yl <lei.y@binance.com>
2021-09-28 16:03:38 +08:00
John.h
f124267144
eth/tracers: improve tracing performance ( #23016 ) ( #326 )
...
* eth/tracers: improve tracing performance (#23016 )
Improves the performance of debug.traceTransaction
* Update the import order
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: John.H <john.h@binance.com>
2021-07-29 17:08:41 +08:00
Sina Mahmoodi
9c6b5b904a
eth, eth/tracers: include intrinsic gas in calltracer, expose for all tracers ( #22038 )
...
* eth/tracers: share tx gas price with js tracer
* eth/tracers: use `go generate`
* eth/tracers: try with another version of go-bindata
* eth/tracers: export txGas
* eth, eth/tracers: pass intrinsic gas to js tracers
eth/tracers: include tx gas in tracers usedGas
eth/tracers: fix prestate tracer's sender balance
eth/tracers: rm unnecessary import
eth/tracers: pass intrinsicGas separately to tracer
eth/tracers: fix tests broken by lack of txdata
eth, eth/tracers: minor fix
* eth/tracers: regenerate assets + unexport test-struct + add testcase
* eth/tracers: simplify tests + make table-driven
Co-authored-by: Guillaume Ballet <gballet@gmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
2020-12-27 21:57:19 +01:00
Marius van der Wijden
2045a2bba3
core, all: split vm.Context into BlockContext and TxContext ( #21672 )
...
* all: core: split vm.Config into BlockConfig and TxConfig
* core: core/vm: reset EVM between tx in block instead of creating new
* core/vm: added docs
2020-11-13 13:42:19 +01:00
libotony
05280a7ae3
eth/tracers: revert reason in call_tracer + error for failed internal calls ( #21387 )
...
* tests: add testdata of call tracer
* eth/tracers: return revert reason in call_tracer
* eth/tracers: regenerate assets
* eth/tracers: add error message even if no exec occurrs, fixes #21438
Co-authored-by: Martin Holst Swende <martin@swende.se>
2020-08-27 11:33:45 +02:00
Péter Szilágyi
65cd28aa0e
tests: cleanup snapshot generator goroutine leak
2020-05-04 12:10:02 +03:00
gary rong
b9df7ecdc3
all: seperate consensus error and evm internal error ( #20830 )
...
* all: seperate consensus error and evm internal error
There are actually two types of error will be returned when
a tranaction/message call is executed: (a) consensus error
(b) evm internal error. The former should be converted to
a consensus issue, e.g. The sender doesn't enough asset to
purchase the gas it specifies. The latter is allowed since
evm itself is a blackbox and internal error is allowed to happen.
This PR emphasizes the difference by introducing a executionResult
structure. The evm error is embedded inside. So if any error
returned, it indicates consensus issue happens.
And also this PR improve the `EstimateGas` API to return the concrete
revert reason if the transaction always fails
* all: polish
* accounts/abi/bind/backends: add tests
* accounts/abi/bind/backends, internal: cleanup error message
* all: address comments
* core: fix lint
* accounts, core, eth, internal: address comments
* accounts, internal: resolve revert reason if possible
* accounts, internal: address comments
2020-04-22 11:25:36 +03:00
Péter Szilágyi
6e05ccd845
core/state/snapshot, tests: sync snap gen + snaps in consensus tests
2020-03-03 09:17:13 +02:00
Péter Szilágyi
054412e335
all: clean up and proerly abstract database access
2019-03-06 13:35:03 +02:00
Matthew Halpern
7d24a73192
eth/tracers: enforce camel case variable names ( #19057 )
2019-02-14 16:38:55 +02:00
gary rong
e8ff318205
eth/tracer: extend create2 ( #18318 )
...
* eth/tracer: extend create2
* eth/tracers: fix create2-flaw in prestate_tracer
* eth/tracers: fix test
* eth/tracers: update assets
2019-01-05 21:26:50 +01:00
gary rong
7beccb29be
all: get rid of error when creating memory database ( #16716 )
...
* all: get rid of error when create mdb
* core: clean up variables definition
* all: inline mdb definition
2018-05-09 15:24:25 +03:00
Péter Szilágyi
6f69cdd109
all: switch gas limits from big.Int to uint64
2018-01-03 14:45:35 +02:00
Péter Szilágyi
5258785c81
cmd, core, eth/tracers: support fancier js tracing ( #15516 )
...
* cmd, core, eth/tracers: support fancier js tracing
* eth, internal/web3ext: rework trace API, concurrency, chain tracing
* eth/tracers: add three more JavaScript tracers
* eth/tracers, vendor: swap ottovm to duktape for tracing
* core, eth, internal: finalize call tracer and needed extras
* eth, tests: prestate tracer, call test suite, rewinding
* vendor: fix windows builds for tracer js engine
* vendor: temporary duktape fix
* eth/tracers: fix up 4byte and evmdis tracer
* vendor: pull in latest duktape with my upstream fixes
* eth: fix some review comments
* eth: rename rewind to reexec to make it more obvious
* core/vm: terminate tracing using defers
2017-12-21 13:56:11 +02:00