dmotz / trystero

✨🤝✨ Build instant multiplayer webapps, no server required — Magic WebRTC matchmaking over BitTorrent, Nostr, MQTT, IPFS, Supabase, and Firebase
https://oxism.com/trystero
MIT License
1.05k stars 79 forks source link

IPFS configuration/example? #66

Closed andre-dietrich closed 1 week ago

andre-dietrich commented 4 months ago

What a beautiful piece of art and I am sad, that I did not discover it earlier ... All the examples/connections work like charm, but I could not create a working IPFS connection. Maybe this needs some additional configuration that I am not aware of? I would like to embed your work into our OER (Open Educational Resource) - Project, which is called LiaScript. It is an extension to markdown, that is directly interpreted within the browser. Here is a little demo of how we create classrooms, that sync the states (quizzes, survey, collaborative editors, chats...) between browsers ...

https://www.youtube.com/watch?v=Kjk6OblugXI

and I would like to have a running IPFS solution :see_no_evil:

Thank you anyways for this great project ...

dmotz commented 3 months ago

Your project sounds very interesting. Sadly IPFS tends to be the least reliable connection strategy in Trystero as of late. I recommend trying one of the more reliable strategies like Nostr. If you're committed to using IPFS and want to share any knowledge, please let me know if there's any way to improve Trystero's IPFS bootstrap settings -- right now it's using Waku's.

andre-dietrich commented 3 months ago

I already had integrated all of your other services ... after testing it seems that some browsers get a connection via IPFS while other cannot connect, Firefox does not connect at all, while Opera is pretty good ...

Nevertheless, thanks for this library ... looking forward to add new services ;-)

hrishioa commented 1 month ago

Awesome project! Took so many wrong turns trying to get p2p set up (Waku, NKN, etc.) before finding this and it works a treat.

For IPFS, I can see what the problem is: Waku is migrating to a new network, and defaultBootstrap doesn't work anymore. You need to specifically connect to the old network with specific bootstrap nodes. I managed to get this working but not sure how long it'll last!

Some resources if you're looking to add it to trystero/next: Example code that actually works from a workshop Another working example from their discord

In short this took me a long time to find, but best explains the trouble you're having with IPFS: CleanShot 2024-05-27 at 19 25 20@2x

If you want to go direct, Helia is a good option but the docs are still not mature.

dmotz commented 1 week ago

The latest release fixes IPFS support (though I do still see occasional flakiness connecting to bootstrap nodes). Big thanks to @hrishioa for pointing me in the right direction.