Skip to content

Nim-libp2p partition scenario in regression : deploy the bootstrap after the split is applied - #405

Draft
radiken wants to merge 1 commit into
masterfrom
alan/partition-bootstrap-after-split
Draft

radiken wants to merge 1 commit into
masterfrom
alan/partition-bootstrap-after-split

Conversation

@radiken

@radiken radiken commented Sep 19, 2026 •

Copy link
Copy Markdown
Contributor

Nodes no longer wait for COLDSTARTDELAY before dialling, so the partition scenario's halves could mesh through the bootstrap before the network policies existed. The partition now deploys the bootstrap after the split, so no node finds a peer before it.

related to #321

Nodes no longer honour COLDSTARTDELAY, so the low-index half formed before the
network policies existed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@radiken radiken changed the title Partition: deploy the bootstrap after the split is applied Nim-libp2p partition scenario in regression : deploy the bootstrap after the split is applied Sep 19, 2026
@radiken radiken self-assigned this Sep 19, 2026
@radiken radiken added the ift IFT commitments label Sep 19, 2026
@radiken radiken added this to DST Sep 19, 2026
@radiken radiken moved this to In review in DST Sep 19, 2026
@radiken
radiken marked this pull request as ready for review September 19, 2026 00:31

@AlbertoSoutullo AlbertoSoutullo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I don't know if I am following this.

  1. If we are doing a change in the partition experiment, why this change is not in partition.py?
  2. Why are we deploying the bootstrap after the split? If we are doing the split and we don't want the nodes to re-discover each other after the split, we could theoretically just kill the bootstrap node, and then apply the partition. Why do we need to deploy a bootstrap node afterwards?

@radiken

radiken commented Sep 21, 2026

Copy link
Copy Markdown
Contributor Author
  1. If we are doing a change in the partition experiment, why this change is not in partition.py?

The deploy order lives in NimLibp2pExperiment._run, so partition.py cannot reorder it without overriding the whole sequence, so I think it would be better to set a flag there only.

  1. Why are we deploying the bootstrap after the split? If we are doing the split and we don't want the nodes to re-discover each other after the split, we could theoretically just kill the bootstrap node, and then apply the partition. Why do we need to deploy a bootstrap node afterwards?

This scenario's name is now a bit confusing, there is no spliting, we are just trying to start two networks and join them. That's because I didn't find a way to unconnect two networks ones they are connected.

And the problem now is that, the 1000 pods rollout takes about 2 minutes, so by the time the pods exist and we can label them, they have already found each other. Killing the bootstrap would not unconnect them here as well.

I agree this is not the best code, but at the moment I don't have a better way to implement this test case...

@radiken

radiken commented Sep 21, 2026

Copy link
Copy Markdown
Contributor Author

Putting this on hold to find a better way to implement this scenario

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ift IFT commitments

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants