Skip to content

thomasjo/detwitter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 

Repository files navigation

deTwitter

This crazy idea got sparked by a blog post that proposes the idea of a decentralized Twitter-like service, which made its way to me thanks to @aral and @mattgemmel.

Crazy? Maybe...

My proposition is that this is entirely within the realm of possibility. What I intend to discover is the feasibility and practicality of such a system.

Some initial thoughts

I'm thinking it might be possible to build this and hopefully make it somewhat tamper-proof by building it on a shasum system similar to what Git uses, in particular in conjunction with its signed tags that leverage GPG.

In addition by building it to function with a protocol similar to BitTorrent without trackers, it might be possible to distribute status updates between all connected clients. Essentially some form of naked P2P.

There are some immediate concerns that come to mind with a decentralized P2P approach, such as if there are few clients, each client might have tobe asked to store all recent (assuming we only want to persist status updates for a limited time) status updates. This might not be such a big ask however, as it's reasonable to assume that few clients means fewer status updates. The algorithm should perhaps be tuned during initial testing to find a reasonable distribution factor that will minimize, or hopefully eliminate, loss of status updates to due client connectivity (some form of self-adjusting redundacy factor).

In addition, how is discovery supposed to work? How do we make sure this works behind a firewall, router with NAT and similar?

Hurdles that most likely needs to be crossed

  1. Discovery.
  2. Routing.
  3. Secure, tamper-proof messaging.
  4. Firewall and NAT workarounds.
  5. Redundancy algorithm(s).
  6. Distributed queries (e.g. search).
  7. ?

Once all (or at least most) hurdles have been crossed, we need to begin defining and documenting a basic protocol. A formal protocol is necessary for all connected clients to communicate.

Resources

About

An insane idea centered around the concept of a decentralized Twitter-like service

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors