Commit Graph

12804 Commits

Author SHA1 Message Date
John
476d5200f7
[R4R]offline block prune (#543)
* offline block prune

* update

* update

* update and add unit test

* addressed comments from walt

* Addressed comments from walt and Igor

* ensure MPT and snapshot matched

* add one more parameter to indicate blockprune

* update the logic of creating freezerDb

* update flag command description

* expose the function for db inspect the offset/startBlockNumber

* add flags to inspect prune info

* rename flag of reserved-recent-blocks to block-amount-reserved

* addressed comments from walt

* handle the case of command interruption

* refined goimports

* addressed comments from walt

* change the logic as restarting prune after interruption

* addressed comments

* reclaimed freezer logic

* introduce flag to enable/disable check between MPT and snapshot

* update the logic of frozen field in freezerDB

* update the code in all places related to freezer change

* addressed comments from dylan

* update the logic for backup block difficulty

* addressed comments from dylan
2022-01-19 18:07:49 +08:00
dylanhuang
ebc39330c5
ci: add arm binaries for release pipeline (#713) 2022-01-14 15:44:33 +08:00
zjubfd
c78ecfbb4b
[R4R]prefetch state by applying the transactions within one block (#704)
* prefetch state by apply transactions within one block

* resolve comments

* stop prefetch once process is done

* update comments

fix ut
2022-01-11 13:55:30 +08:00
Delweng
50ad4e3f60
[R4R]Feature/backport geth native trace (#581)
* eth/tracers: implement debug.intermediateRoots (#23594)

This PR implements a new debug method, which I've talked briefly about to some other client developers. It allows the caller to obtain the intermediate state roots for a block (which might be either a canon block or a 'bad' block).
Signed-off-by: wenbiao <delweng@gmail.com>

* core, rpc: disable memory output by default in traces (#23558)

* core: cmd: invert disableMemory

* core: fix missed inversion

* cmd/evm: preserve Flags but change default value

* Apply suggestions from code review

Co-authored-by: Martin Holst Swende <martin@swende.se>

Co-authored-by: Martin Holst Swende <martin@swende.se>
Signed-off-by: wenbiao <delweng@gmail.com>

* eth/tracers: abort evm execution when trace is aborted (#23580)

Signed-off-by: wenbiao <delweng@gmail.com>

* eth/tracers: avoid unsyncronized mutations on trie database (#23632)

This PR fixes an issue in traceChain, where the statedb Commit operation was performed asynchronously with dereference-operations agains the underlying trie.Database instance. Due to how the reference counting works within the trie database (where parent count is recursively updated when new parents are added), doing dereferencing in the middle of Commit can cause the refcount to become wrong, leading to an inconsistent state. 

This was fixed by doing Commit/Deref from the same routine.  
Signed-off-by: wenbiao <delweng@gmail.com>

* core,eth: call frame tracing (#23087)

This change introduces 2 new optional methods; `enter()` and `exit()` for js tracers, and makes `step()` optiona. The two new methods are invoked when entering and exiting a call frame (but not invoked for the outermost scope, which has it's own methods). Currently these are the data fields passed to each of them:

    enter: type (opcode), from, to, input, gas, value
    exit: output, gasUsed, error

The PR also comes with a re-write of the callTracer. As a backup we keep the previous tracing script under the name `callTracerLegacy`. Behaviour of both tracers are equivalent for the most part, although there are some small differences (improvements), where the new tracer is more correct / has more information.

Signed-off-by: wenbiao <delweng@gmail.com>

* eth/tracers: re-write of 4byte tracer using enter/exit (#23622)

* eth/tracers: add re-write of 4byte tracer using enter/exit

* eth/tracers: fix 4byte indent
Signed-off-by: wenbiao <delweng@gmail.com>

* eth/tracers: tx.BaseFee not implemented

Signed-off-by: wenbiao <delweng@gmail.com>

* eth/tracers: do the JSON serialization via .js to capture C faults

Signed-off-by: wenbiao <delweng@gmail.com>

* eth/tracers: fix callTracer fault handling (#23667)

* eth/tracers: fix calltracer fault handling

* eth/tracers: fix calltracer indentation
Signed-off-by: wenbiao <delweng@gmail.com>

* eth/tracers: invoke enter/exit on 0-value calls to inex accounts (#23828)

Signed-off-by: wenbiao <delweng@gmail.com>

* eth: make traceChain avoid OOM on long-running tracing (#23736)

This PR changes long-running chain tracing, so that it at some points releases the memory trie db, and switch over to a fresh disk-backed trie.
Signed-off-by: wenbiao <delweng@gmail.com>

* eth/tracers: expose contextual infos (block hash, tx hash, tx index)

Signed-off-by: wenbiao <wenbiao.zheng@ambergroup.io>

* eth/tracers: redefine Context

Signed-off-by: wenbiao <wenbiao.zheng@ambergroup.io>

* eth/tracers: support for golang tracers + add golang callTracer (#23708)

* eth/tracers: add basic native loader

* eth/tracers: add GetResult to tracer interface

* eth/tracers: add native call tracer

* eth/tracers: fix call tracer json result

* eth/tracers: minor fix

* eth/tracers: fix

* eth/tracers: fix benchTracer

* eth/tracers: test native call tracer

* eth/tracers: fix

* eth/tracers: rm extra make

Co-authored-by: Martin Holst Swende <martin@swende.se>

* eth/tracers: rm extra make

* eth/tracers: make callFrame private

* eth/tracers: clean-up and comments

* eth/tracers: add license

* eth/tracers: rework the model a bit

* eth/tracers: move tracecall tests to subpackage

* cmd/geth: load native tracers

* eth/tracers: minor fix

* eth/tracers: impl stop

* eth/tracers: add native noop tracer

* renamings

Co-authored-by: Martin Holst Swende <martin@swende.se>

* eth/tracers: more renamings

* eth/tracers: make jstracer non-exported, avoid cast

* eth/tracers, core/vm: rename vm.Tracer to vm.EVMLogger for clarity

* eth/tracers: minor comment fix

* eth/tracers/testing: lint nitpicks

* core,eth: cancel evm on nativecalltracer stop

* Revert "core,eth: cancel evm on nativecalltracer stop"

This reverts commit 01bb908790a369c1bb9d3937df9325c6857bf855.

* eth/tracers: linter nits

* eth/tracers: fix output on err

Co-authored-by: Martin Holst Swende <martin@swende.se>
Signed-off-by: wenbiao <wenbiao.zheng@ambergroup.io>

* eth/tracers: make native calltracer default (#23867)

Signed-off-by: wenbiao <wenbiao.zheng@ambergroup.io>

* eth/tracers: package restructuring (#23857)

* eth/tracers: restructure tracer package

* core/vm/runtime: load js tracers

* eth/tracers: mv bigint js code to own file

* eth/tracers: add method docs for native tracers

* eth/tracers: minor doc fix

* core,eth: cancel evm on nativecalltracer stop

* core/vm: fix failing test

Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com>
Signed-off-by: wenbiao <wenbiao.zheng@ambergroup.io>

* eth/tracers: ethapi.TransactionArgs was not merged

Signed-off-by: wenbiao <wenbiao.zheng@ambergroup.io>

* eth/tracers: fix the api_test with ErrInsufficientFunds to ErrInsufficientFundsForTransfer

Signed-off-by: wenbiao <wenbiao.zheng@ambergroup.io>

* eth/tracers: check posa before statedb.Prepare in IntermiateRoots api

Signed-off-by: wenbiao <wenbiao.zheng@ambergroup.io>

* eth/tracers: make js calltracer default, compatible with old version

Signed-off-by: wenbiao <wenbiao.zheng@ambergroup.io>

* eth/tracers: fix the default callTrace name of callTracerJs

Signed-off-by: wenbiao <wenbiao.zheng@ambergroup.io>

* Revert "eth/tracers: fix the default callTrace name of callTracerJs"

This reverts commit 62a3bc215d9f07e422a4c659289bb3ba4f9ed2fa.

Signed-off-by: wenbiao <wenbiao.zheng@ambergroup.io>

* Revert "eth/tracers: make js calltracer default, compatible with old version"

This reverts commit 85ef42c0ea651f0b228d4209b1b2598b24e12f1f.

Signed-off-by: wenbiao <wenbiao.zheng@ambergroup.io>

* eth/tracers: fix the variable race condition

Signed-off-by: wenbiao <wenbiao.zheng@ambergroup.io>

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
Co-authored-by: Sina Mahmoodi <1591639+s1na@users.noreply.github.com>
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com>
2021-12-27 10:09:12 +08:00
zjubfd
ffb7f4a52c
Merge pull request #676 from binance-chain/catch_up_master
[R4R] develop branch catch up master
2021-12-27 10:07:50 +08:00
zjubfd
3a4192464c merge with release v1.1.7 2021-12-20 12:26:44 +08:00
KeefeL
5218949ba9
trie: reject deletions when verifying range proofs (#667)
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2021-12-20 12:15:34 +08:00
yutianwu
7c1c8e2e88
[R4R] add timeout for stopping p2p server (#643)
* add timeout for stopping p2p server

* extend extension wait time

* add unit tests

* fix lint issue
2021-12-13 11:16:03 +08:00
zjubfd
74f6b613a4
Merge pull request #628 from guagualvcha/fix_state_inconsistent
[R4R]fix state inconsistent when doing diffsync
v1.1.7
2021-12-05 12:23:57 +08:00
guagualvcha
d7e48bf824 add change logs && prelease v1.1.7 2021-12-05 11:58:07 +08:00
guagualvcha
2bf7d669ea change the release env 2021-12-05 11:55:59 +08:00
guagualvcha
a8618952fd fix state inconsistent between snapshot and MPT when doing diffsync 2021-12-05 01:23:22 +08:00
KeefeL
ec8d46e059
reorganize the logic of reannouncing transactions (#620) 2021-12-03 13:43:39 +08:00
dylanhuang
0b575443c4 prepare for release v.1.1.6 (#603) v1.1.6 2021-11-29 14:08:28 +08:00
dylanhuang
aff68c35a4 [R4R] pre-release ci flow (#594)
* ci: add pre release ci flow

* ci: fix change log format
2021-11-29 14:08:28 +08:00
KeefeL
90fd01423a [R4R]reannounce local pending transactions (#570)
* reannouce local pending transactions

* add tests for tx_pool reannouce local pending transactions

* add tests for handler reannounce local pending transactions
2021-11-29 14:08:28 +08:00
flywukong
c9f892cd6a go.mod: update goleveldb (#23417) (#578)
Co-authored-by: ucwong <ucwong@126.com>
2021-11-29 14:08:28 +08:00
zjubfd
cccd675148 eth/protocols/snap, trie: better error-handling (#23657) (#582)
Co-authored-by: Martin Holst Swende <martin@swende.se>
2021-11-29 14:08:28 +08:00
dylanhuang
a9ac317571
prepare for release v.1.1.6 (#603) 2021-11-29 10:59:36 +08:00
dylanhuang
3337081222
[R4R] pre-release ci flow (#594)
* ci: add pre release ci flow

* ci: fix change log format
2021-11-26 18:48:56 +08:00
KeefeL
fbc52de8f6
[R4R]reannounce local pending transactions (#570)
* reannouce local pending transactions

* add tests for tx_pool reannouce local pending transactions

* add tests for handler reannounce local pending transactions
2021-11-25 11:00:14 +08:00
flywukong
1d94308fe9
go.mod: update goleveldb (#23417) (#578)
Co-authored-by: ucwong <ucwong@126.com>
2021-11-24 14:23:54 +08:00
zjubfd
a3f9e232be
eth/protocols/snap, trie: better error-handling (#23657) (#582)
Co-authored-by: Martin Holst Swende <martin@swende.se>
2021-11-24 10:47:37 +08:00
yutianwu
8ff7d531e8
Merge pull request #550 from binance-chain/develop
Release v1.1.5
v1.1.5
2021-11-16 14:58:33 +08:00
yutianwu
6fb789de67
prepare for release v.1.1.5 (#549) 2021-11-16 13:51:44 +08:00
KeefeL
288eb52e9f
get diff accounts by replaying block when diff layer not found (#536)
Signed-off-by: Keefe-Liu <bianze.kernel@gmail.com>
2021-11-16 11:39:50 +08:00
yutianwu
db2eea7fbd
Merge pull request #532 from binance-chain/develop
pre release of v1.1.5
2021-11-10 11:51:03 +08:00
zjubfd
9603407407
fix useful difflayer item in cache been prune issue (#527)
add logs

fix useful difflayer item in cache been prune issue

fix too many open files
2021-11-09 19:39:58 +08:00
SolidityGo
176407ae5f
[R4R] fix: graceful shutdown bug (#509)
* fix: graceful shutdown bug that diff handshake failure caused waitDiffExtension can't receive exit signal

* fix: add lock for peerset
2021-11-08 13:09:07 +08:00
KeefeL
94e5e6cfdd
accelarate get diff accounts with scope (#493)
Signed-off-by: Keefe-Liu <bianze.kernel@gmail.com>
2021-11-08 13:08:02 +08:00
yutianwu
30972a7b7b
Merge pull request #506 from binance-chain/develop
[R4R] Release v1.1.4
v1.1.4
2021-11-02 14:12:04 +08:00
yutianwu
32855963cd
prepare for release v.1.1.4 (#504) 2021-11-02 11:58:18 +08:00
yutianwu
b71cbdfe29 implement bep 95
fix test cases

add upgrade name

fix comments
2021-11-02 11:38:55 +08:00
John.h
354d0a4dab
core/state/snapshot: fix BAD BLOCK error when snapshot is generating (#23635) (#485)
* core/state/snapshot: fix BAD BLOCK error when snapshot is generating

* core/state/snapshot: alternative fix for the snapshot generator

* add comments and minor update

Co-authored-by: Martin Holst Swende <martin@swende.se>

* core/state/snapshot: fix BAD BLOCK error when snapshot is generating

* core/state/snapshot: alternative fix for the snapshot generator

* add comments and minor update

Co-authored-by: Martin Holst Swende <martin@swende.se>

Co-authored-by: Ziyuan Zhong <zzy.albert@163.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
2021-11-01 20:34:58 +08:00
KeefeL
797ba71c80
[R4R]fix prefetcher related bugs (#491)
* fix goroutine leak in prefetcher

Signed-off-by: Keefe-Liu <bianze.kernel@gmail.com>

* wait all goroutine done to avoid prefetcher close panic

Signed-off-by: Keefe-Liu <bianze.kernel@gmail.com>
2021-11-01 14:55:20 +08:00
yutianwu
98c4e81643
Merge pull request #473 from j75689/ci/fix_test_flow
Ci/fix test flow
2021-11-01 10:30:29 +08:00
j75689
a9657cb0e6 debug 2021-10-21 15:24:30 +08:00
j75689
87bd1b0d61 feat: time.Tick replaced with time.Ticker 2021-10-21 14:51:31 +08:00
j75689
3e5a7c0abc fix: unit-test failed 2021-10-21 14:51:31 +08:00
zjubfd
60e92c1b14
Merge pull request #472 from binance-chain/bitmap_cache_metrics
[R4R]add metrics for contract code bitmap cache
2021-10-21 09:51:41 +08:00
j75689
100db0784a ci: remove unnecessary job in unit test 2021-10-20 18:56:42 +08:00
j75689
faa007de15 ci: fix error on install truffle 2021-10-20 18:56:42 +08:00
kyrie-yl
a04ee709a5 add metrics for contract code bitmap cache
Signed-off-by: kyrie-yl <yl.on.the.way@gmail.com>
2021-10-20 14:34:57 +08:00
zjubfd
b6035c1afa
Merge pull request #471 from guagualvcha/down_nil_issue
[R4R]fix downloader nil issue when the header is mising
v1.1.3
2021-10-20 12:09:14 +08:00
guagualvcha
dc8df5c857 fix download nil issue 2021-10-20 12:00:40 +08:00
zjubfd
4edd2b105d
Merge pull request #460 from binance-chain/develop
[R4R] Release v1.1.3
2021-10-20 10:28:18 +08:00
zjubfd
7ba77c53cb
Merge pull request #465 from guagualvcha/v_1.1.3
[R4R]prepare for release v1.1.3
2021-10-19 15:05:45 +08:00
guagualvcha
eb581fd949 prepare for release v1.1.3 2021-10-19 10:55:19 +08:00
dylanhuang
f2f68dba15
ci: unit test and truffle test (#456)
* ci: add unit test

fix: failed on test

* ci: add truffle test

* ci: update os version

* ci: add cache for go build
2021-10-18 18:16:32 +08:00
kyrie-yl
aecb61296d
fix cache key do not have hash func (#455)
Signed-off-by: kyrie-yl <yl.on.the.way@gmail.com>
2021-10-15 18:10:58 +08:00