-
Notifications
You must be signed in to change notification settings - Fork 864
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
Support for js-ipfs #601
Comments
Right now, Desktop uses some endpoints that are not available on js-ipfs yet, such as: |
Will it come on #662 ? |
@daviddias nope, not yet. We decided not to have that feature on the first version and keep it as simple as possible. That will be added afterwards. 😄 |
@daviddias @hacdias What would it entail to enable js-ipfs support exactly? I'd like to contribute if it's something I can tackle. |
Awesome, thank you for showing up @phoniks :) js-ipfs exposes exactly the same API that the client lib (js-ipfs-api) for go-ipfs exposes, so it is just a question of spawning the right daemon. IPFS Desktop uses https://github.com/ipfs/js-ipfsd-ctl/ which gives a way to spawn an js-ipfs node too I believe the missing piece is the UI parts, which we need a switch to go from go to JS and then back. @hacdias wanna share some more pointers in the code? |
@daviddias @phoniks hey! It is really straightforward to let IPFS Desktop use JS-IPFS. You only have to do three things:
Why aren't we adding js-ipfs right now? We just want to keep this simple to release v1.0. As you can see by our Release 1.0 issue (#669), we postponed the 'Way to connect to multiple backends' feature. That will allow you to switch between different daemons. We could add js-ipfs right now, but there wouldn't be anything on the interface to allow you to edit your config. That's something to think about: is it worth it to include js-ipfs for now and only those who know how to activate it will benefit from it? Or wait a bit longer until we support multiple backends and have an interface to pick which one to use. /cc @ipfs-shipyard/gui |
Yes, because dogfooding :) |
Hey, this is great! @hacdias is right, we're focusing on make the new user experience as clear as possible. Desktop is going to be opinionated on what that looks like. But, we can add an option to our brand new settings page that lets you toggle between go-ipfs and js-ipfs, so folks can try out both. It'll need some good copy to explain it. I'll write up a more specific issue for it and link back to this one. @phoniks I'll tag you on it. If you'd like to work on a PR for it we'll gladly give you pointers. |
This issue seems quite stale. However, I think that supporting Certainly, this needs to be planned. Right now, we support the most simple setup: one repository with I see multiple solutions here:
I prefer 1, which is the simplest. Two is quite simple too. I would like to avoid 3 for now: I don't actually see why regular users would want to have multiple repositories on their systems. |
@hacdias 1) is the way to go. This work will hopefully pave the path for future implementations to be added as well and create the template in which apps can switch between multiple implementations with low friction. |
They should be compatible. We have interop tests to assert that. However, if go-ipfs is using badger datastore js-ipfs cannot use it. |
Note a discussion about switching go-ipfs to badger as the default at some point: ipfs/kubo#4279 |
Can't wait for this to land! |
An update on this: after our weekly call, we are thinking about releasing this as an "hidden" feature for now: we bundle js-ipfs and by tweaking the configuration file, we are able to toggle between both implementations. For now, it will be helpful to test IPFS Desktop against both implementations and will be useful for the testing part. |
@hacdias In the meantime, is the best alternative to use the web UI for |
Yes, for sure. You can always use the Web UI with js-ipfs without IPFS Desktop. |
@hacdias Unfortunately that didn't work for me ipfs/js-ipfs#2796 |
Since this issue was filled js-ipfs and go-ipfs removed the guarantee of flatfs repo interop, This means js-ipfs has different strengths and is no longer a drop-in replacement for go-ipfs. |
When to expect js-ipfs support?
The text was updated successfully, but these errors were encountered: