Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP connmgr v2 specification #161

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft

WIP connmgr v2 specification #161

wants to merge 1 commit into from

Conversation

raulk
Copy link
Member

@raulk raulk commented Apr 1, 2019

Incomplete. Heavy WIP. Open to high-level feedback.

  • introduction
  • high-level overview
  • quota allocation
  • protocol enrollment
  • stream scoring
  • locking
  • bursting
  • regulation procedure
  • environment sensing
  • observability

@ghost ghost assigned raulk Apr 1, 2019
@ghost ghost added the in progress label Apr 1, 2019
@vasco-santos
Copy link
Member

Awesome!

I and @jacobheun will need to work in improving the connection manager in js-libp2p for Q2, as a consequence of enabling the DHT and dealing with way more peers now. This way, we should be able to get involved in this discussion.

@JustMaier
Copy link

It seems like there could be some interesting overlap between the connection manager and the proposed v2 peerstore. Ideally, peer metrics and connection manager determined quotas could be retained in the peerstore, and if the peerstore becomes a source of address quality/confidence, the information would be very valuable to the connection manager as it allocates resources.

Either way, I think that evolving peerstore around the same time as connection manager could make a lot of sense.

@raulk
Copy link
Member Author

raulk commented Jun 4, 2019

@JustMaier – thanks for your interest in this spec. I think you're dead on with your intuitions about the alignment between peerstore v2 and connection manager v2. Have a look at the RFC for the go-libp2p eventbus too – I think you'll find it interesting.

All these proposals share a common theme of adopting a reactive, event-driven system comprised of autonomous, discrete services with loose coupling amongst each other.

@jacobheun
Copy link
Contributor

I've started to put down some of my notes on Connection Management over at libp2p/notes#13 (comment) to avoid polluting this PR.

@meyer9
Copy link

meyer9 commented Jul 23, 2019

Would the protocol enrollment section explain how to accept peers based on the protocols they support? For example, say I want to have 10 peers supporting the IPFS protocol and 10 peers supporting the FooBar protocol.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Triage
Development

Successfully merging this pull request may close these issues.

5 participants