How To Make The Internet More Awesome
Tags: open-source, apps, decentralization, p2p, internet open-source apps decentralization p2p internet
As you all know by now, I am in love with decentralization on all things internet based. The big issue is the service provider being the gatekeeper. This is solved with "mesh networks" and we can get into that in a future post. The other issue that tops the list is hosting our sites, files, and communication. I have came across an open-source startup working to fix the hosting problem.
This is awesome! All the pieces are there for someone to live their Internet life almost fully decentralized. However, one hundred percent decentralization is not possible but we are much better off. Once the boulder passes the peak that is ease of use and adoption the Internet will be the people's as it was intended. Sites will offer both a legacy version and a secure peer-2-peer version.
Dat is a dataset synchronization protocol that does not assume a dataset is static or that the entire dataset will be downloaded.
Dat is the backbone of the Beaker Browser and allows us to do a lot of cool nerd stuff. Dat allows for a decentralized approach to file sharing in a version control manner. All cloud services rely on a central point and while that is fine an issue arises when a site or file gets too popular. In the traditional model if the provider does not make other gateways the connections slow down.
With Dat, the more popular a file or site is the easier it is to receive with no speed reduction. They will get faster since more nodes will have a copy or part of a copy. This is the removal of the bandwidth bottleneck we see when a site gets overloaded. This made me wonder if this could solve DDoS Attacks.
Key properties of Dat:
Content Integrity - Data and publisher integrity is verified through use of signed hashes of the content.
Decentralized Mirroring - Users sharing the same Dat automatically discover each other and exchange data in a swarm.
Network Privacy - Dat provides certain privacy guarantees including end-to-end encryption.
Incremental Versioning - Datasets can be efficiently synced, even in real time, to other peers.
Random Access - Huge file hierarchies can be efficiently traversed remotely.
Let's break these down more. The content is secured with cryptography. These hashes are also used so we know the data is from who we intended. I talked about cryptography in detail in a podcast before I made them into official posts like this one.
Decentralized mirroring is what allows the transfer of data to scale. This gives us a faster fetching time than when only one server gives out the data. Network privacy is tricky in a peer-to-peer system and Dat is giving users control over the level of security. Sites are private by default with unguessable URLs, but anybody you give the URL to can access it.
With Incremental Versioning, Dat is using a Git like service to make sure that every node hosting your content has the most up-to-date version of your site or file. The Random Access property has many parts but to play off the quote above that basically means you can get individual files or folders from a Dat efficiently over the network. The details of Dat are still new to me so please read the white paper for the most accurate information.
Beaker is a peer-to-peer browser with tools to create and host websites.
At this time we need a special browser to access these peer-to-peer sites. Just as you can use Tor to view sites with either a .oninon or .com domain you can use Beaker to view both the legacy web and any site using Dat. You don't even have to know a site has a Dat peer-to-peer version. When you head to a site using the traditional web and that site has a peer-to-peer version you will see a button in the address bar. Click it to get the Dat version and that is it! You are on the decentralized internet.
Beaker also makes it easy to create a site using the Dat protocol. These files store on your local device and given a unique address. You can share this with anyone so they can view your content. All they need to do is to paste the URL into Beaker as they would with a traditional link.
The files are only accessible when the device in on but there are options around this if you don't run a server. One is hashbase.io, where you get a free subdomain as an "always live" version of your site. If I am not mistake any changes you make to the files on you computer will show up on Hashbase thanks to Dat's version control.
Some other cool features of the Beaker browser include live reloading, offline sync, and a new peer-to-peer web API. With live loading enabled for a webpage you will see every update to that site as it is published. This could work great for a social media site using the Dat protocol. Offline sync is straightforward and allows you to save a webpage for later without the need for an internet connection.
This will be great if you are worried about a page being taken offline that you need. The web api, this makes it easy for developers to create sites and applications that work on the Dat protocol. Easier the better! Since this is still new, making it easy for developers to create in this peer-to-peer network is critical.
This is the stuff that gets me excited for the future of the internet. Aside from paying bills I can almost use a decentralized web today. All I have to do is quit using the big players like Twitter and I'm there. I already avoid Facebook and spend an equal amount of time on Mastodon as Twitter. Get out there and get nerdy! It is up to us to make sure the internet moves in our favor.
Ways to support the blog.
If you are an email kind of nerd you can sign up for mine here.
You can donate to this site from my Liberapay account if you so choose. If you want a more passive way to support this site, use this link when shopping on Amazon; it kicks some of Amazon's profit to me at no extra cost to you.