execution/protocol/rules: remove obsolete clique PoA engine#20532
Merged
Conversation
Clique proof-of-authority is no longer used by any supported network. Remove the entire execution/protocol/rules/clique package and all references: config structs, CLI flags, DB tables, RPC API registration, and engine instantiation paths. Move SealHash/encodeSigHeader into the aura package (the only remaining consumer). Simplify DeveloperGenesisBlock to produce a non-clique genesis directly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Closed
Remove clique CLI flags, RPC methods, and evm seal options from docs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Removes the deprecated Clique PoA consensus engine and all associated configuration, RPC, CLI flags, DB tables, and documentation, leaving AuRa/Ethash/Bor as the supported consensus paths.
Changes:
- Deleted the
execution/protocol/rules/cliquepackage and removed all instantiation paths, configs, and DB tables tied to Clique. - Removed Clique-related CLI flags, RPC namespace registration, and documentation references.
- Moved the Clique-style
SealHash/signature-header encoding logic into the AuRa package (the remaining consumer).
Reviewed changes
Copilot reviewed 32 out of 32 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| rpc/jsonrpc/daemon.go | Drops the clique RPC namespace registration. |
| node/rulesconfig/config.go | Removes Clique engine creation and related DB path logic. |
| node/ethconfig/gen_config.go | Removes TOML (un)marshalling for Clique config. |
| node/ethconfig/config.go | Removes the Clique config field from node eth config. |
| node/eth/backend.go | Removes Clique-based rules config selection during backend init. |
| node/cli/default_flags.go | Removes Clique snapshot/datadir flags from default CLI flags. |
| execution/types/accounts/account.go | Removes Clique-specific mimetype constant. |
| execution/tracing/tracers/js/tracer_test.go | Updates chain config literals to no longer reference Clique. |
| execution/tests/blockgen/chain_makers.go | Updates comments that referenced Clique-only testing. |
| execution/protocol/rules/merge/merge.go | Updates comment to no longer mention Clique as an eth1 engine. |
| execution/protocol/rules/clique/verifier.go | Deletes Clique verifier implementation. |
| execution/protocol/rules/clique/snapshot_test.go | Deletes Clique snapshot/voting tests. |
| execution/protocol/rules/clique/snapshot.go | Deletes Clique snapshot/voting logic. |
| execution/protocol/rules/clique/keys.go | Deletes Clique snapshot key helpers. |
| execution/protocol/rules/clique/clique_test.go | Deletes Clique regression test(s). |
| execution/protocol/rules/clique/clique.go | Deletes Clique engine implementation and helpers (incl. RPC API). |
| execution/protocol/rules/clique/api.go | Deletes Clique RPC API implementation. |
| execution/protocol/rules/aura/aura.go | Internalizes SealHash/signature-header encoding previously sourced from Clique. |
| execution/chain/spec/genesis.go | Simplifies Developer genesis creation to be non-Clique. |
| execution/chain/spec/clique.go | Removes Clique chainspec config and snapshot config type. |
| execution/chain/rules.go | Removes CliqueRules constant. |
| execution/chain/chain_config.go | Removes CliqueConfig and Config.Clique fields; updates consensus comment. |
| execution/builder/finish.go | Removes Clique-specific nonce handling branch (now obsolete). |
| docs/gitbook/src/fundamentals/configuring-erigon/README.md | Removes documentation for Clique-related CLI flags. |
| docs/DEV_CHAIN.md | Updates dev-chain docs to reflect removal of Clique-based dev mode flags. |
| db/kv/tables.go | Removes Clique DB tables and simplifies ConsensusTables. |
| db/config3/config3.go | Removes Clique mention from FullImmutabilityThreshold comment. |
| cmd/utils/flags.go | Removes Clique CLI flags/config wiring; updates dev genesis creation. |
| cmd/rpcdaemon/cli/config.go | Removes Clique remote-engine special casing (now obsolete). |
| cmd/rpcdaemon/README.md | Removes Clique RPC namespace/methods from RPC daemon docs. |
| cmd/integration/commands/stages.go | Removes migration support for legacy Clique consensus DB path. |
| cmd/evm/README.md | Removes docs for Clique sealing support in evm tool. |
Comments suppressed due to low confidence (1)
rpc/jsonrpc/daemon.go:195
cfg.APIentries that aren’t handled by this switch are silently ignored. Now that thecliquenamespace has been removed, users can still pass--http.api=...,clique(or have it in existing configs) and get no feedback. Consider adding adefaultcase to warn/error on unknown API namespaces (at least for removed ones likeclique) to avoid silent misconfiguration.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Remove empty else block in migration code and drop clique config from test fixture JSON. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 33 out of 33 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
taratorio
approved these changes
Apr 14, 2026
# Conflicts: # execution/protocol/rules/clique/keys.go
- Add RulesName.Validate() to reject unsupported consensus engine names (e.g. "clique") at genesis load time instead of silently falling back to ethash. - Remove the no-op --dev.period CLI flag. - Fund the derived dev signer address in the genesis alloc. - Set Rules: EtHashRules in DeveloperGenesisBlock for consistency. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
execution/protocol/rules/cliquepackage (~2,350 lines) — Clique PoA is no longer used by any supported networkCliqueConfigstruct,CliqueRulesconstant, clique DB tables, CLI flags, RPC API registration, and all engine instantiation pathsSealHash/encodeSigHeaderinto the aura package (only remaining consumer)DeveloperGenesisBlockto produce a non-clique genesis directlyTest plan
make erigon— builds successfullymake integration— builds successfullymake lint— passes clean (multiple runs)🤖 Generated with Claude Code