Skip to content
This repository has been archived by the owner on Feb 12, 2024. It is now read-only.

Sunset WebSockets Star #1767

Closed
daviddias opened this issue Dec 9, 2018 · 9 comments
Closed

Sunset WebSockets Star #1767

daviddias opened this issue Dec 9, 2018 · 9 comments
Labels
status/ready Ready to be worked

Comments

@daviddias
Copy link
Member

With DHT and Circuit Relay coming to their full potential in v0.34.0 #1721, I want to propose the sunset of the WebSockets Star transport in favor of the power combo DHT Peer Routing + Circuit Relay.

This issue serves the purpose to gather thoughts and reach Consensus, plus outline the migration path necessary (tests, what's missing to do, etc).

@daviddias daviddias added the status/ready Ready to be worked label Dec 9, 2018
@pgte
Copy link
Contributor

pgte commented Dec 10, 2018

To me websocket-star provides not only peer routing and relay, but it also peer discovery.

For instance, In peer-star, we are using the transport discovery events to gather knowledge about the existence of peers. After we discover a new peer, we ask it if they're interested in participating in the app, etc...

I think we need something like the rendezvous protocol implemented and some nodes that implement it running so that we're able to do service discovery, which is something I think that DHT Peer Routing + Circuit relay does not provide us.

@daviddias does this make sense to you?

@daviddias
Copy link
Member Author

@pgte it does, thank you for bringing up the Rendezvous Protocol. Where can I track it's progress, blockers and ETA?

@pgte
Copy link
Contributor

pgte commented Dec 10, 2018

@daviddias besides that spec, I'm not sure. I wish they had an "Awesome Endeavour" so we could track this on one thread...

@mkg20001
Copy link
Contributor

As this does not seem to be progressing I just quickly hacked together stardust

https://github.com/libp2p/js-libp2p-stardust

Discussion is at libp2p/js-libp2p-websocket-star#70

@daviddias
Copy link
Member Author

@mkg20001 the focus will be to continue investing on libp2p solutions that don't rely on external and inflexible central points. That is, Rendezvous, Circuit Relay and full Peer Routing adopted by default.

@mkg20001
Copy link
Contributor

@daviddias And when will they be ready to get shipped? This really just needs a few more days to be ready. Rendezvous and other solutions don't seem to be really progressing in terms of finalization.

@mkg20001
Copy link
Contributor

Aside from that there are things I want to mention:

libp2p/js-libp2p-websocket-star#43 this pr (which I eventually closed, as it didn't make any sense to keep it open anymore, simply because not much would change anyways) was a complete rewrite of ws-star to use p2p-circuit, which is what is described here as a solution. Later some parts of ws-star v2 got turned into rendezvous (more or less the reason why I closed the pr). I had some motivation as I saw it slowly progress towards something final and hacked together the JS implementation https://github.com/libp2p/js-libp2p-rendezvous. I was excited over the fact that ws-star is finally getting replaced by something proper. Later this endeavor didn't really seem to progress. I was working on the js implementation of rendezvous but later eventually gave up as I haven't seen much feedback and the rendezvous spec was slowly moving in some other direction. Adding PoW is great, and I don't want to criticize anyone, but that's slowly becoming a stale bikeshed-y discussion. I don't know the progress on the go side, but JS hasn't really seen any except for some README changes.

The wrtc-star problem also has a solution here: libp2p/js-libp2p-webrtc-star#148 . This one didn't get much attention either. What it did? Simply replaced socket.io with direct communication between peers or a shared server in between, just much more flexible and decentralized then socket.io could have made it possible. I've even taken the effort to make some slides and gave some explanations but still no feedback.

So this time I made things simple: I created something which wasn't in anyway complex (but additionally not really future-proof either) that replaces the current ws-star which is causing all this trouble. Something with immediate benefits that are clearly visible. And then get told that it's not really necessary. At least that's how I feel about this comment.

The PRs are still out there, still awaiting the feedback and merges they might never receive.

I'm creating all this for free, and even more like https://github.com/mkg20001/libp2p-nodetrust, which is still up. Or https://github.com/mkg20001/libp2p-dissector. But I somehow do not feel like most of my creations are valued. The only thing that people seem to use is ws-star, which is the worst of 'em all. That simply makes me lose motivation for further contributions. And when I try again, the same things happen. At the beginning some are excited. But later nothing happens, over and over again.

I just felt I should mention this. I hope no-one goes up in flames or tears over this, because the world nowadays fells like a minefield. It's just that I'm sad, and a bit mad, and I don't know if I'm misunderstanding everything, but that's just how I see things right now...

(I don't even know if a github issue is the right place for this, but it somehow fits since this issue is about the end of the module I wanted to get rid of and replace with something better...)

@alanshaw
Copy link
Member

Now tracking this endeavour here: libp2p/js-libp2p#385

@daviddias
Copy link
Member Author

Ah! I knew I had created an issue before. Just couldn't find it. Thanks @alanshaw :)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status/ready Ready to be worked
Projects
None yet
Development

No branches or pull requests

4 participants