News for hackers. Stuff that matters.
Re:The Mission to Decentralize the Internet by peterwwillis on Tuesday December 17, 2013 @11:14AM (#6921872)
Decentralized systems suck.

Look at any protocol or network service designed to be fully decentralized. Inefficient routing, unstable communication, high latency and low bandwidth. You have to do a lot more work to achieve things that would otherwise be simple and straightforward.

Take human communications, for example. They're largely decentralized by default, but we use centralized services to improve efficiency. If some piece of information needs to be disseminated to a large population over a period of time, we first record the message, then we post it in a centralized location viewable by lots of clients[1]. Those clients can then go back and distribute the information to its connected peers[2], but technology also allows us to distribute subscriptions of this information to a wider population in a variety of media[3]. ([1]stone tablets, [2]town crier, [3]newspapers/television)

Modern people are afraid of centralization in the Internet because they are suddenly realizing they have no real control over the content or medium. But this is the case with all other forms of centralized mass communication, too. People are also afraid of their lack of control over their data, which is tantamount in these days to a form of property. Anyone would freak out if the contents of their house were suddenly only available at the discretion of some conglomerate!

But you don't need "decentralization" to keep a backup of your data. Most of it originates from you anyway, and you can store it before you publish it. Some service providers even provide methods to download all your data, though obviously you can't rely on everyone providing you that option (unless someone passes a law...)

On top of all this, the internet is already a system of decentralized networks and services. You can just hook in your own services into the network at any point therein and maintain them yourself. The only restriction is really by the ISP, and there's lots of those to choose from in most developed countries. Personally I think we should consider the internet a combination of utility and public highway, since at this point we all need access, but we also need competition due to the sensitivity of limits on network access.

Re:The Mission to Decentralize the Internet by amirmc on Tuesday December 17, 2013 @11:43AM (#6922060)
> "... the internet is already a system of decentralized networks and services. You can just hook in your own services into the network at any point therein and maintain them yourself."

Sure, but I'd argue we should be making it easier for developers to build more decentralised systems. Very few people seem to be working on tools and OSS products at that level and that's because the problems are challenging (of the kind that a startup wouldn't/shouldn't attempt - hence an active area of work in university [1]). There are plenty of things that require centralisation but I'd argue that just as many don't need to be centralised but just end up that way by default.

[1] http://nymote.org (I'm working on these tools with others)

Re:The Mission to Decentralize the Internet by noselasd on Tuesday December 17, 2013 @01:54PM (#6922980)
There's a lot of open source that glues the internet together (e.g. most of the DNS infrastructure, essentially the largest distributed database in the world, is run on open source software).

When it comes to the actual shuffeling of packets, it's mostly done by proprietary hardware though - but there's no lack of open source there either, there's plenty of routers and routing protocols available (and cools stuff like openvswitch).

One step up from there, there's quite a lot of work done on distributed databases, load balancers, distributed virtualization, service provisioning (e.g. platforms such as opendaylight, cassandra/hadoop, puppet)

Re:The Mission to Decentralize the Internet by peterwwillis on Tuesday December 17, 2013 @01:36PM (#6922842)
> I'd argue we should be making it easier for developers to build more decentralised systems

Why?

Re:The Mission to Decentralize the Internet by amirmc on Tuesday December 17, 2013 @03:20PM (#6923642)
Ok, let's start with your points.

"Inefficient routing, unstable communication, high latency and low bandwidth": If I have two devices (phone and laptop) on the same wifi network (e.g. home or work) and I want to send something between them, why should it first go via a cloud service? In my case, photo backups from my phone to my laptop, which happens via PhotoStream at the moment, or files from my laptop to my phone. If a route can easily be formed across the nearest AP then it's shorter, more stable, probably higher bandwidth and certainly lower latency than via the cloud. As the number of devices I own grows, this use case will become more prevalent (think "Internet of Things").

"You have to do a lot more work to achieve things that would otherwise be simple and straightforward": Sure, but you haven't asked why this is the case (and who 'you' is), which is just as important to examine. At the moment, you as a developer have to do more work in order to build decentralised systems because not enough free OSS tools exist yet. The main reason that using a central server is easier is because the tools, techniques and knowledgebase have become 'standardised' but that doesn't preclude there being better ways of doing things. I'm advocating tools that make it easier to build decentralised services and products.

Decentralised systems are more resilient than their centralised counterparts. Any large-scale service/product ends up being decentralised behind the scenes and if you don't believe me, ponder for a moment how the likes of Google, Facebook et. al., manage to deal with so many users across the globe. They have to make their own tools to solve the same kinds of problems I'm alluding to. I'm merely advocating that we try to 'productize' such tools so that any developer can pick them up and incorporate them from the very beginning. Real world examples of such things are how Skype worked in the early days, Dropbox's LAN sync [1] and even Spotify [2], where P2P can improve user experience and reduce their bandwidth costs. I don't know how their systems work but this clearly demonstrates the business value in P2P.

As you say yourself, "the internet is already a system of decentralized networks and services" but don't dismiss the work taken to get there and the value that the lack of centralisation brings. Those same benefits can be gained elsewhere provided the appropriate tools/infrastructure are made available and useable.

Hypothesis: If there were FOSS tools that make it easier to create secure, decentralised systems, more developers would create secure, decentralised products.

[1] https://www.dropbox.com/help/137/en

[2] http://community.spotify.com/t5/Help-Desktop-Linux-Mac-and/U...

Re:The Mission to Decentralize the Internet by peterwwillis on Tuesday December 17, 2013 @04:22PM (#6924068)
> If I have two devices (phone and laptop) on the same wifi network (e.g. home or work) and I want to send something between them

Then you do a Bluetooth transfer, or CIFS/SMB file share, or FTP, or HTTP, or IrDA, or USB, etc. Why would you use a cloud service?

Everyone involved has to do more work to support decentralized services. Users, developers, admins, etc. The only thing you may not need more of is infrastructure. Just because you've made it easier to build a service does not mean the service is easier to use.

No, these products are still centralized. They are merely made more redundant, fault-tolerant and highly-available. They may also be distributed, which is different than decentralized.

I never said there aren't benefits to decentralized systems. As I said, they can be useful. Centralized systems are just easier to create/use/maintain, are more reliable, and are faster. Depending on the application.

Re:The Mission to Decentralize the Internet by amirmc on Tuesday December 17, 2013 @07:38PM (#6925038)
> "Then you do a Bluetooth transfer, or CIFS/SMB file share, or FTP, or HTTP, or IrDA, or USB, etc. Why would you use a cloud service?"

I suppose this is what you say to people who extol the virtues of Dropbox or BitTorrent Sync? It almost sounds like you've completely missed the wave of stuff that's happening, which I find hard to believe (or you're being deliberately obtuse).

> "No, these products are still centralized. They are merely made more redundant, fault-tolerant and highly-available."

How do you suppose they are made redundant, fault-tolerant and highly-available? I've tried to describe how in my previous comment and you haven't given any counterpoints.

> "They may also be distributed, which is different than decentralized."

Ok, this made me think as I tend to use the words interchangeably. Some quick Google searching doesn't clarify anything either (I find conflicting versions). Ovearall, I get the feeling that you have a different view of what 'centralised' means but even then, you haven't given any examples of why such things are more reliable or faster, whereas I've tried to do so.

Re:The Mission to Decentralize the Internet by peterwwillis on Wednesday December 18, 2013 @09:13AM (#6927559)
'The wave of stuff that's happening' is not some crazy new paradigm shift. It's remote network services. Why you would use a remote network service when all your files are available locally, I have no idea. People are weird.

The easiest way to think of this is in terms of network architecture. A Client-Server model of network architecture is by definition centralized; you have one or more clients, and only one server. The client connects to the server to do whatever it wants. In a decentralized model, the server is any node with the ability to serve the requests of the clients - which often includes other clients.

It would take too much time to explain how all of that stuff works, but suffice to say that just because there's more than one computer involved or more than one process involved does not make it a decentralized service. If the client is still just talking to one thing (on the frontend), it's basically centralized.

To explain how centralized architecture is faster, consider a simple example where there is one client, and three nodes distributing a file. The client has to first find and identify the nodes, which usually takes more time than just resolving a single server, because it has to "search" for its peer nodes. Then it has to request a file, which is probably split up into pieces and little requests are sent to each node. Each node then sends the client the pieces. The client then reassembles them on its end to create the finished file. Compare this to a server, where from lookup to file transfer, there is one continuous operation; there is no need to communicate with multiple nodes or track multiple connections or piece together files. Also with the distributed model, you are at the mercy of all the nodes in the network, not just one, and all of the different networks those nodes might be on. You also may end up doing 3x the network operations, depending on protocols, chunk sizes, etc. Because you can't bet on the source of the file coming from one reliable place, network latency may go up, and bandwidth may also go down - in practice over the internet this is virtually guaranteed vs a central server's large pipe.

Re:The Mission to Decentralize the Internet by rthomas6 on Tuesday December 17, 2013 @11:19AM (#6921913)
What about things like Bitcoin and Bittorrent? Those are decentralized protocols that both work great. I think the real problem is that decentralized protocols have no way of determining what information each user should see or not see. I also think this is a solvable problem, but that it is hard.
Re:The Mission to Decentralize the Internet by peterwwillis on Tuesday December 17, 2013 @11:27AM (#6921952)
Bittorrent does not work great, to my mind, compared to a centralized service. It's absolutely abysmal on network traffic, is inherently slow, and depending on the communication, practically unusable outside affinity groups. Toward that last end it's useful, but i'd hardly consider it great in general.

I don't know enough about Bitcoin to say if it's efficient but i'm aware that transactions can move around the network without much effort, which is nice. But there's big downsides to the transparency of transactions there vs cash or credit, not to mention having your "wallet" stolen vs more traditional credit systems that are more durable for general global commerce.

Both of those things are useful. They're just not as efficient or reliable as a centralized service can be. Centralized services & communication have their own problems, but generally speaking the bigger they are the more robust they are, which is often the opposite in truly distributed systems.

Re:The Mission to Decentralize the Internet by oib on Tuesday December 17, 2013 @12:23PM (#6922292)
Why is bittorrent abysmal on network traffic and inherently slow ? Both facebook and twitter use it for server deployment because they utilize network resources far better than centralized systems. I would make the opposite claim: distributed systems can be far more efficient or reliable than centralized service.
Re:The Mission to Decentralize the Internet by Jtsummers on Tuesday December 17, 2013 @02:07PM (#6923088)
I had to look this up because I was unfamiliar with it. Based on this synopsis it seems that my initial thoughts were correct. They're taking advantage of their unique control over their situation (compared to, say, random clients distributed unevenly across the globe) to achieve their speedup.

Facebook's solution is similarly customized and optimized to take advantage of their network control/topology. The clients are given a preference for closer (same rack/node) sources.

[1] https://blog.twitter.com/2010/murder-fast-datacenter-code-de...

[2] http://arstechnica.com/business/2012/04/exclusive-a-behind-t...

Re:The Mission to Decentralize the Internet by peterwwillis on Tuesday December 17, 2013 @02:04PM (#6923067)
The short answer is that the effective use of the protocol is almost entirely based on the quality of the network of peers involved in distributing the content. For a relatively small internal network that can be quality-controlled by a single team, this may work more effectively than a single centralized service. For the Internet, this is retarded. See PDFs below for some example reasons.

The long answer would have me explaining all of the different use cases of both decentralized and centralized services and a comparison for each. For example, compare bulk file transfer to a domain name service in truly decentralized networks. Keeping domain names requires massive coordination of peers over a gigantic index which can't have conflicts. Bulk file transfer is almost the opposite, as few people have the records (torrent) and the task is mainly in distributing the index (the file). Both are simpler, more efficient, and more reliable if you take out the middle-man of trying to coordinate with more than one peer.

http://www.imd.uni-rostock.de/veroeff/ImprovedBitTorrent_Dan...

https://engineering.purdue.edu/~isl/TON12.pdf

https://www.ietf.org/proceedings/74/slides/P2PRG-0.pdf

Re:The Mission to Decentralize the Internet by 21echoes on Tuesday December 17, 2013 @02:00PM (#6923033)
> Bittorrent does not work great, to my mind, compared to a centralized service. It's absolutely abysmal on network traffic, is inherently slow, and depending on the communication, practically unusable outside affinity groups. Toward that last end it's useful, but i'd hardly consider it great in general.

I don't know what BitTorrent you're using, but most everything i torrent downloads way faster than it would from a centralized server (iTunes, MegaUpload, etc.)

Re:The Mission to Decentralize the Internet by peterwwillis on Tuesday December 17, 2013 @02:36PM (#6923342)
You're missing out on newsgroup and fxp speeds (in the gigabits-per-second range). And that applies to every download, not just the odd torrent with as many seeders as leechers.
Re:The Mission to Decentralize the Internet by wmf on Tuesday December 17, 2013 @09:03PM (#6925430)
It's not hard for a system with strictly more resources (e.g. massive servers) to be faster, but who's paying for it and how much more does it cost? I suspect if those massive servers acted as BitTorrent permaseeds the result would be even faster because the peers could contribute additional bandwidth.
Re:The Mission to Decentralize the Internet by w0rd-driven on Tuesday December 17, 2013 @11:55AM (#6922126)
I think you hit on why Diaspora hasn't really taken off. There may be technical challenges I gloss over but centralization denotes authority to me. Most design by committee OSS seems to suck really hard but having that one strong sense of leadership, like in the case of Linus seems to make a huge difference in comparison.

I know I'm mostly talking about humans but I think there's part of our condition that doesn't really promote decentralization in a pure state. I think we could and should try to promote it to make future endeavors more successful but it may be too strong of a current to swim against if I can use any more analogies...

Re:The Mission to Decentralize the Internet by amirmc on Tuesday December 17, 2013 @12:22PM (#6922285)
I think Diaspora was an idea ahead of it's time. Market-timing is critical for a new project/startup and I think there weren't enough users in the world who understood both the costs and benefits of Facebook (or social media) to properly evaluate and consider alternatives. I think the world is different now and there is a growing group of people who care and would consider alternatives and others who 'have nothing to hide' and will continue to hand over personal data.

Edit: An example of my view above is the press attention that things like ArkOS, CozyCloud and others are now getting. It remains to be seen how many of these build large, sustainable user bases but it does indicate some level of 'market pull', which (imho) we should try and match with 'technology push'.

Re:The Mission to Decentralize the Internet by wmf on Tuesday December 17, 2013 @01:46PM (#6922925)
It sounds like you're talking about two different things. The Diaspora software could have strong central leadership (with an open source license providing a right to exit that may never have to be exercised) while the deployment could be distributed.
Re:The Mission to Decentralize the Internet by DenisM on Tuesday December 17, 2013 @01:00PM (#6922581)
Well how about central planning vs free market? Logically, the former must win as more efficient per your own argument, and yet in the long run free market wins.
Re:The Mission to Decentralize the Internet by wmf on Tuesday December 17, 2013 @01:44PM (#6922899)
I can't find the link, but I saw an estimate that even today's supercomputers aren't powerful enough to centrally plan a modern economy — there are literally millions of variables.