Temporal icon indicating copy to clipboard operation
Temporal copied to clipboard

Desktop clients for IPFS+I2P

Open DonaldTsang opened this issue 5 years ago • 9 comments

Why are you submitting this feature request Because existing solutions for Personal desktop clients like https://github.com/Siderus/Orion does not have I2P options

Describe the solution you'd like A possible collaboration with Siderus, or with other organizations, to create a desktop client.

Describe alternatives you've considered Retoshare is written in java, has a bad UI, and is uncomfortable to use. There should be better alternatives. OpenBazaar claims to have combined IPFS with I2P but there is no code to use it without using the OpenBazaar service.

Additional context If the extension of IPFS to I2P is successful, other projects should be able to join in on the fun.

  • [ ] https://github.com/Kycklingar/PBooru (Online art gallery using TOR/I2P/LokiNet written in Go)
  • [ ] https://github.com/hydrusnetwork/hydrus (personal file repository)
    • [ ] https://github.com/bakape/hydron (something similar written in Go instead of Python)

DonaldTsang avatar Jan 11 '19 08:01 DonaldTsang

Hello thanks for the post. We have some I2P based plugins in the work as we speak. Right now one of our developers is finishing up a plugin to allow gateways to be served directly over I2P after that another plugin will be written to serve IPFS nodes directly over I2P.

If a desktop client uses go-ipfs they should also be able to use the plugins were writing. We've also published an extension to the available transports for go-libp2p to communicate over I2P as well so those can be used too.

All that aside I'm 100% open to collaboration between other projects and suggestions on how that may go get started. Do you have any affiliations with the projects you listed? If so could you direct them to this issue so we can start figuring out what exactly needs to be done in order to best roll this out? If not I can start reaching out.

bonedaddy avatar Jan 11 '19 21:01 bonedaddy

@postables Firstly, I would like to say that a desktop client and a webUI would make IPFS have better appeal to the general public when compared to Siderus Orion (which they also sees the usefulness of having such a feature). Secondly, I am a "forum friend" of the developer of PBooru, and he has already created an art gallery with TOR/I2P with IPFS, but not IPFS through TOR/I2P, so there is a potential for collaboration or adaptation. Thirdly, for Hydron, it is made by someone famous online, and they are welcoming new ideas (https://github.com/bakape/hydron/issues/60)

DonaldTsang avatar Jan 12 '19 05:01 DonaldTsang

Thanks I'll do some research, we probably won't ever be touching desktop clients as thats not our forte and isn't what we're good at. I'll check that hydron issue

bonedaddy avatar Jan 12 '19 07:01 bonedaddy

@postables you can check out https://github.com/Siderus/Orion/issues/127 as well

DonaldTsang avatar Jan 12 '19 07:01 DonaldTsang

Hi, I'm the dev primarily working on the i2p stuff, and I'm here to weigh in.

Why are you submitting this feature request Because existing solutions for Personal desktop clients like https://github.com/Siderus/Orion does not have I2P options

I am aware of this matter. I don't expect enabling i2p support in clients to be very difficult in most apps. However, since they don't have much to interact with on the i2p network yet, it doesn't make sense to make this a priority right now, especially since my current focus is making IPFS i2p-native via the plugin system.

Describe the solution you'd like A possible collaboration with Siderus, or with other organizations, to create a desktop client.

When it's at a phase where client development would be productive, I'm happy to collaborate with them in any way I can.

Describe alternatives you've considered Retoshare is written in java, has a bad UI, and is uncomfortable to use. There should be better alternatives. OpenBazaar claims to have combined IPFS with I2P but there is no code to use it without using the OpenBazaar service.

I don't really mind RetroShare but agree with your comment in spirit, I've made it a personal mission to enable i2p in whatever useful applications I can. IPFS being especially useful, it has become my priority. I am aware of OpenBazaar's code, I've been using it as a reference in developing the i2p TCP-like transport that is currently approaching utility. I don't think OpenBazaar ever got i2p working, but they did have an onion transport ready.

Additional context If the extension of IPFS to I2P is successful, other projects should be able to join in on the fun.

  • [ ] https://github.com/Kycklingar/PBooru (Online art gallery using TOR/I2P/LokiNet written in Go)

  • [ ] https://github.com/hydrusnetwork/hydrus (personal file repository)

    • [ ] https://github.com/bakape/hydron (something similar written in Go instead of Python)

I've been watching PBooru and hydrus' work as well, and agree that they could readily benefit from this feature.

@postables I know we don't really do the desktop apps, however, adding support for i2p to a client app is pretty easy. You just point a tunnel at a service and point the client at the tunnel. There are straightforward ways of doing such a thing in Python, Node, and Go, probably others. I expect I'll be able to help others adapt their clients when we're ready.

eyedeekay avatar Jan 12 '19 07:01 eyedeekay

@eyedeekay Glad you replied, let me know if this is something you want to take charge of, or if you want any help coordinating, etc...

bonedaddy avatar Jan 12 '19 08:01 bonedaddy

@eyedeekay thanks for riding with us, this is going to help so many people in the end...

DonaldTsang avatar Jan 12 '19 16:01 DonaldTsang

@postables I am fine with taking the initiative on working with other IPFS-utilizing products on i2p integration, but there's quite a bit of work to do before it will be an experience that fully takes advantage of both IPFS and i2p.

@DonaldTsang Maybe this is more appropriate for the other issue(https://github.com/Kycklingar/PBooru/issues/8), but my goal is enable the gateway first, then enable elective inter-node communication over i2p and other overlay networks(Including bridging between pure-i2p and mixed nodes. People who choose to bridge will never be fully hidden by i2p, however, they'll need to include another technology). However, IPFS is a pretty elaborate system and doing so means accounting for many things, some rather subtle.

eyedeekay avatar Jan 12 '19 21:01 eyedeekay

@eyedeekay Sounds good, I'll assign this to you and let you take care of it when you believe we are ready. Let me know if there's anything I can help with.

bonedaddy avatar Jan 12 '19 23:01 bonedaddy