What decentralizati...
 
Notifications
Clear all

What decentralization requires

9 Posts
8 Users
6 Likes
772 Views
Posts: 51
Admin
Topic starter
(@admin)
Member
Joined: 14 years ago

I say this right here is what decentralization requires. Agree?

8 Replies
Posts: 1
(@centurion)
New Member
Joined: 4 years ago

My thoughts for decentralization are to follow the model of podcasts and revisit and update what Feedburner once was.

Multiple providers for data content hosting (you pay for this service and own all content) - RSS standards for publication of short form posts (ala Twitter), long form posts (facebook / blog posts), video content (YouTube). Software & App platforms are developed to pull in content, just like Podcast apps do. Then people have to get creative about how to monetize content, but that's something that could be provided by the apps serving up the content.

If your data hosting provider decided they no longer wish to host your content, you upload your content to a host who does.

Reply
Posts: 10
 Tim
(@tim)
Active Member
Joined: 4 years ago

Yes, I agree

Reply
Posts: 1
(@dad18d5e542611ebb9fa)
New Member
Joined: 4 years ago

I say look at how usenet worked (and still works to some extent).  I'm an old fart and we used usenet (uucp) for years on 4800 bps leased line modems to move a lot of message traffic.  Today, a $40 USD Raspberry pi could act as a node.  Also, bit torrent worked pretty well for distributed file sharing.  Dont re-invent the wheel unless you really need to.

Reply
DoctorAjayKumar
Posts: 10
(@doctorajaykumar)
Active Member
Joined: 4 years ago

Hello. @zxq9 and I have been working on writing a forum post that somewhat addresses those questions. The short answer is those are very high-level requirements, and in order to meaningfully address them, work needs to be done to meet many low-level requirements that are not currently met.

Title:
    On the topic of the Parler debacle, and introducing the Orange Pill project

Body:

I am seeing a lot of posts on this forum asking bad questions, and even more
people replying with bad answers.  Creating decentralized replacements for
social networks and video hosting sites does NOT amount to simply writing
browser extensions, WordPress plugins, or web apps.

The basic technology required to create a truly decentralized internet does not
currently exist.

As an analogy: before you write a web app, you need HTTP to exist. Before HTTP,
you need TCP. The decentralized web is at the stage where it doesn't have TCP
yet.

Let me now pivot to an anecdote, and I will circle back and explain its
relevance.

Parler has been canceled. It's all over the news, but if you aren't familiar
with the story, here are two articles:

1.  https://archive.vn/33i7a 
2.  https://archive.vn/4jaBd 

Additionally, there are unconfirmed rumors that

1. Parler suffered a database breach that has led to leakage of private user
   data such as cell phone numbers and scans of photo IDs

    https://archive.vn/AFSa8 

2. Parler failed to scrub metadata from files uploaded to the website (such as
   geotagging in photos), resulting in leakage of identifying information such
   as GPS coordinates where photos were taken.

    https://archive.vn/7i8kO 

I haven't seen any concrete evidence of the latter two claims, just reports.

