libp2p / go-libp2p-routing-helpers

MIT License
11 stars 16 forks source link

Add Ability To Manipulate Routable Networks Post Construction + Optimizations For Routing At Scale #29

Open bonedaddy opened 4 years ago

bonedaddy commented 4 years ago

For internal uses I've done some basic modifications (with the intent on doing some more) that I think would be useful for other users, and might be worth discussing about possible implementation ideas, for which I can provide my modification as the source, or examples to build on.

Currently these are my desired features that I will be implementing in a fork of this that are in a private repository due to dependency issues, and conflicting protocol buffer types, so it's not something that is publicly accessible. If these features are desirable then I'm more than happy to PR them here:

There is probably some aspect to this that might benefit from different perspectives, and perspectives from people who are more familiar with libp2p than my self, so if what I've describe in this sound desirable to others then I think its worth having a discussion about it, and since it's something that I will be doing for myself it could potentially result in less work for libp2p developers to implement the same.

Right now I'm still in the prototype stage of implementing my ideas so I'm just getting started with this. For example this is the current state of tiered.go.

The biggest concern is that this is a breaking change to the way this library is used.

Stebalien commented 4 years ago

The first router sounds like something that might belong in this repo. Although it's not something go-libp2p/go-ipfs really needs at the moment (we're using these helpers to statically compose a routing stack).

The rest sound interesting but likely out of scope for this repo. Routers in this repo are mean to be simple and composable. Types of routers that might fit include:

etc...