2409 Commits

Author SHA1 Message Date
Giulio rebuffo
b161c27ac3
optimized one db read (#4694) 2022-07-12 10:39:57 +02:00
Andrew Ashikhmin
e0845f229b
Don't feed invalid headers into DB (#4693)
* Reduce code duplication in verifyAndSaveNewPoSHeader

* Don't feed invalid headers into DB

* remove superfluous comment
2022-07-12 10:33:43 +02:00
Giulio rebuffo
51245d294f
Add PoS validator struct [Refactoring] (#4690)
* added fork_validor struct

* replaced occurences of hd with forkValidator

* added engineapi.validatorFork

* 32 blocks maxForkDepth

* removed useless if
2022-07-11 15:12:21 +02:00
nanevardanyan
d8b2077aef
eth: divide test cases and verify with exact values (#4691) 2022-07-11 13:56:00 +02:00
Andrew Ashikhmin
225935b376
Bump log level of some PoS messages from Trace to Debug (#4682) 2022-07-08 15:18:36 +02:00
Andrew Ashikhmin
eec5fa4d41
Add support for eth/67 (#4564)
* Add eth/67

* Listen to eth/66 on a separate port

* Fix compilation error

* Fix cfg66.ListenAddr

* Update erigon ports in README

* Expose port 30304 in docker

* P2pProtocolVersionFlag instead of second sentry

* Remove "66 by default" from usage

* Small comment
2022-07-08 11:14:16 +02:00
sudeep
e13a318e0b
evm t8n to use ExecuteBlockEphemerally api (#4642)
* evm t8n tool to use ExecuteBlockEphemerally api (#4512)

* fix to set V, R, S in legacy transaction

* fix to dump post-execution alloc for evm t8n

* close tx in evm t8n

* populate current difficulty and gas used in output result

- update the ExecutionResult to include corresponding info (like
  Difficulty/GasUsed)

* initial attempt at migrating 'evm t8n' to use ExecuteBlockEphemerally

* using ExecutionResult in ExecuteBlockEphemerally

* bypass validations and integrate with EphemeralExecResult

* fixing output of 'evm t8n'

- remaining bits are "stateRoot" in results.txt and "balance" field for one account in
  alloc.txt (for testdata=1)

* get ExecuteBlockEphemerally to accept getTracer lambda

* fix build failure

* test cases for evm t8n

* more test cases for evm t8n

* fix stateRoot computation in evm t8n

* remove reward argument, as EBE itself takes care of it

* final cleanups for migration to using ExecuteBlockEphemerally

* change EBEforBSC to match EBE

* fix linter issues

* manually revert an unwanted diff

* avoid calculating ReceiptHash twice

* linter check

* minor correction

* remove unnecessary logic in EBEforBsc

* fix integration tests

* fix build
2022-07-07 12:47:00 +01:00
Andrew Ashikhmin
71525fa85e
safeAndFinalizedBlocksAreCanonical -> writeForkChoiceHashes (#4655)
* safeAndFinalizedBlocksAreCanonical -> writeForkChoiceHashes

* fix
2022-07-06 14:42:33 +02:00
Giulio rebuffo
99208ff4dc
Fixed hive test (#4653) 2022-07-06 13:52:49 +02:00
Andrew Ashikhmin
f05401b78e
Don't write headBlockHash & co when FCU points to an old canonical block (#4650) 2022-07-06 13:14:13 +02:00
Andrew Ashikhmin
45ac977b9f
Revert "Small simplification of startHandlingForkChoice (#4636)" (#4649)
This reverts commit cc75387d1063330b5ed8c07427c80e07da15f33d.
2022-07-06 12:04:25 +02:00
Giulio rebuffo
5e1cc9ae51
fixed Invalid Number reorg (#4643) 2022-07-05 23:40:10 +02:00
Andrew Ashikhmin
cc75387d10
Small simplification of startHandlingForkChoice (#4636) 2022-07-05 20:16:52 +02:00
Alex Sharov
7e2d46cbe4
Support "latests block number" in Oracle Backend (#4635)
* save

* save

* save

* save

* save

* save

* save

* save
2022-07-05 14:49:39 +06:00
Giulio rebuffo
d83b7a4ae0
Proper PoS Error reporting (#4631)
* better reporting

* removed debug log

* proper error reporting
2022-07-05 01:31:16 +02:00
Alex Sharov
ff847cd459
Snapshots: save initial list to db, to avoid future snapshots downloading #4625 2022-07-04 18:44:15 +06:00
Andrew Ashikhmin
00ee68e4a1
FeedHeaderPoS already writes header number (#4626)
* FeedHeaderPoS already calls WriteHeaderNumber

* Moreover, WriteHeader already writes to HeaderNumber
2022-07-04 11:28:10 +02:00
Giulio rebuffo
8ae9381f0f
extra logging (#4622) 2022-07-04 01:40:12 +02:00
Giulio rebuffo
3fc51f5ef7
Revert "Proper Pos block checker when INVALID/ACCEPTED status is sent (#4604)" (#4616)
This reverts commit e90e03ae31606e64d407547fddc8fc5551da649a.
2022-07-03 13:11:16 +02:00
Giulio rebuffo
fd2886b927
Revert "fixed compilation (#4614)" (#4615)
This reverts commit 1c5ec22d09f39bbca34ddcf6cb20aa5cf737544e.
2022-07-03 12:54:27 +02:00
Giulio rebuffo
1c5ec22d09
fixed compilation (#4614) 2022-07-03 12:37:31 +02:00
Giulio rebuffo
e90e03ae31
Proper Pos block checker when INVALID/ACCEPTED status is sent (#4604)
* added proper PoS block checker

* proper invalid lvh

* p

* fixed smol thingy

* fix more

* fixed engine API

* fixed engine API

* better nil hash

* added 0x0 checks

* full support
2022-07-03 11:58:57 +02:00
ledgerwatch
77dc35bb85
Revert "evm t8n tool to use ExecuteBlockEphemerally api (#4512)" (#4610)
* Revert "evm t8n tool to use ExecuteBlockEphemerally api (#4512)"

This reverts commit db93d2ea37f74871219231ce128652c1a3aac16f.

* Fix compilation

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
2022-07-02 23:24:20 +01:00
Giulio rebuffo
3de3baf585
default side fork support (#4611) 2022-07-03 00:14:22 +02:00
Giulio rebuffo
84c3cdc417
Fixed Invalid block number on payload (#4605) 2022-07-02 21:38:06 +02:00
sudeep
db93d2ea37
evm t8n tool to use ExecuteBlockEphemerally api (#4512)
* fix to set V, R, S in legacy transaction

* fix to dump post-execution alloc for evm t8n

* close tx in evm t8n

* populate current difficulty and gas used in output result

- update the ExecutionResult to include corresponding info (like
  Difficulty/GasUsed)

* initial attempt at migrating 'evm t8n' to use ExecuteBlockEphemerally

* using ExecutionResult in ExecuteBlockEphemerally

* bypass validations and integrate with EphemeralExecResult

* fixing output of 'evm t8n'

- remaining bits are "stateRoot" in results.txt and "balance" field for one account in
  alloc.txt (for testdata=1)

* get ExecuteBlockEphemerally to accept getTracer lambda

* fix build failure

* test cases for evm t8n

* more test cases for evm t8n

* fix stateRoot computation in evm t8n

* remove reward argument, as EBE itself takes care of it

* final cleanups for migration to using ExecuteBlockEphemerally

* change EBEforBSC to match EBE

* fix linter issues

* manually revert an unwanted diff

* avoid calculating ReceiptHash twice

* linter check

* minor correction

* remove unnecessary logic in EBEforBsc
2022-07-02 06:52:23 +01:00
Alex Sharov
2415fecb26
--downloader.verfiy flag to verify once on startup (#4597)
* save

* save

* save

* save

* save

* save
2022-07-01 16:52:43 +06:00
Andrew Ashikhmin
c92ef8870c
ReportBadHeaderPoS with memoryOverlay (#4600) 2022-07-01 12:50:34 +02:00
Giulio rebuffo
33892ffd79
Fixed transaction on hive tests (#4590)
* try 1

* try 1

* fix now?

* Update accessors_chain.go

* Update accessors_chain.go

* added comments
2022-07-01 11:02:24 +02:00
Alex Sharov
c03d57356c
prevent downloading new snapshots after initial sync (#4585) 2022-06-30 22:35:44 +06:00
Giulio rebuffo
087105d1f3
lvh on invalid transition block (#4583) 2022-06-30 18:20:21 +02:00
Andrew Ashikhmin
7cd195117f
More robust quitting of PoW mining (#4574)
* isTrans -> cfg.blockBuilderParameters != nil

* More robust quitting of PoW mining
2022-06-29 17:39:12 +02:00
Alex Sharov
95b41490e0
Advise remove --snap.stop when no indices (#4570)
* save

* save
2022-06-29 09:14:37 +06:00
Giulio rebuffo
ed69bac065
Fixed in-memory execution hive tests (#4565)
* badBlockHalt

* fixed buidl

* lintl
2022-06-29 08:28:00 +06:00
Giulio rebuffo
aa7985341e
LVH support to memory overlay (#4555)
* fixed fcu

* fixed leak

* maybe now?

* wrote forkchoice
2022-06-28 17:46:24 +02:00
Andrew Ashikhmin
dc5d3ffaac
Revert "Switch from eth/66 to eth/67 (#4549)" (#4562)
This reverts commit 16e57aa8a2a94a8ec872b088c9c9f43ac818d979.
2022-06-28 13:42:35 +02:00
Andrew Ashikhmin
16e57aa8a2
Switch from eth/66 to eth/67 (#4549)
* Switch from eth/66 to eth/67

* Fix a compilation error

* Update erigon-lib

* Refresh erigon-lib
2022-06-28 10:12:48 +02:00
Alex Sharov
b315394c48
eth_estimateGas to use snapshots and blocksLRU (#4556) 2022-06-28 13:56:08 +06:00
Levi Aul
5b42a6e8e8
Pass context to engines that perform async operations (#4531)
* Configure consensus engine with context of stage if engine will do async work

* Change API to make setting of context for AsyncEngine multithreaded-safe

* Ensure lock gets inherited by reference

* Fix linter errors
2022-06-28 09:49:51 +06:00
Giulio rebuffo
588c2d4e36
Implemented side forks support (up to depth of 128). (#4514)
* side forks

* fixed stuff

* lint

* update go.mod and go.sum

* cmd

* added comment

* better validatePayload

* fixed empty payload sometimes

* support future side forks

* added crit error handle

* fix compile err

* lint
2022-06-27 15:59:54 +02:00
Alex Sharov
afd07e5dee
--no-downloader flag support (#4545) 2022-06-26 17:13:32 +06:00
Alex Sharov
1f4f850b89
pass context around hased state stage (#4537)
* save

* save

* save
2022-06-25 20:34:42 +06:00
Andrew Ashikhmin
9b8888d797
Delete bad blocks on unwind (#4529)
* Delete bad headers

* Delete bad bodies
2022-06-24 15:52:04 +02:00
Enrique Jose Avila Asapche
389af4fc06
check if block is nil (#4528)
* check if block is nil

* added to rpcdaemon22
2022-06-24 19:48:40 +06:00
Giulio rebuffo
7896fc60b6
fixed notifications (#4520) 2022-06-23 17:23:35 +02:00
Andrew Ashikhmin
0a527feddb
Send Engine API response after tx.Commit() even when useExternalTx (#4516)
* pendingPayloadStatus -> pendingPayloadHash

* Ensure that Engine API response is sent after tx.Commit() even when useExternalTx

* ProcessEngineApiResponse -> SendEngineApiResponse

* PayloadResponse -> PayloadStatus
2022-06-22 14:54:23 +02:00
Andrew Ashikhmin
daa84922d6
Commit transaction before responding on Engine API (#4506)
* Remove an unused interrupt value

* Remove sendErrResponse from safeAndFinalizedBlocksAreCanonical

* Clean up err handling

* startHandlingForkChoice returns response

* handleNewPayload returns response

* Commit transaction before responding on Engine API

* small fix

* Reply with SYNCING before long unwind

* schedulePoSDownload doesn't require requestStatus anymore
2022-06-20 23:03:17 +02:00
Giulio rebuffo
7a2b575e56
Added memory execution (#4446)
* add

* added in memory execution draft

* func to state

* added functionality

* backend function for memory execution

* simplified stage state

* haltable stage execution

* added mod sum

* hd

* sl

* LOL

* LOL again

* need trace

* more logs

* added cleanup on fcu

* fcu

* mod

* bunch of prtln

* feed

* ops

* headers notify

* revert

* slightly more commented

* head

* nil block retire

* comments

* prevent clean

* corrected occasional panics

* fixed lint
2022-06-19 20:45:36 +01:00
Enrique Jose Avila Asapche
29760d1425
Getting rid of unnecessary cache (#4494)
* whitelistedTable used

* added descriptions

* no cache

* lint
2022-06-19 19:39:43 +01:00
ledgerwatch
64067a2b77
Debugging Engine API (#4488)
* defer tx rollback

* Add http.trace flag

* Fixed http.trace flag

* Fix lint

* Fix lint

* Delete unused tests

* Fix lint

* Fix lint

* Fix lint

* Fix lint

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2022-06-19 13:40:28 +01:00