According to those articles, Parler is built on WordPress. WordPress is
notoriously insecure. Supposing that it is true that Parler is built on
WordPress, leakage of user data shouldn't surprise anyone. For instance, the
Panama Papers leak was in part made possible by poorly-written WordPress
plugins (  https://archive.vn/APr5Y  ).  Moreover, Parler chose to build their
house on enemy turf (i.e. AWS), with predictable results.

Bottom line: the reason Parler is in the situation they are in is because they
made every bad design decision one could possibly make.

Parler teaches us an important point: we cannot skip over getting the low-level
technical details right. Duct taping existing garbage technology together is
not an adequate vision for a decentralized internet.

With that in mind, we introduce our new project, the Orange Pill Storage
System (opss or OPSS).

The following is a copy of the current draft of the OPSS manifesto. The OPSS
manifesto should answer obvious questions like ``Why are you creating a new
thing?'', ``Why should I care?'', ``What can I do to help?'', and ``Why don't
you just use $ExistingThing?''.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
THE ORANGE PILL STORAGE SYSTEM (opss) MANIFESTO [draft]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

by
    Dr. Ajay Kumar PHD, The Founder <[email protected]>
    Craig Everett <zxq9@zxq9.com>

Version 0.1 [draft]
January 11, 2021


This document will be updated. The latest version can be found here:
 https://gitlab.com/DoctorAjayKumar/opss/-/blob/master/opss_manifesto 


        The bottom line: there is no off-the-shelf system with all of the
        necessary properties. There is no getting around the fact that getting
        the infrastructure *right* and properly implemented is a necessary
        precondition to application development. Look no further than the
        Parler debacle.

    -- Craig Everett

-------------------------------------------------------------------------------
ABSTRACT
-------------------------------------------------------------------------------

opss is a decentralized data storage system. opss is the first low-level step
required in solving the cancelation problem. The cancelation problem is the
ability of fiduciaries in centralized networks to delete ("cancel") nodes in
the network.  In order to build distributed networks, one needs software and
protocols for storing, and distributing data in a decentralized manner. That is
what opss aims to be.

-------------------------------------------------------------------------------
INTRODUCTION (by Craig Everett)
-------------------------------------------------------------------------------

I have wanted to write a data system to solve the social media censorship
problem and have been discussing one with Dr. Kumar for quite a while. I'll
explain in very rough terms how such a thing can work without getting too in
the weeds.

First off: Separation of concerns.

1. Distributed data is about infrastructure: retrieving the correct bits,
   verifying they are the expected bits, and hopefully doing that in a timely
   manner.

2. Social media features are an application issue and an orthogonal concern.

You could certainly write a distributed social media app that conflates
everything together, but that would be a massive waste of effort.

The same infrastructure that will support the creation of a Twitter-like
alternative will also support the creation of a YouTube-like alternative.

There is a tradeoff between anonymity and latency.  In the context of social
media, latency is the more valuable feature to favor. This does not mean ``real
names'' are necessarily known. ``Real names'' is an application-level issue.
Rather, just as in any other peer-to-peer system, canonical network origin is
known. CANONICAL NETWORK ORIGIN in essence means the IP address of a node
providing data.

In the case of a very popular resource being located somewhere in a
bandwidth-constrained network (residential networks, for example), pure peer
systems suffer from resource contention.  Systems such as BitTorrent get around
this by chunking data and distributing them broadly. A robust data
infrastructure must combine approaches to achieve both of robust, distributed
data provision in addition to having very high responsiveness on the level
required by streaming, chat, and similar services.

The way this manifests in software will feel familiar to anyone who has
used a P2P application before:

- The users' systems are the physical infrastructure the system runs on
- The nodes inform each other of other available connections to form a data
  distribution mesh
- A canonical name registry origin is defined, with the contents of that
  registry being write-only to enable distribution and caching of it (so
  that outages do not damage the network -- this is as close to a
  single-point-of-failure the system can have)

There are a million little details to tweak on the way to making that a highly
responsive system. But that's the basics of it.

There is the detail of variable network transmission (direct TCP for those who
know how to forward ports, UDP hole punching for those that don't, UPnP where
it is available, proxying schemes for passing data around blocked intermediate
routes and so on -- every approach must be employed at once), and this is where
a lot of the actual work needs to be put in.

The bottom line: there is no off-the-shelf system with all of the necessary
properties. There is no getting around the fact that getting the infrastructure
*right* and properly implemented is a necessary precondition to application
development. Look no further than the Parler debacle.

-------------------------------------------------------------------------------
DEFINITIONS
-------------------------------------------------------------------------------

We use the term "software" to refer to both software and protocols.

We define classes of software called Based and OrangePilled.

Roughly speaking, ``Based'' refers to technical details of how
addressing/routing is implemented, and ``OrangePilled'' refers to the technical
details of its trust model.

Based software is software that has all of the following properties:

    - canonical origin for the data
    - coordinated torrenting from cache
    - distributed data cache
    - redundant connection methods between nodes
    - redundant routing
    - streaming capability

OrangePilled software is software that has all of the following properties:

    - ability to both push and pull
    - access control
    - no trust network or trust network contains no cycles
    - no trust network or trust network contains no permanently trusted nodes

-------------------------------------------------------------------------------
OVERVIEW OF EXISTING SOFTWARE
-------------------------------------------------------------------------------

Our claim is that no existing software is both Based and OrangePilled,
and most software is neither.

By definition, any centralized software contains a trust network with a
permanently trusted node. Therefore, no centralized software is OrangePilled.

Existing decentralized software all fails at least one criterion. As examples,
we examine

- BitTorrent
- Freenet
- I2P
- IPFS
- OrbitDB
- Tor

TABLE OF FEATURE DEFICITS

    FEATURE                                     | HAS DEFICIT
    --------------------------------------------+--------------------------------------------
    ability to both push and pull               | all
    access control                              | BitTorrent, Freenet, IPFS, OrbitDB
    canonical origin for the data               | BitTorrent, Freenet, IPFS, OrbitDB
    coordinated torrenting from cache           | all
    distributed data cache                      | I2P, Tor
    no cycles of trust                          | none
    no permanently trusted nodes                | none
    redundant connection methods between nodes  | all
    redundant routing                           | BitTorrent
    streaming capability                        | all

-------------------------------------------------------------------------------
ABOUT THE AUTHORS
-------------------------------------------------------------------------------

Dr. Ajay Kumar PHD is a mathematician.

Craig Everett is a distributed systems engineer.
</zxq9@zxq9.com></[email protected]>
Reply
goldmund
Posts: 5
(@goldmund)
Active Member
Joined: 4 years ago

@doctorajaykumar

This is an interesting proposition; where can I learn more?

I agree in that the concern here needs to be focused at lower-level domains. That said, I find myself asking: should we be focused on developing and hardening a new infrastructure, or is it perhaps more worthwhile to find a means to enable the layman to interface with one of these existing - albeit flawed as you've noted - protocols? I defer to a previous post mentioning the old adage about reinventing the wheel.

I think there exist lower layer systems sufficient for something "Orange Pill"; what we need to be looking at here, then, is encapsulation, transport, and provenance. How does one donate computing power without suspending privacy or protections of IP provenance? How do we enable the layperson to contribute to such an architecture in a way that is at least moderately accessible? There's protocols like Lokinet but I worry that their blockchain integration - while certainly an apt way to gamify and incentivise their participants - is off-putting to many of the large amount of persons needed to make something like this functional. Too, I imagine for someone who isn't a software developer or like-kind, configuring a service node isn't exactly fun either.

Perhaps it's by way of my own proclivities that I'm so subscribed to the idea of creating some sort of API for a federated system, but I truly think this is what's lacking on the web right now. Put simply, the foundation is available but it's a pain in the ass for the average internet user to participate in. That needs to change, now more than ever.

...

As an aside, I looked into these claims of metadata scraping from Parler. While unsophisticated, the data dumps did happen. An individual apparently found an unprotected API that rather liberally served user metadata contingent on whatever query params you threw at it. It's very disappointing to see someone leveraging their ability to write code to blatantly virtue signal and expressly violate others' privacy. This entire debacle is exceedingly ridiculous and the internet is in a sad state because of it.

Reply
1 Reply
DoctorAjayKumar
(@doctorajaykumar)
Joined: 4 years ago

Active Member
Posts: 10

@goldmund Currently the idea and knowledge is stuck inside the heads of Craig (@zxq9) and I. We're working on putting all of it into text files that people can read and comment on.

For the time being, they'll all be found on the GitLab: https://gitlab.com/DoctorAjayKumar/opss

The letter that I copied into the post is here: https://gitlab.com/DoctorAjayKumar/opss/-/blob/master/tmp/SangerLetter

The manifesto (copied in the letter), as it gets updated and more detailed, will be found here: https://gitlab.com/DoctorAjayKumar/opss/-/blob/master/opss_manifesto

Should probably make a website or a forum or a discord or IRC or something for people who are interested to learn more

Really the bottleneck is going to be getting funding so that we can afford to work on this. After a while, OPSS will be able to fund itself. We just need some money so we can afford to get to that point. So my focus at the moment is on getting things set up so that people who want to give us money have a way to do that. I don't really know what I'm doing in this regard. So if someone has experience setting up nonprofit entities to fund projects, I would greatly appreciate some pointers. I'm mostly going off of Google.

One idea right now is to have a Locals page where we basically host a MOOC. My expertise is math, so I would be doing videos (and writing up things) about math. Craig's expertise is distributed systems engineering. So he would do videos (and write up things) teaching people about distributed systems engineering. And maybe do livestreams explaining the technical details of how OPSS works, etc etc.

Craig already has some videos on his YouTube channel: https://www.youtube.com/channel/UCMnRVG50iFEpkgbUu1mZrMA .

Reply
Posts: 33
(@whatusername)
Eminent Member
Joined: 4 years ago

I would emphasize the following principles:

 

The right to make a mistake

People should be able to remove their own posts.

 

The right to start all over again

People should be able to abandon their old identity and create a new one.

 

The right for an active life

People should be able to have multiple identities separating different areas of their life.

 

Reply
1 Reply
zxq9
 zxq9
(@zxq9)
Joined: 4 years ago

Eminent Member
Posts: 23

@whatusername The three principles you note are application-level concerns. Each application developer is going to have a different approach to things, but the architecture of OPSS does not prevent any of these principles from being followed by an application author. Every application that I would like to write on top certainly has the properties you mention.

Reply
Share: