Abstract: This is an article about social-technological development, the rise of certain concepts of controlling peoples digital identities and the data linked to them, and about freedom and self-determination. About how we lost most of our freedom to large corporations using the power of the global network, how we may lose all of it, and how we may actually start to fight back and win this. This is a proposal however, a collection of rough ideas of a simple layman, not a guaranteed recipe, please try and do keep that in mind. It is also a slight bit utopian. Somebody has to come up with something though.
- [1. Preface]
- [2. Todays problem]
- [3. The reasons]
- [4. The solution, stage I]
- [5. Feasibility, economical and ecological considerations of stage I]
- [6. Other major challenges]
- [7. The solution, stage II]
- [8. Feasibility and major challenges of stage II]
- [9. The benefits]
- [10. The danger]
- [11. The subjective Truth]
Before I even start with this, I am going to say, that while I believe that the concepts I am “dreaming” about here are very well feasible, economically viable and practicable, my hopes for anything like it actually happening are extremely low. If you read this, you will learn why. Also, in the course of this article, you may be confronted with some pathos, just so you know in advance.
1a. An ancient concept reborn:
Since the many years I have seen fly by in the world of computers and networks, I have seen many trends arise, some would stay, others would fall. However, before my own time, back in the 60s and 70s there was one trend nobody thought would ever come back later. The concept of the thin client and the mainframe.
The concept of complete centralization. Originally, mainframes were large computers with large data storage systems, printers and so on. To work on them, you would use a “dumb” networked thin client, barely more than a light weight empty shell. Monitor and keyboard. Locally, you had no computational power, no storage. No data. You had no physical control over what you were working with. All the power laid with the mainframe and its operators.
1b. A brief period of relative freedom:
Later, fat clients – PCs basically – conquered the world and people ran their software locally, stored most of their data locally, played games locally etc. Also, since large corporations had not yet perfected their “predatory” skills, users were mostly in control of the Internet too. It looked like we were free and like we got control over everything. If back then somebody would’ve told me that 10 years later we’d buy most software components using microtransactions on online stores (I’m talking about stuff like Google Play or Apples AppStore here) and that corporations ruled the world and the Internet, I would’ve just laughed out loud. And yet…
2. Todays problem:
Now, nobody is laughing about that anymore. In essence, we have reached George Orwells [1984 dystopia], only that we don’t clearly see it anymore. Our data is centralized on massive cloud servers / data warehouse clusters, we are losing control over the services we provide (images or posts we wanna share, think Facebook, Amazon cloud services) or consume (e.g.: YouTube, AppStore). We’re losing control over the software we run, as the market is making its transition from a pay-to-own concept to a rental system, see Office 365 or the former game streaming service [OnLive]. More and more applications are transformed to become Web Apps – a field were Google is strong – shifting power from us to their cloud. Clients are growing thinner and less controllable, like phones and tablets, resembling the powerless thin clients of old. Well, data mining is a big thing now, and it works perfectly with centralized systems. Experts are analyzing the desires, traits of character, social networks, behavioral patterns, etc. of every member of every part of society that is now their market, down to the youngest of children. And all is to a great extent powered by a new, more and more centralized Internet of rich web applications. So no, I’m not overly scared of the NSA. A bit, yes, but that’s not the prime danger. Never was.
And, on top of all that, every new generation grows up accepting the current situation as normal, no matter how dangerous it may be. They would call the older ones – I’m talking 25-40 years old now – conservative (which we can be, I surely am ) and not give a shit about our ravings I guess. They will just believe the new way is the right way, in all aspects. The negative part just disappears from the manipulated perception of the wider public.
The very concept of objective truth is fading out of the world. Lies will pass into history.
– George Orwell (1903-1950)
Now all that we know. We know Google is mining data from every search we commit, every click in every application of theirs we make, etc. We know Facebook is tracking us via their “Like” buttons on every website, profiling us in the process and presumably selling that data out to the highest bidder. And then, influencing us through adaptive advertisements we may not even be able to notice, AdBlockPlus or not.
We know that centralization also centralizes power. The power over us. In history, centralized power has slowly been replaced by slightly more distributed power, as we progressed from monarchies and dictatorships to our still far from well-working democracies. It was a long and bloody path though. A digital revolution giving power back to the people could achieve something similar, only without all the bleeding and dying.
3. The reasons:
So, why do we not act? Because after decades of experience, the “predators” have perfected their skills. They know what we think, what we feel and why we do so. They know who we talk with, and when and potentially even about what. They can take all our data and meta data, whether chat logs, art we may have created, personal networks we may have built or whatever and and just use it for themselves or sell it out.
None of this hurts.
Which is why there is no counter-evolution by us, the “prey”. We’ve been buttered up by convenient services.
We’re sitting ducks, because we don’t feel the pain. In fact, the corporations of today have found a way to “enslave” us without ever having to crack the whip. They’re buying us with convenience. Note that, whenever a product is free, you’re not the consumer. You’re the product. What you may have thought was the product is in fact just bait. And don’t even try and say anything about any government and stricter regulations for data privacy here. Our glorious leaders, degenerated to be companies’ bootlickers, nah, forget about them.
This entire system works like a very devious disease. You can’t feel it, you just keep walking, thinking that everything’s gonna be fine and then one day, you gasp in sudden disbelief! And then you just drop dead like a fly. That’s the day when the wrong person gets access to all that centralized power.
When it hurts, it will be too late already!
4. The solution, stage I:
4a. What needs to be done:
The first step out of this misery is to take back control of our services and data to the full extent. So basically, we need to serve everything ourselves, we need to store and provide data we’d like to share from machines that are fully under our control. Now while I’d love to say “Everybody should just run their own home server”, I know this is unrealizable bullshit. Most people are caught up in work, in founding their families, building a house or dealing with some other trouble, their attention being required elsewhere.
Most of them do not have the time. Most of them do not have the skills or resources to spare. And the rest is lazy and likes convenient life or just doesn’t care despite the clear threat. And yet, we need those home servers!
4b. Who needs to act first:
Thus, it is the freaks and nerds who have to act and take on responsibility for all of us. I assume that in what I’d call the first world, every circle of friends has at least one nerd in it. One person who is capable of and willing to run a home server, 100% under his or her control. Such a person could and should start with simple things, like a web server with FTP access, maybe virtualization of operating systems for friends with remote desktop access, or with a mail server.
If such an operator can convince his or her family and friends that it provides a higher level of self-determination and freedom to them to migrate away from the big players to that local small box, they may follow such advice. They may actually listen.
And I do have a proof of concept for that, and that is this here server, my very own box, that family and friends are using partially for these very reasons. You can sensitize people to matters of security and especially privacy, and I was surprised that they would actually carefully listen despite having zero background in computer science. I was even more surprised that they were willing to actually act upon it, and at least partially migrate. Full migration is not possible yet, as shown below in stage II. But still, for what a single home server can provide, success is very much a practicable reality.
It is because they trust their fellow nerd. And while abuse of trust is not unthinkable in such a setup, it is highly unlikely. Most operators would feel proud to secure their friends’ and families’ digital lives and to free them from prying eyes looking for profit in tracking their behavioral patterns. Now, while trust is always a dangerous thing, it is probably by several orders of magnitude more justified in this setup, than in what we currently have, trusting opaque mega-corporations fully, with far more than we should ever want to.
5. Feasibility, economical and ecological considerations of stage I:
5a. The economical side:
Now how affordable is this? One person would need to buy a server, for stability reasons probably with redundant power supplies and storage backends. Also, an uninterruptible power supply would be a good idea to ensure availability. In certain countries, an expensive business Internet connection might be required to be allowed to host services and reach a high enough upstream bandwidth. Operating systems might cost money if the operator chooses to work with Microsoft or Apple. There are alternatives with Linux, BSD UNIX, Solaris and others though, so we’ll assume zero cost for the software.
The cost for the machine and equipment can range anywhere in between maybe 200€ or $ up to maybe 2000€ unless you go extremely cheap and use a [Raspberry Pi] for this. This depends on the services to be run and the number of users of course. Even a cheap modern machine should be able to host web sites, email and maybe OwnCloud for about 20 users though.
Then there are electricity and Internet costs.
For all this, I can see two ways of funding, of which I am currently walking the first one with some ambition to tap into the second one for the next UPS purchase:
- The operator pays up for it out of ideological reasons, getting respect and pride as rewards.
- The operator asks each of his/her users for a small amount of money to finance the entire operation.
Both would work. The more expensive running a single home server gets, the more likely the operator will need to choose path 2 to at least some extent.
5b. The ecological side:
While moving services out of housing centers would mean we can save some energy by not needing air conditioning systems, it also means we’re throwing away service consolidation. As such, the density of services per server and thus the utilization of the hardware available would likely be lower per watt. That would mean, that in the end we might have more machines running consuming more energy for the same amount of services provided. It is hard to estimate the outcome of this, but despite the more obvious savings in infrastructure and the great power saving capabilities of modern machines, I would fear that we might consume more power by running a decentralized network of many micro servers. This we would need to be aware of.
6. Other major challenges:
I would expect that propaganda would be problematic. Advertising this kind of setup from a single point like here is completely and utterly pointless. This has to be passed from operator to operator like a viral campaign, thus covering large areas fast enough to make an impact. Also, convincing people (operators and regular users alike) might pose a problem in general. This requires work for the operators and a change in thinking for everybody, especially common users. Naturally, this is extremely hard as people may fail to accept the significance and importance of the whole concept. It gets a lot harder in stage II though, as you’ll see now.
7. The solution, stage II:
7a. Decentralization alone is not enough:
Now let us assume we have reached a stage where society has been pervaded by a loosely connected but dense enough network of home servers. While users are happily using them, taking away a few breadcrumbs from the larger, more exploitative services hosted by Google, Microsoft, Facebook and many others, it is still a chaotic, disorganized system. It cannot replace larger, centralized services as-is. So we would still depend on Google/Bing/whatever search engines, YouTube, Facebook, Twitter, etc.
To solve this, we need proper software, and that software needs proper algorithms. Now bear with me, most of this stuff already exists! It’s just not being used in that very context. What I’m talking about here – only in part – could be a service the likes of “another Facebook”, just decentralized! Let’s call it “SkyNet2” for now (Haha, I know what you’re thinking, but it’ll become clearer soon! Plus, I just can’t help myself but think it sounds awesome!).
7b. How to disperse arbitrary centralized services using distributed hash tables, boosting net neutrality in the process:
In computer science, there is an algorithm or rather data structure known as the DHT or distributed hash table. Basically, it’s a huge table of keys (file names, or resource identifiers) and values (the contents, meta data or a URL) distributed amongst nodes (=our home servers). DHTs can be designed in such a way, that they represent a large, dynamic network of nodes where each node holds a small amount of data. Depending on topology – like chord , or binary trees – they can serve certain purposes well, like you can optimize them for certain search profiles. Also, if you choose your topology well, you can make this setup support the concept of [net neutrality] by not introducing a hierarchical structure that would serve certain content at consistently lower latency and potentially higher bandwidth and by fragmenting the network enough to make hurting net neutrality at the Internet service provider level impossible. While it has been suggested  that using DHT for “Google style” searching is quite hard, I believe it can still be done. What we want is equality, neutrality and freedom:
DHTs exist primarily in distributed file sharing networks like those using the Gnutella system or in recent times also Torrent. They’re also used for certain clustered database servers to optimize for very fast searching. In such contexts it has clearly shown, that it can grow or shrink at any given time by an almost arbitrary number of member nodes without failing.
If you want to learn more about distributed hash tables and associated algorithms and ideas, there are several documents and scientific papers on the topic referenced [on the Wikipedia], which may be a good place to start, should you wish to dig in deeper.
7c. Application for a hypothetical distributed social networking system:
Now say we create a DHT backend network for web servers, controlled by server-side configurations as well as script languages like PHP or Perl. Maybe even Java, if you’re into that. The frontend would just be a website. The backend is any web server and scripting language just like today, with data stored in conventional SQL servers. Each home server holds a local set of small webs, fractions of the superstructure. Say, Chuck is running his own local SkyNet2 node, and it holds the profile page of Max and Lucy, which belong to the SkyNet2 “Facebook ripoff”. The data served by those profiles are stored in a local SQL server and on local file storage for images, videos etc.
But its no local-only system. When you access it, you can see and access millions of profiles, posts, images, whatever, just like on current, centralized social networking sites. Because in the background, every resource you have clicked on, every search you submit and every link leads to one or numerous resources located by a decentralized DHT protocol network! You don’t need static links that break all the time anyway, only a key that is called “Max’ profile page” will some meta data like “this is a SkyNet2 user profile site” or “this is an image”, and the sites URL as the resource that is being accessed as soon as the location of it is derived from the search across the DHT topology. Even Chucks server node – the machine itself! – can be found by using a node hash. Chucks domain name or IP address may change, the hash stays and the can be found as soon as Chucks home server (re)joins the larger superstructure.
Let me try and visualize it a bit:
7d. Flexibility and robustness:
Like the original evil SkyNet, “SkyNet2” cannot be stopped once alive. You cannot pull the plug and switch it off, and why? Because, like its namesake its sitting on no single server. It’s literally everywhere! Just like BitTorrent or good old Gnutella.
When done right, this can be enhanced and expanded easily to support multiple higher level network protocols, not just HTTP or HTTPS. Basically, the backend could return pretty much anything, an ftp+ssl:// URL to access a fileserver would be just as doable as a ssh+svn:// protocol to access a subversion software repository via SSH, or maybe magnet:// to download stuff from the BitTorrent network. It could also return SMTP/POP3/IMAP email server URLs or the contents of a public mailing list, whatever. Since we can make both machines, URLs and even content itself addressable, this is extremely flexible. When searching for an image, I don’t really care which server it comes from. But with DHT, I can search for just the file name. Even changing filenames are not problematic for certain document types. Even content can be hashed and made fully searchable in a DHT structure.
By adding content type classes like “image”, “video”, “website”, “archive file”, “server node” to the keys, we can also allow the users to narrow down their search to classes of objects, pretty much like todays centralized systems also offer it to us.
So, it sounds like one fat layer of glue code between networks and systems that already exist, right? Right. True. But it has the potential to put every service and one of the most powerful tools ever – the search engine – fully back in our own hands.
8. Feasibility and major challenges of stage II:
8a. The software:
At first, this depends on how we can deal with the software development side of things. For the Apache web server for instance, this could be solved with a loadable module maybe called mod_dht.so/mod_dht.dll. But enabling web servers with DHT would require someone to actually write the freaking code. Luckily, the free software world does have some developers who can deal with DHT, such as the guys who built [qBittorrent] for instance. They also have cross-platform experience, which is always a bonus. Also, the guys who built [OwnCloud] or developers similar to them would be nice. As a matter of fact, a cloud storage service that you can host yourself (but don’t have to) with clients for Windows, MacOS X, Linux, BSD UNIX as well as Android and iOS? OwnCloud would be perfect for integration into such a system.
So, we need the developers, we need a web superstructure (in fact probably a set of templates for a “Facebook-like” system), that can easily be integrated. Also, while each users profile/blog page needs to enable its user to show some artistic individuality, the system should always be streamlined enough so that you can always tell “I’m on SkyNet2, no doubt”. So no matter if you visit Max’ profile, or Lucy’s or mine, they all may look different, but it needs to show enough similarity to allow for both the users to properly express themselves and for the system to show off what it is. Like on torrent, where you may download a Linux distributions ISO file, or a free movie or music, but you always know “This is the BitTorrent system”. So we need the DHT code + glue code and also some content to put on top of it.
It shan’t all be SkyNet2 though, but let’s just list a few services that any such system would gradually need to replace:
- Googles search engine and gradually all other Google services, which are enormously powerful and thus hard to replace
- eBay (most definitely not including anything like PayPal, which can never lie in users hands)
What it can not and likely should not replace are services that can by design and purpose not be in “regular people’s” hands, such as the following examples:
- PayPal (as shown above)
- Steam, Origin, UPlay, etc.
This is actually not impossible. If OwnCloud was doable, then so would this be. But there is that other problem that I talked above before, and that’s acceptance. Convincing people is the single greatest challenge of all. One that I have still no clear concept of how to really master in practice. I have pulled off stage I in my own local environment, yes. But on a global scale? Can viral propaganda do it? Maybe, but it’s a massive risk. But there is also a lot to be gained in case of success.
8b.) Topology issues:
I have mentioned latencies before, and one of the reasons for it becoming too high is that at least the chord topology is just a logical ring / mesh. It does not take physical properties into account, so it has no location awareness. This might be problematic. Imagine I would like to search for Lucys page like shown above; In that scenario I have to query 3 nodes before reaching the correct one. Now if I am in Europe, and the first node is in Brazil, the second in Japan and the third in Russia, well, you see where this is going.
The protocols and its extensions’ (see below) efficiency might greatly improve by altering the topology so that it is formed taking geographical proximity into account. Using existing GeoIP databases may be a way to create the network in a more efficient way regarding geographical parameters. After all, people don’t like it when they have to wait for their search results. Also, the chord topology might not be the best one to begin with, it’s just one that caught my attention due to its inherent fairness.
But, there are developers many times smarter than me with lots of experience in designing DHTs, and if there is anything considerably smarter than this, they’ll find a way!
8c. Avoiding isolation:
While complete independence and freedom of digital private life is the ultimate goal, intercommunication is and will always be essential. This is especially true during the phase of initial growth, but cannot be ignored later either. While people would be well advised to abandon certain services on the Internet, shutting them out by force is not a good solution. To still be able to not have to rely on external services for critical operations, at least the search engine could be enhanced to look for data in the outside network whose servers are not members of the DHT superstructure. We can just let individual nodes crawl the outside web, index external servers and their content and thus pull in outside meta data and make it fully searchable. Thus, we do not need to rely on Google/Bing/etc. to search the outside world necessarily:
This does come at a cost though, and that’s system memory and storage capacity. As shown in the image description, load balancing is critical. This requires a high enough density of home servers. If my home server needs to crawl through and index my entire state, this ain’t gonna end very well. Again, distribution amongst many is key!
Of course – and I would like to emphasize this clearly – the proposed network is not really isolated in any way at all. It’s just systems connected to the existing Internet after all. So with any regular computer you can use the web just as you always did. The idea here is once again not to need to rely on services we may consider untrustworthy, without having to sacrifice too much. So if this kind of crawling, indexing of and interaction with “outside” servers does not exist at some stage of development, you can still just use any other conventional service on the Net, as usual. This is no firewall after all.
When it comes down to it, the freedom to use services that impact your freedom lies with you, the individual user.
8d. The social factor:
I have mentioned this several times already, but this needs to be said again, for stage II just as much as for stage I if not even a lot more so: Writing the software and defining revised, optimized algorithms and all that is comparably easy when seen in perspective. The largest challenge of all I think is the social one. People believe posting stuff on Facebook with their phones is cool and awesome. They depend on the feedback of their social peers like humans always did to define themselves.
People are using this kind of service lightheartedly. And Google has become something like the air you just breathe in. Always there, and only a problem when it’s gone or so it seems in the status quo.
People would probably just frown when hearing about a replacement technology focusing on freedom, independence and self-determination. They already consider themselves free, no matter if it’s just a golden cage in reality. Even conquering mobile devices with proper software does not mean guaranteed success, even if it’s well written and designed.
I was previously proposing to let the operators or nerds convince their friends and family. This is a process I know can take anything from weeks to years. There are surely people who would just shake their heads, considering the whole thing to be just silly and stupid, or quixotic at best.
So, to awaken people is the single greatest challenge. For a revolutionary technology to succeed, people need to be convinced of it, or even the perfect technology isn’t worth it’s weight in crap. Since we surely can’t rely on any marketing experts to help there, I wonder who might come up with the perfect concept? Maybe people like [Oliver Stone] would, he did support this too:
9. The benefits:
- All services and all data we use lies in the hands of people we can ultimately trust. And if they fuck with us, we can effectively confront them personally!
- Less tracking, less stalking, less being monetized, less exploitation of the common user.
- Nobody can easily attack your host physically and if it does happen (e.g.: somebody breaks into your operators home), you’ll know immediately. Physical control means less possible attack vectors and thus, more security.
- More people with higher skill, and thus a technologically more educated society, as each user is close to his/her operator and may thus learn a lot about security, data backups, possible attacks, and general concepts of freedom, privacy and security in a networked society. That includes the home server operators themselves, as they will – through building, setting up and running those servers – gain knowledge and skill.
- With proper adaptations, the system could be used for routing and anonymization of any Internet traffic, like the [Tor] network. A node class “INet gateway” with attribute “approximate location” or a function “location of proxy may not match location of client” could be introduced to mark home server nodes that allow you to use them as proxies for any Internet access, ensuring that the proxy is sitting outside of your local jurisdictions sphere of influence where necessary. But I guess the Tor developers have smarter ideas for that. Simply using their service in conjunction with the system proposed here? Why not.
- Enhanced security by obscurity and service fragmentation. A decentralized network built on top of Linux, BSD UNIX, Solaris, MacOS X, Windows, maybe even exotic systems such as [OpenVMS] is so heterogeneous, so diverse, that no attack – zero-day or not – will be able to affect every single node. Even if one day all Windows machines are blown to shreds by some malware, SkyNet2 will be able to survive with ease.
- Securing performance by load balancing of content across many nodes.
- A formidable buildup of our understanding of democracy, as such a system would empower each single user and teach us that changes can be achieved in a relatively non-violent, initiated-by-the-masses way. It might inspire us to further change!
10. The danger:
As much as I hate talking about this part, there is one issue that cannot be fully denied: Jobs. Now if a system like this succeeds at large, no matter how unlikely it may seem, it has the potential to destroy jobs. While I guess a lot more hardware will be sold for some time, larger organizations may begin to suffer naturally, as they’re running out of “slaves” to squeeze anything out of. While the more ingenious of them may just start tapping into the DHT network to secure their data mining business, some may run out of options, such as larger commercial web hosters, root server providers, companies which have invested in cloud storage solutions etc., basically all those people that provided what people can now provide themselves.
There may be a significant boost for the Internet service provider business though, as a lot more people would require high upstream connections to run their servers. Again, just like with the environmental concerns, it is hard for me to estimate the outcome of this, but the potential, the danger to harm at least certain businesses (whether they deserve to die or not) is real!
11. The subjective Truth:
Could we pull this stunt off? Hell yeah we could! Will we? Well, I want something like this SO MUCH, but while looking at the world and at how things work, I am losing hope. Not that hope is a good or stable thing to rely on to begin with, but at least it gives you some motivation to actually do something good!
The challenges posted are partially technical, partially economical, but mostly social. We are living in a world where most individuals have internalized the very concept of capitalism and of becoming a consumer that buys and a product that is being sold, defining our personalities through such superficial processes. Now, I’m not against all forms of capitalism, no, I’m not. If you have a brilliant idea to make the world a better place, for instance by making engines consume less fuel or by developing an idea to make nuclear fusion actually work with a positive energy balance, then by all means, you shall be rewarded with tons of our money! Or say, you build cars, or houses, or pencils for gods sake, shoes, T-shirts, toothbrushes, whatever, then YES, take my money for it! Same goes for services like the barbers’, any stand-up comedian, or the plumber who makes your toilet flush again.
But there are limits as to what shall be capitalized. And those limits have started to slowly disappear, not just in the fiery nine hells of the stock market, but even at home! When the very understanding of freedom and its significance starts to fade away, and brand recognition starts to replace individuality and character, we’re dealing with a situation that might deteriorate too fast to be able to pull this off.
And of course, nobody would believe in this. If I tell you now “let’s start SkyNet2!” (Or FreeWeb, or FreeNet or whatever you’d wanna call it) and then I show you some ideas, of which maybe not even half are usable, are you gonna say “Oh yeah, let’s go!”. Nah you aren’t. We’re lazy. We are adapted to a system that doesn’t let us off the leash, but at least feeds us and lets us sleep on a soft bed, metaphorically spoken. In essence, we’re all selling ourselves out either to whomever provides us with the easiest, most convenient way to reach what we were told we need by some shady advertisements or other more subliminal methods of talking us into buying something, or to whomever gives us the free stuff for whatever price it may cost us in terms of privacy or self-determination.
Even I am no exception. While I’m trying to fight as good as I believe I’m able to, I am still sitting in a Microsoft vendor lock-in (even though that lock’s starting to crumble), I am using Steam, even Origin for fucks sake, and I am using the ICQ network now controlled by the Russians plus the occasional Skype when playing multi player games, and I am not fully anonymizing my Internet communication. While I’ve been playing around a lot with Linux (10+ years of experience now), BSD UNIX, Solaris and Haiku, even Syllable Desktop, my private machines are still in a locked up state, at least partially.
Nonetheless, I somehow still have hope, that one day…
 Stoica, I.; Morris, R.; Karger, D.; Kaashoek, M. F.; Balakrishnan, H. (2001). “Chord: A scalable peer-to-peer lookup service for internet applications“. ACM SIGCOMM Computer Communication Review 31 (4): 149. doi:10.1145/964723.383071.
 Pang, J. (2004). 15-441 – Distributed Hash Tables.
 Tanenbaum, A. S.; Steen, M. V. CS865 – Distributed Software Development, Lecture 5.