Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

clients/go-ethereum: remove deprecated PoW #773

Merged
merged 4 commits into from
May 4, 2023
Merged

Conversation

s1na
Copy link
Contributor

@s1na s1na commented May 3, 2023

Geth PoW mining and real verification, and as a result many of the utilities used in tests such as makecache makedag etc.

The --fakepow flag is also removed. Now a merge-ready network is required and in that case a PoW fake verifier will be available. To trigger this we set "terminalTotalDifficultyPassed": true.

ethereum/go-ethereum#27178

@s1na s1na marked this pull request as draft May 3, 2023 15:58
@fjl fjl changed the title geth: remove deprecated PoW clients/go-ethereum remove deprecated PoW May 3, 2023
@fjl fjl changed the title clients/go-ethereum remove deprecated PoW clients/go-ethereum: remove deprecated PoW May 3, 2023
Comment on lines -4 to -8
RUN \
/usr/local/bin/geth makecache 1 /ethash && \
/usr/local/bin/geth makecache 30000 /ethash && \
/usr/local/bin/geth makedag 1 /ethash && \
/usr/local/bin/geth makedag 30000 /ethash
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe we can skip the line above too, and also L24 COPY --from=geth /ethash /ethash

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah I forgot to push this. Thanks for fixing

Copy link
Collaborator

@holiman holiman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, it can't be any less functional than current master. Might aswell get it merged IMO. Un-draft @s1na ?

@holiman
Copy link
Collaborator

holiman commented May 4, 2023

The --fakepow flag is also removed. Now a merge-ready network is required and in that case a PoW fake verifier will be available. To trigger this we set "terminalTotalDifficultyPassed": true.

An alternative solution is to re-add the --fakepow flag. For example, we might have cases with invalid chains, due to invalid difficulty. We can still support that, because the fakepow mechanism still exists internally in geth, we just removed the flag.

Fakepow is basically ethash but without verifying the PoW nonce.

This PR will instead accept "invalid difficulty chain" due to the terminalTotalDifficultyPassed flag. Although, one might argue that failing those tests are correct, because geth is no longer able to function correctly without external guidance on canon header.

@s1na s1na marked this pull request as ready for review May 4, 2023 12:54
@s1na
Copy link
Contributor Author

s1na commented May 4, 2023

I still hadn't a chance to look at every simulation but un-drafted for now. This will at least fix CI for other PRs.

@s1na s1na merged commit 7e559b0 into ethereum:master May 4, 2023
mattsse pushed a commit to paradigmxyz/hive that referenced this pull request May 12, 2023
* simulators/ethereum/engine: send `eth_` requests to port 8545 (ethereum#752)

simulators/ethereum/engine: send `eth_` requests to 8545

* clients/ethereumjs: Update branch (ethereum#753)

* clients/ethereumjs: Change git branch

* clients/ethereumjs: Fix bash script issues

* simulators/ethereum/engine: node: unsubscribe from events

* simulators/ethereum/engine: clmock: add extra logs

* simulators/ethereum/engine: correctly stop secondary clients

* simulators/eth2/common: create client interfaces, update mock builder (ethereum#738)

* simulators/eth2/common: refactor clients

* simulators/eth2/engine: fixes due to refactor

* simulators/eth2/common: builder: invalidate payloads

* simulators/eth2/common: builder readme

* simulators/eth2/common: builder: add option to build a payload on an outdated version

* simulators/eth2/withdrawals: add invalid built payload version test

* simulators/eth2/common: builder: remove check to build invalid payload

* simulators/eth2/withdrawals: Fix check

* simulators/eth2/withdrawals: test case validation

* simulators/eth2/common: builder: fix invalidation

* simulators/eth2/withdrawals: fix verifications again

* simulators/ethereum/pyspec: Comment Dockerfile to run local fixtures (ethereum#755)

simulators/ethereum/pyspec: Add Dockerfile comment to run locally generated fixtures

* clients/besu: add --data-storage-format=BONSAI  (ethereum#758)

* simulators/ethereum/engine: Unique Payload ID Tests (ethereum#757)

* simulators/ethereum/engine: expose generic fcu, np

* simulators/ethereum/engine: Unique payload id test

* simulators/ethereum/engine: Add payload id test

* simulators/ethereum/engine: Parallel getPayloadBodies Test (ethereum#749)

* simulators/ethereum/engine: parallel getpayloadbodies

* simulators/ethereum/withdrawals: readme

* clients/erigon: --externalcl flag is not supported anymore (ethereum#760)

* graphql: consistent rule for Long outputs and args (ethereum#746)

* simulators/eth2: Verify block signatures on blocks sent to builder (ethereum#756)

* simulators/eth2/common/builder: interfaces changes

* simulators/eth2/common/builder: verify signatures

* simulators/eth2/withdrawals: Verify block signatures

* simulators/eth2/withdrawals: Update README

* simulators/eth2/withdrawals: minor nit comment

* clients/erigon: explicit --db.size.limit value (ethereum#766)

* clients/nethermind: Cancun support (ethereum#762)

* clients/nethermind: Cancun Support

* clients/nethermind: Dockerfile args

* clients/besu: Cancun Support (ethereum#769)

* clients/ethereumjs: Cancun Support (ethereum#768)

clients/ethereumjs: Cancun Support.

* clients/go-ethereum: remove deprecated PoW (ethereum#773)

Remove ethash-related flags and utils from go-ethereum, since they were
deprecated upstream.

---------

Co-authored-by: Martin Holst Swende <[email protected]>

* clients/nethermind: Add excessDataGas to genesis mapper. (ethereum#771)

* sim/pyspec: bubble error (ethereum#777)

* simulators/devp2p: fix issue causing ethereumjs to crash (ethereum#778)

sim/devp2p: fix issue causing ethereumjs to crash

It seems ethereumjs crashes if the chainid is not present in the genesis.

---------

Co-authored-by: Mario Vega <[email protected]>
Co-authored-by: Gabriel Fukushima <[email protected]>
Co-authored-by: Andrew Ashikhmin <[email protected]>
Co-authored-by: Sina Mahmoodi <[email protected]>
Co-authored-by: Spencer Taylor-Brown <[email protected]>
Co-authored-by: Martin Holst Swende <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants