Skip to content

feat(consensus): switch from discovery p2p to lookup p2p#636

Merged
SuperFluffy merged 2 commits intomainfrom
janis/discovery-to-lookup
Nov 3, 2025
Merged

feat(consensus): switch from discovery p2p to lookup p2p#636
SuperFluffy merged 2 commits intomainfrom
janis/discovery-to-lookup

Conversation

@SuperFluffy
Copy link
Copy Markdown
Contributor

@SuperFluffy SuperFluffy commented Nov 2, 2025

This patch changes the consensus p2p network from discovery to lookup. Where before, one or more known bootstrapper nodes were provided, now all nodes have to be known at startup in order to communicate with each other.

This change is a requirement for dynamic validator sets using on-chain lookup and is done in this patch to de-risk #585.

As part of this patch the following changes were done to the consensus config file:

  1. the bootstrappers entry was removed.
  2. listen_port was removed
  3. listen_addr was added
  4. dialable_addr was added

Our commonware x reth e2e tests use a simulated network, and so we are not testing this part of the flow.

However, I spun up a local network of nodes using this and the nodes were able to connect and produce blocks.

@SuperFluffy SuperFluffy requested a review from klkvr November 2, 2025 00:15
oracle
.update(0, config.peers.keys().cloned().collect())
.await;
let all_resolved_peers = resolve_all_peers(&config.peers)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

We don't check if our pubkey is among the peers. It's not necessary for lookup p2p.

@SuperFluffy SuperFluffy merged commit 2be62e8 into main Nov 3, 2025
15 checks passed
@SuperFluffy SuperFluffy deleted the janis/discovery-to-lookup branch November 3, 2025 14:50
unbalancedparentheses pushed a commit to unbalancedparentheses/tempo that referenced this pull request Feb 23, 2026
This patch changes the consensus p2p network from discovery to lookup.
Where before, one or more known bootstrapper nodes were provided, now
all nodes have to be known at startup in order to communicate with each
other.

This change is a requirement for dynamic validator sets using on-chain
lookup and is done in this patch to de-risk
tempoxyz#585.

As part of this patch the following changes were done to the consensus
config file:

1. the `bootstrappers` entry was removed.
2. `listen_port` was removed
3. `listen_addr` was added
4. `dialable_addr` was added

Our commonware x reth e2e tests use a simulated network, and so we are
not testing this part of the flow.

However, I spun up a local network of nodes using this and the nodes
were able to connect and produce blocks.
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