Andrew Ashikhmin
74a7d7c75a
Refactor PoS downloader ( #3717 )
...
* Remove blockHeight arg from FeedHeaderPoW
* Revert "Remove blockHeight arg from FeedHeaderPoW"
This reverts commit 9bf92921db11cd4e13386fcee29f30241d070fc6.
* Move PayloadMessage & ForkChoiceMessage to package engineapi
* RequestList instead of newPayloadCh & forkChoiceCh
* Introduce request status
* Send reply only when request status is New
* Move BeaconRequestList to HeaderDownload
* Don't SetFetching when PoS (Fetching means handling newBlockHashes)
* Merge Syncing & Synced into DataWasMissing
* Introduce SyncStatus
* onlyNew arg in WaitForRequest
* Move waitingForBeaconChain into RequestList
* Interrupt instead of skipCycleHack
* Introduce timeout for PoS headers
* Split downloadMissingPoSHeaders
* Move StartPoSDownloader into HeaderDownload
* Move Stopping interrupt to StartPoSDownloader
* Move stopping PayloadStatus back to HeadersPOS
* cleanUpPoSDownload
* Post-merge fix
* TestBogusForkchoice
* TestPoSDownloader
* requestStatus in attemptPoSDownload
* Broadcast in SetStatus
* Cosmetics
* attemptPoSDownload -> schedulePoSDownload
* Demote some logs to Trace
2022-03-22 17:49:12 +01:00
primal_concrete_sledge
7d168884fe
Logs sub ( #3666 )
...
* save
* Add onLogs
* Fix lint
* Add proper logs
* Update go.mod
* goimports
* Add unwind
2022-03-17 07:40:18 +00:00
Giulio rebuffo
99f688c3ec
PrevRandao Renaming ( #3616 )
...
* PrevRandao Renaming
* lint
2022-02-24 18:16:05 +01:00
Andrew Ashikhmin
8466cb1b7b
New Engine API semantics (Kiln v1) ( #3340 )
...
* Disable PoS sync temporarily
* Resore PoS sync
* Handle Ctrl^C in HeadersPOS
* Consistent naming
* Extract verifyAndSavePoSHeader & downloadMissingPoSHeaders
* Preparation for EngineForkChoiceUpdated re-orgs
* Extract ForkingPoint
* Comments
* New proto for Engine API
* EngineExecutePayload -> EngineNewPayload
* Return INVALID_BLOCK_HASH if block hash is invalid
* Return EngineStatus_ACCEPTED for side chain blocks
* Update erigon-lib (PR 268)
* Fix payload2Hash
* reverseDownloadCh -> beaconPayloadCh
* Update erigon-lib
* Engine API updated
* ExecutionStatus -> PayloadStatus
* Introduce forkChoiceCh
* Mock ForkChoiceMessage/PayloadStatus
* Add ValidationError to PayloadStatus
* Small clean-ups
* Add INVALID_TERMINAL_BLOCK to EngineStatus
* Add a comment
* Extract handleNewPayload & handleForkChoice
* Partially implement handleForkChoice
* Update erigon-lib
* short vs long re-org
* Move header insertion out of downloadMissingPoSHeaders
* Update erigon-lib
* Refactor ProcessSegmentPOS
* Fix imports
* Wire downloadMissingPoSHeaders into handleForkChoice
* evictOldPendingPayloads
* nolint:unused for assertSegment
* Try nolint instead of nolint:unused
* Small comment improvements
* HeadHeaderHash/StageProgress in handleForkChoice
* TODO: bodyDownloader.AddToPrefetch(block)
* Review call suggestions
* Don't use ReadHeaderNumber in ProcessSegmentPOS
* Don't leave ethbackend waiting when server is stopping
* Update erigon-lib
* More explicit signature of downloadMissingPoSHeaders
2022-02-09 08:33:22 +01:00
Giulio rebuffo
195eb9abaa
Added mining for POS ( #3187 )
...
* added comunication with channels
* added final mining
* removed trash
* bug fixing
* async calls
* one thread
* tests
* better comments
* no lock
* better placing of skipCycleHack
* removed long timer
* moved transitioned block processing
* better naming
* disabled updates on blocks
* sync.Cond
* 2 sync.Cond
* better locking
* Use single sync.Cond. Proposer shutdown
Co-authored-by: yperbasis <andrey.ashikhmin@gmail.com>
2022-01-04 18:37:36 +01:00
Giulio rebuffo
864b744ed2
Support for syncing on mergemock ( #3174 )
...
* block proposing
* standard finalized
* mergemock execution
* private chain can now be ran yay
* perfectioned
* polished
* more polishing
* resize PR
* resize PR
* resize PR
* simplifications
* fixed tests
* better syncronous communication
* better syncronous once again
* clean
* Re-enabled headers verification
* mining finish
* mining finish
* cleaned hash computation
* fixed evm bug
* go.mod
* Update .gitignore
* Update .gitignore
* Update .gitignore
* removed new line from .gitignore
* added go.mod and go.sum
* feeRecipient into preset
* useExternal
* todo
* fixed comment for forkchoiceUpdateV1
* smaller
* smaller
* Revert changes to miner frequency
* Restore useExternalTx
* Fix headerLoadFunc
* do not reset payloadId
* rename
* extra is empty
Co-authored-by: yperbasis <andrey.ashikhmin@gmail.com>
2021-12-29 17:25:13 +01:00
Andrew Ashikhmin
445ac05220
Verify PoS headers before inserting them into DB ( #3151 )
...
* Remove TotalDifficulty stage
* Introduce FeedHeaderFuncType
* Some TODOs
* Don't gossip PoS headers
* FeedHeaderPoS
* Call header.Hash once
* Use FeedHeaderPoS for to write PoS header
* Support errors in EngineExecutePayloadV1
* useExternalTx boilerplate
* Call VerifyHeader on PoS header
* latestValidHash must be nil when status is SYNCING
* fixCanonicalChain instead of canonicalHeadersCollector
* engine.VerifyHeader + FeedHeaderPoS as headerLoadFunc
* fix daemon
Co-authored-by: Giulio Rebuffo <giulio.rebuffo@gmail.com>
2021-12-23 15:06:10 +01:00
Andrew Ashikhmin
cfb35633ad
Make waitingPosHeaders atomic since it's accessed concurrently ( #3157 )
2021-12-22 17:12:35 +01:00
Giulio rebuffo
3c95db0078
Fixed Proof-of-stake transition ( #3075 )
...
* added download channel to stage headers
* added direct execution
* now channel of headers rather than bodies
* simplifications
* fixed ttd headerForward
* garbage removed
* added some more stepping stones
* better transition
* covered edge case
* added names to returned values
* clean
2021-12-03 11:55:00 +01:00
Andrew Ashikhmin
094ab5e77d
[EIP-4399] Remove newly added Header.Random (reuse mixHash instead) ( #3069 )
...
* [EIP-4399] Remove newly added Header.Random (reuse mixHash instead)
* add a TODO
* Update mock payload hashes
2021-12-01 13:41:31 +01:00
Giulio Rebuffo
8ee29ee0d1
clear test
2021-11-30 18:43:46 +01:00
Giulio Rebuffo
b9018db353
comment
2021-11-30 18:14:34 +01:00
Giulio Rebuffo
e76bc807bb
better api
2021-11-29 15:47:08 +01:00
Giulio Rebuffo
0c9e5cd513
fixed unit tests
2021-11-27 16:29:46 +01:00
Giulio Rebuffo
dbfa51960c
added downloader unit tests
2021-11-26 14:51:32 +01:00
Giulio Rebuffo
7c60126347
added unit tests for simple execution
2021-11-26 11:59:05 +01:00