Skip to content

node: introduce nodebuilder component registry#20473

Merged
AskAlexSharov merged 1 commit into
feat/componentization-authfrom
feat/componentization-nodebuilder
Apr 13, 2026
Merged

node: introduce nodebuilder component registry#20473
AskAlexSharov merged 1 commit into
feat/componentization-authfrom
feat/componentization-nodebuilder

Conversation

@mh0lt

@mh0lt mh0lt commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Introduces node/nodebuilder/Builder as the central registry for extracted components. Replaces the inline downloaderProvider field on the Ethereum struct with backend.components — a single access point for all componentized subsystems.

Currently holds only Downloader; Storage will be added in the next PR.

Changes

  • New: node/nodebuilder/builder.go — Builder struct with BuildDownloader method
  • Modified: node/eth/backend.go — replace downloaderProvider field with components *nodebuilder.Builder, update all references

This is minimal scaffolding that grows as components graduate from backend.go.

Test plan

  • make lint passes
  • make erigon builds
  • CI passes

Depends on: #20472 (auth plugin)

Add node/nodebuilder/Builder as a single registry for extracted
components. Currently holds only Downloader; Storage will be added next.

backend.go: replace the inline downloaderProvider field with
backend.components (a *nodebuilder.Builder). All downloaderProvider
references become backend.components.Downloader.

This is minimal scaffolding — the builder will grow as components are
extracted from backend.go (storage, txpool, sentry, etc).
@AskAlexSharov

Copy link
Copy Markdown
Collaborator

fyi: we have
node/node.go where Node has list of "commponents" in field lifecycles []Lifecycle
and they have Start/Stop called in
func (n *Node) Start() error {

@AskAlexSharov AskAlexSharov merged commit a859857 into feat/componentization-auth Apr 13, 2026
@AskAlexSharov AskAlexSharov deleted the feat/componentization-nodebuilder branch April 13, 2026 12:24
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