Skip to content

Extend execution clients search to enode, ENR, IP and peers - #839

Merged
barnabasbusa merged 2 commits into
masterfrom
bbusa/el-client-search
Aug 19, 2026
Merged

Extend execution clients search to enode, ENR, IP and peers#839
barnabasbusa merged 2 commits into
masterfrom
bbusa/el-client-search

Conversation

@barnabasbusa

Copy link
Copy Markdown
Collaborator

Summary

The search box on the execution clients page only matched the client name. This brings it in line with the CL page search (name / peer ID / ENR) and extends it further.

A client row now matches when the search text is found in any of:

  • client name, peer ID, version
  • the node's own enode, ENR, IP address, or listen address
  • any connected peer's enode, ENR, peer ID, or name

Matching against connected peers means you can paste an IP address, enode, or ENR into the search box and find which of your clients are connected to that peer — handy for tracking down who is peered with a specific node on a devnet.

Notes

  • Placeholder text updated to "Search by name, peer ID, enode, ENR, or IP...".
  • Sensitive fields (enode/ENR/IPs) are empty in the page model when ShowSensitivePeerInfos is disabled, so they simply never match — no information leak through search behavior.
  • Builds on the ENR fields added in Add ENR fields to execution clients page #838.

The search box on the EL clients page only matched the client name.
Bring it in line with the CL page search and extend it: matches now
include the node's peer ID, version, enode, ENR, IP and listen address,
plus the enode/ENR/peer ID/name of its connected peers - so searching
for an IP address, enode or ENR also finds the clients connected to
that peer. Sensitive fields are empty when ShowSensitivePeerInfos is
disabled and simply never match.
@barnabasbusa
barnabasbusa enabled auto-merge August 19, 2026 08:38

@redpandabot redpandabot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Summary

The PR extends the execution clients search to match each node's name, peer ID, version, enode/ENR/IP/listen-addr and every connected peer's ID/enode/ENR/name. The JS field names line up with the Go model and the lookups resolve correctly, but peer enode/name are searched even when ShowSensitivePeerInfos is disabled, contradicting the PR's stated 'sensitive fields never match' invariant.

Issues

  • 🟡 templates/clients/clients_el.html:561peer enode/name are searchable even when ShowSensitivePeerInfos is off — see the thread on that line

Reviewed @ efa3dadc
"When in doubt, leave it out." — Joshua Porter

Comment thread templates/clients/clients_el.html
Peer enode, name, caps and protocols were sent in the page data
unconditionally and only hidden client-side, so the extended search
could still match a peer's enode/IP with ShowSensitivePeerInfos
disabled. Only populate them (together with the already-gated ENR)
when the flag is on, matching the gating of the node's own
enode/ENR/IPs.
@barnabasbusa
barnabasbusa merged commit 48b304e into master Aug 19, 2026
5 checks passed
@barnabasbusa
barnabasbusa deleted the bbusa/el-client-search branch August 19, 2026 11:02

@redpandabot redpandabot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The PR extends the execution-clients page search to match a node's own enode/ENR/IP/listen-address/version plus the enode/ENR/peer-ID/name of its connected peers, mirroring the CL page's search pattern. The companion change gates per-peer sensitive fields (name, enode, caps, protocols, ENR) server-side behind ShowSensitivePeerInfos. I traced every field the JS matches against to its model json tag, ran the match function through a node repro (empty sensitive fields never match when the flag is off; all fields match when on), confirmed the gate aligns with the template's existing ko-if gating, and found the Go refactor touches no locks or error paths. No functional bugs or leaks found.


Reviewed 2 changed file(s) @ 293adf7a — no blocking issues found.
"When in doubt, leave it out." — Joshua Porter

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