Giter Club home page Giter Club logo

awesome-decentralized's Issues

Scuttlebutt

Some devs living on boats needed a social media app that didn't depend on being constantly connected to the internet. So they developed the Secure Scuttlebutt protocol, or SSB. A "scuttlebutt" is the water cooler on a ship.

SSB is fully decentralized, works offline, and synchronizes content when connected, or upon arrival of human or avian courier. (It is transport independent.) Enthusiasts have built and deployed solar powered embedded "pubs", automated nodes to store and exchange content with SSB apps near enough for Wifi.

The reference app is/was "Patchwork" - 5, fully decentralized. But there are a number of apps, my favorite being Patchfoo (which is a web app - 4, client with separate decentralized server).

SSB is popular enough that some orgs, like BBC, are beginning to use it for advertising. People have to actually want to "follow" your ads - but this is not a problem for BBC (or superbowl commercials).

add ArcBlock

please add ArcBlock

A fully decentralized developer platform to build, run and deploy websites, DApps, and Blockchains
www.arcblock.io

Federated vs fully decentralized, protocol vs app

I really appreciate this list. Please accept a humble suggestion.

The apps listed implement protocols that are federated (mastodon, matrix/element) or fully decentralized (no servers) like scuttlebutt (will make another issue for this protocol), retroshare, tox (I think - exploring).

