Skip to content

Conversation

tysonclugg
Copy link

Title

feat(types): Support custom events on PubSub and PeerStreams

Description

Allow implementations of PubSub and PeerStreams to maintain type safety when using custom events.

Notes & open questions

Given these changes don't affect functional code paths and that there's no clear direction on how typescript only changes should be tested in js-libp2p, I've not added any tests.

Change checklist

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation if necessary (this includes comments as well)
  • I have added tests that prove my fix is effective or that my feature works

@tysonclugg tysonclugg requested a review from a team as a code owner April 14, 2025 02:44
@tysonclugg tysonclugg force-pushed the feature/custom-peerstream-events branch from edb5f91 to 59eabb0 Compare April 24, 2025 06:55
@p-shahi
Copy link
Member

p-shahi commented May 20, 2025

@tysonclugg We're thinking of removing pubsub from the js-libp2p monorepo (in the future perhaps as a part of v3) and so, this PR is better served to be made against https://github.com/ChainSafe/js-libp2p-gossipsub
@achingbrain will create an issue in that repo describing the current state of wonky interfaces between pubsub and gossipsub in that repo as well

@p-shahi p-shahi closed this May 20, 2025
@tysonclugg
Copy link
Author

tysonclugg commented Jun 1, 2025

I'm of the opinion that js-libp2p-gossipsub should be merging into js-libp2p instead of the other way around.

In the interim (until things are moved one way or the other), this is still the correct place for this PR. There is no other place to submit this code change which has clear benefits for the typing system. I would very much appreciate this being merged now, and not put off because of a potential future change in policy (which hasn't been announced anywhere at this stage that I can see).

Q1: @achingbrain What assurances do we have that anything is being done in the ChainSafe repo? Are PRs such as #523 being looked at, and are ChainSafe still actively developing js-libp2p-gossipsub for use with their own active projects?

Q2: @p-shahi What assurances do we have that PubSub will remain as a level 3A (recommended active) part of libp2p, and isn't destined for deprecation?

My concerns about moving PubSub out of libp2p is that it will rapidly degenerate into disrepair, thereby forcing a negative response to Q2 above. Moving gossipsub into libp2p helps to keep things from going stale and overall should improve the situation (eg: PR 523 linked above).

@achingbrain
Copy link
Member

What assurances do we have that anything is being done in the ChainSafe repo?

There are recent commits so things are happening.

are ChainSafe still actively developing js-libp2p-gossipsub for use with their own active projects?

Yes. It is used extensively by lodestar.

What assurances do we have that PubSub .. isn't destined for deprecation?

Nothing is destined for deprecation. These are protocols/services that you can use with js-libp2p but js-libp2p doesn't need to know about them in order to ship (i.e. not everything needs to live in this repo).

I appreciate that you have several PRs open against GossipSub that have not been reviewed. I would suggest trying to engage with the ChainSafe dev team to get them moved along.

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.

3 participants