* Fix tx propagation and announcement tests
* Fix checkpoint challenge test
* Save current state of code
* Fix compile errors
* Fixes
* Fix formatting
* Printouts
* Printouts
* Printouts
* Too much printing, not close db when stopping
* Better handing of interruptions
* No need to reset after incremental interruption
* Fix stages
* Fixes
* Giving up
* Fix formatting
* Cleanup
* make plain state + staged sync the default
* remove sync mode flag completely
* one thing
* fix the console
* simplify code
* fix and skip tests
* fixup for console tests
* cmd/tester to initiate reorg
* Second commit
* Turn on profile
* More
* Unwind function
* More fixes
* Before fixing tests
* Fix compile error
* Fix lint
* Fix formatting
* Fix lint
* Fix nil in tests
* Fix lint
* Decouple txpool from rawdb
* Fix some tx tests
* One more test
* Fix the rest of tests in tx_pool_test.go
* Fix formatting
* limit incremental step size of stages 5 and 6
* remove limit, make incremental
* remove_load_start_key_from_etl
* switch to "struct of arrays" from "array of structs"
* switch to "struct of arrays" from "array of structs"
Co-authored-by: Alexey Akhunov <akhounov@gmail.com>
* store stageData correctly
* integration: use State of sync, use stage data, don't skip persistent steps even if they complete before interruption
* reset_state: clear unwind stages info
* stage4: stop where previous stage stopped, print to logs digits which represent what exactly is in DB, rename variable 'nextBlockNumber' to 'stateProgress'
* rebase to master
* simplify chainconfig
* try increase sleep time on ci
* try increase sleep time on ci
* try increase sleep time on ci
* try increase sleep time on ci
* cmp to reference db if --reference_chaindata provided
* graceful shutdown
* add ./cmd/integration to makefile
* add interruption support for different stages
* don't compare errors directly
* save state
* walkAsOf by cs test passed
* cs search for plain state
* save state
* fix accounts tests
* refactor walkAsOf account tests
* fix storage test
* refactor walkAsOf storage tests
* fix lint
* fix test
* save state
* save state
* add test with fixed bits
* fmt
* add stages check
* fix lint
* fix lint
* remove obsoleted methods
```
go run ./cmd/integration reset --chaindata=...
go run ./cmd/integration state_stages -h
go run ./cmd/integration state_stages --chaindata=... --verbosity=3 --block=2_000_000 --unwind=10 --unwind_every=1_000
```
Also, it inherits flags from geth:
```
--pprof.cpuprofile=./cpu.out // to file
--pprof --pprof.port=6060 // launch pprof server
--metrics // sends to prometheus
```
* fix case: if header stage is ehead of body stage
* fix case: if header stage is ehead of body stage
* fix case: if header stage is ehead of body stage
* allow stage3 to sync to given block
* allow stage3 to sync to given block