There is actually a range, e.g. SMTP (email) can be fully decentralized (https://fedoramagazine.org/decentralize-common-fedora-apps-cjdns/), federated (normal email domains), or centralized (everyone uses gmail which refuses to talk to any other domains).

Would you consider tagging each app with a rough estimate of decentralization - from 5, fully decentralized to 1 (facebook). 3 would be federated (Element). 4 would include Signal (P2P calls and messaging but centralized directory). Or use your own scale. Note that there can be fully decentralized implementations of federated protocols (P2PMatrix), so the decentralization score goes with the app, not the protocol.

Finally, all of the apps implement a protocol. In some cases there is only one fully developed app (e.g. retroshare - but there are alternative implementations). In others, like Matrix, you list only Element - but there are dozens of mature apps that interoperate with Element and also implement the Matrix protocol. There are at least 2 server implementations (synapse, dendrite).

So I could suggest adding Nheko to your list, but it should be somehow grouped with Element as a Matrix client.

It does make sense to emphasize one app for each protocol as the "reference app". Not necessarily the most efficient, but the most feature complete and popular. So Element would represent Matrix as the most popular client.

So that is a lot to ask. Each app listed should include "decentralization score" and protocol. It would be nice to list protocols separately as well. If the protocol is not clearly named, just use the name of the reference app in scare quotes.

add projects: usenet, freenet, gnunet, secushare, gun

usenet

https://en.wikibooks.org/wiki/The_World_of_Peer-to-Peer_(P2P)/Networks_and_Protocols#Usenet
https://en.wikipedia.org/wiki/Network_News_Transfer_Protocol # NNTP protocol

not really "decentralized"?

usenet is somewhat popular in germany for filesharing, next to one-click-hosting, because people are afraid of cease-and-desist requests (abmahnungen) for bittorrent seeding (though its usually safe to ignore such requests)

Usenet is the original peer to peer file-sharing application. It was originally developed to make use of UUCP (Unix to Unix Copy) to synchronize two computers' message queues. Usenet stores each article in an individual file and each newsgroup in its own directory. Synchronizing two peers is as simple as synchronizing selected directories in two disparate filesystems.

Usenet was created with the assumption that everyone would receive, store and forward the same news. This assumption greatly simplified development to the point where a peer was able to connect to any other peer in order to get news. The fragmentation of Usenet into myriad newsgroups allowed it to scale while preserving its basic architecture. 'Every node stores all news' became 'every node stores all news in newsgroups it subscribes to'.

Of all other peer-to-peer protocols, Usenet is closest to Freenet since all nodes are absolutely equal and global maps of the network are not kept by any subset of nodes. Unlike Freenet, which works by recursive pulling of a requested object along a linear chain of peers, Usenet works by recursive pushing of all news to their immediate neighbors into a tree.

nntpchan

https://github.com/majestrate/nntpchan

NNTPChan (previously known as overchan) is a decentralized imageboard that uses the NNTP protocol (network-news transfer protocol) to synchronize content between many different servers. It utilizes cryptographically signed posts to perform optional/opt-in decentralized moderation.

freenet

https://freenetproject.org/
https://github.com/hyphanet/fred
https://en.wikipedia.org/wiki/Freenet
https://geti2p.net/en/comparison/freenet
https://en.wikibooks.org/wiki/The_World_of_Peer-to-Peer_(P2P)/Networks_and_Protocols/Other_Software_Implementations#Freenet

distributed data store

Freenet is a peer-to-peer platform for censorship-resistant, anonymous communication. It uses a decentralized distributed data store to keep and deliver information, and has a suite of free software for publishing and communicating on the Web without fear of censorship.[4][5]:โ€Š151โ€Š Both Freenet and some of its associated tools were originally designed by Ian Clarke, who defined Freenet's goal as providing freedom of speech on the Internet with strong anonymity protection.[6][7]

The distributed data store of Freenet is used by many third-party programs and plugins to provide microblogging and media sharing,[8] anonymous and decentralised version tracking,[9] blogging,[10] a generic web of trust for decentralized spam resistance,[11] Shoeshop for using Freenet over sneakernet,[12] and many more.

gnunet

https://www.gnunet.org/en/
https://en.wikipedia.org/wiki/GNUnet
https://www.reddit.com/r/ipfs/comments/duqg8e/gnunet_seems_very_similar_to_ipfs_but_they_also/
https://en.wikibooks.org/wiki/The_World_of_Peer-to-Peer_(P2P)/Networks_and_Protocols/Other_Software_Implementations#GNUnet

framework of distributed protocols

GNUnet is a software framework for decentralized, peer-to-peer networking and an official GNU package. The framework offers link encryption, peer discovery, resource allocation, communication over many transports (such as TCP, UDP, HTTP, HTTPS, WLAN and Bluetooth) and various basic peer-to-peer algorithms for routing, multicast and network size estimation.[5][6]

GNUnet's basic network topology is that of a mesh network. GNUnet includes a distributed hash table (DHT) which is a randomized variant of Kademlia that can still efficiently route in small-world networks. GNUnet offers a "F2F topology" option for restricting connections to only the users' trusted friends. The users' friends' own friends (and so on) can then indirectly exchange files with the users' computer, never using its IP address directly.

GNUnet uses Uniform resource identifiers (not approved by IANA, although an application has been made).[when?] GNUnet URIs consist of two major parts: the module and the module specific identifier. A GNUnet URI is of form gnunet://module/identifier where module is the module name and identifier is a module specific string.

secushare

https://secushare.org/

apps based on gnunet

Imagine Facebook, Whatsapp, Gmail and Skype rolled into one, without the centralized surveillance and control. Crazy? Well, it hasn't been tried before, at least not our way. So let's give it a try.
secushare employs GNUnet for end-to-end encryption and anonymizing mesh routing (because it has a more suitable architecture than Tor or I2P) and applies PSYC on top (because it performs better than XMPP, JSON or OStatus) to create a distributed social graph. Together, these technologies allow for distributed private social networking including more straightforward and secure e-mail, chat, exchange of content and a private web. It could even work out as a safer choice for the Internet of Things.

The resulting new Internet enjoys the speed of servers that help without knowing much about us, the authenticity of social relationships between users without becoming transparent, the privacy of advanced obfuscation without becoming cumbersome or a threat to society. This way, we can become independent of centralized infrastructure and expect that only the designated recipients can read our communications. Read more about it in the introduction.

https://secushare.org/#source

Currently most components of secushare are integrated with GNUnet. The design is described on the protocol page.

netsukuku

https://github.com/Netsukuku/netsukuku

old project. sounds similar to gnunet

Netsukuku is an alternative to the internet, It will have all of the features of the internet, Such as websites, Instant messaging, File transfers, DNS, Etc. It functions as a mesh network or a p2p net system that generates and sustains itself autonomously. It is designed to handle an unlimited number of nodes with minimal CPU and memory resources.

Thanks to this feature it can be easily used to build a worldwide distributed, anonymous and decentralised network, separated from the Internet, without the support of any servers, ISPs or authorities.

https://en.wikibooks.org/wiki/The_World_of_Peer-to-Peer_(P2P)/Networks_and_Protocols/Other_Software_Implementations#Netsukuku

Netsukuku (http://netsukuku.freaknet.org/) is a p2p (in mesh) network system, originally developed by FreakNet MediaLab, that can generate and sustain itself autonomously. It is designed to handle an unlimited number of nodes with minimal CPU and memory resources. It seems that it can be easily used to build a worldwide distributed, anonymous decentralized network, above the Internet, without the support of any servers, ISPs or authority controls. Netsukuku replaces the network level 3 of the OSI model with another routing protocol. An open source Python implementation was finished in October 2007.

Netsukuku is based on a very simple idea: extending the concept of Wi-Fi mesh networks to a global scale, although not necessarily using that medium. With the use of specialized routing protocols and algorithms, the current Wi-Fi technologies can be exploited to allow the formation of a global P2P wireless network, where every peer (node) is connected to its neighbors.

gun

https://github.com/amark/gun

An open source cybersecurity protocol for syncing decentralized graph data.

GUN is an ecosystem of tools that let you build community run and encrypted applications - like an Open Source Firebase or a Decentralized Dropbox.

The Internet Archive and 100s of other apps run GUN in-production. GUN was also part of Twitter's bluesky initiative!

  • Multiplayer by default with realtime p2p state synchronization!
  • Graph data lets you use key/value, tables, documents, videos, & more!
  • Local-first, offline, and decentralized with end-to-end encryption.

Decentralized alternatives to Zoom, Reddit, Instagram, Slack, YouTube, Stripe, Wikipedia, Facebook Horizon and more have already pushed terabytes of daily P2P traffic on GUN.

Deltachat

Rather than build a new protocol like the Matrix project, Deltachat builds a rich messaging app around one of the oldest protocols, SMTP. A benefit is that you can talk to anyone with an email. Adding a tiny local SMTP server (e.g. opensmtpd) makes this app fully decentralized, but it should be listed as federated - because it doesn't include a server out of the box.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.