5 ms·
I think it's clear that, in light of what's been going on, we need a more diverse ecosystem of P2P networks in order to protect the integrity of our private com
by autoreleasepool 11y ago
I think it's clear that, in light of what's been going on, we need a more diverse ecosystem of P2P networks in order to protect the integrity of our private communications. So I support any effort to experiment in this area
- supergreg 11y agoIs there any library/framework that helps build p2p things? That could help the ecosystem the same way web frameworks have helped build websites faster and more secure than ever.
- asp2insp 11y agoipfs just released their beta which includes a golang library for interacting with their DHT/p2p network
- cdata 11y agoHere is a link to go-libp2p, which I believe is what you are referring to: https://github.com/ipfs/go-libp2p https://github.com/ipfs/go-libp2p
- api 11y agoWe are working on a pluggable SDK version of ZeroTier with a tiny embedded IP stack that will allow p2p using standard unmodified network code, libraries, and protocols. Full interoperability with servers and desktops and other members of virtual networks is also nice. Basically the app is just a "device." An embeddable IP stack sounds fat but it's actually tiny. Whole ball of wax is similar in footprint to other p2p libraries that don't allow normal protocols and full code reuse. I'm a bit partial of course, but the approach is amazingly cool. It will be for Linux, Mac, iOS, Android, and eventually Windows. https://www.zerotier.com/product-netcon.shtml https://www.zerotier.com/product-netcon.shtml Currently GPL with dual licensing for proprietary closed use, which may or may not change later depending on how other things go. Linux and iOS are working. Android and Mac next. This gives you totally easy p2p transport but not things like a distributed database or identity, etc. But there are lots of other projects for that that become easier to use when you have transparent p2p.
- lewisl9029 11y agoI'm not aware of any batteries-included frameworks, but here are some of the p2p-ish libraries that I've either worked with personally, or looked into and found promising, along with some commentary: Telehash: http://telehash.org/ http://telehash.org/ Provides a p2p-capable messaging stack. I've worked with an earlier version (v2) for Toc Messenger [1]. V2 included an integrated DHT for public peer discovery along with the p2p messaging stack. Was actually surprisingly robust and reliable considering how young the project was at the time. V3 seems to have pivoted towards the private mesh networking side, and spun out the DHT into a separate project, but V3 itself doesn't seem to have a clear story for integrating with an external, public DHT the last time I checked, so the intended use cases aren't quite the same as V2. [1] http://toc.im/ http://toc.im/ Matrix: http://matrix.org/ http://matrix.org/ Doesn't allow for fully peer-to-peer messaging, but is decentralized and federated like XMPP. Probably the closest thing on this list to a framework (handles both messaging and storage). Last time I looked at it, my main concern was how much implicit trust users needed to place in homeserver providers (messages and user profiles are stored in plaintext). Unless this has changed, I don't find it viable for any app that values user privacy. Even federated networks eventually gravitate towards a large degree of centralization once the tech becomes mainstream (see email). If any servers are used at all in a privacy-minded app, they need to be zero-knowledge as far as I'm concerned, for actual user data at the very least, if not metadata as well (I realize the latter is an unsolved problem). RemoteStorage: https://remotestorage.io/ https://remotestorage.io/ A decentralized, federated protocol and library for data & file storage. Also used this for Toc. Worked as advertised but I'm looking to explore fully p2p alternatives for my next project. The main problems I ran into (asides from the non-fully-p2p architecture) was the rather clunky API (for instance, it requires developers to provide a schema to fully specify objects they want to store, but doesn't provide a versioning and migration mechanism to take advantage of the schema specs, although it is planned), and the fact that encryption for data at rest wasn't implemented (until I finished working on a custom encryption layer for Toc built on top of the library). Kinto: http://kinto.readthedocs.org/en/latest/ http://kinto.readthedocs.org/en/latest/ Similar to RemoteStorage, but decentralized discovery is planned and not implemented yet. It's built by Mozilla and apparently used in Firefox and Firefox OS (I'd assume for Firefox Sync?). They also have a comparison table with RemoteStorage as a part of their docs if you're interested in a more detailed (but possibly impartial) comparison [2]. [2] http://kinto.readthedocs.org/en/latest/overview.html#comparison-with-other-solutions http://kinto.readthedocs.org/en/latest/overview.html#compari... Swarm: https://github.com/gritzko/swarm https://github.com/gritzko/swarm A decentralized data replication library that's built on ops-based CRDTs [3]. Some very impressive work here. Although I recently found out that V1 of the library no longer supports fully p2p replication due to architectural changes, which made it a lot less interesting for my use cases. [3] https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type#Operation-based_CRDTs https://en.wikipedia.org/wiki/Conflict-free_replicated_data_... Replikativ: https://github.com/replikativ/replikativ https://github.com/replikativ/replikativ The one I'm most excited about personally. Similar to Swarm, a CRDT-based data replication library, but even more ambitious (they envision an open data exchange whereby users fully control their own data, and can specify any number of applications to have access to that data, instead of the status quo where user data is kept in closed, per-application silos). There's a comparison with other alternatives, including Swarm, in their README [4]. They also plan to have pure browser-based p2p replication through WebRTC, which is exactly what I'm looking for. It's built in and for Clojure and ClojureScript, but JavaScript support is in the works. As if I needed any more incentive to get started on my first ClojureScript app. =) [4] https://github.com/replikativ/replikativ#alternatives https://github.com/replikativ/replikativ#alternatives GunJS: http://gun.js.org/#step1 http://gun.js.org/#step1 A decentralized, replicated graph database. The pitch is very impressive sounding, but I'm hesitant to actually use this because they promise a lot of replication magic, but the replication is built on a home-grown algorithm rather than something rigorously peer-reviewed and implemented industry-wide like CRDTs. I'd love to hear from anyone who has actual working experience with it though. IPFS: https://ipfs.io/ https://ipfs.io/ IPFS and its suite of associated libraries has already been mentioned elsewhere in this thread, so I won't elaborate on it.
- jnpn 11y agohttps://www.ethereum.org/ https://www.ethereum.org/
- rzzzt 11y agoTomP2P is a Java library for building DHTs: http://tomp2p.net/ http://tomp2p.net/
- EGreg 11y agohttp://qbix.com/platform http://qbix.com/platform
- whimful 11y agoyou might like to check out secure-scuttlebutt : http://ssbc.github.io/scuttlebot/ http://ssbc.github.io/scuttlebot/ it's a gossip based network / database. Check out our first active app : http://github.com/ssbc/patchwork http://github.com/ssbc/patchwork
- martindale 11y agoI've been working on exactly this mission over the past several years in a framework I'm calling Maki: https://maki.io https://maki.io We're approaching our 0.3 release, which will provide the minimum viable framework for developing fully peer-to-peer applications. There is much work to be done with regards to documentation and design, so we'd love to welcome anyone who wants to help to our community.
- panic 11y agoWhat we need most is something easy to set up and use. The whole point of a social network is that other people are on it. Too many of these P2P networks need you to know how to use a command line, install a bunch of auxiliary packages, manually generate keys, or hunt down an active server in a federated network.
- ekianjo 11y agoFreedom always requires some effort. Because its never the easiest path to take.
- clemensley 11y agoWhile still a work in progress, the guys at Datt (Decentralize All The Things) are working on a decentralized Reddit alternative that will "run in a web browser and can be used as easily as any web app". What I find interesting about that project is that there are plans to integrate payments. All successful decentralized applications are based on an implicit economic model (like trading data for data in BitTorrent). Without payment integration these systems are using a barter instead of a market system. When decentralized apps start to integrate payment systems they will move from barter to market economies, which will unleash a new wave of innovation imo. Sources on Datt: http://datt.co/ http://datt.co/ https://github.com/dattnetwork/datt/blob/master/docs/general/plan.md https://github.com/dattnetwork/datt/blob/master/docs/general...
- 11y ago