Decentralizing the web with Beaker
changelog.com
changelog.com
- This week we managed to get a performance bump by moving the dat stack into its own process: https://www.youtube.com/watch?v=A1lVBr5BchE&feature=youtu.be
- We're working on identity and user-filesystem tooling, discussed here: https://twitter.com/pfrazee/status/1058830217798660096
- We're replacing our discovery network with a new DHT that handles hole-punching, and that's going to be exposed in a user-to-user messaging called PeerSockets https://github.com/beakerbrowser/beaker-core/pull/6 This is one of Maf's top two priorities right now. His other priority is a new version of the dat data-structure that will improve performance and lay the groundwork for multiple writers in a dat.
I've played with IPFS and ZeroNet (my web page is available on those networks too), but never with Dat.
From a user perspective, Dat (and ZeroNet) maps to folders and filesystems much more coherently than IPFS does. I evaluated a few systems for a single use case in this Twitter thread: https://twitter.com/vitor_io/status/1019271473771569153
How so? Once you have the hash of a folder in IPFS you can access its files and subfolders using the classic slash notation.
Take for example my web page at /ipns/pablo.rauzy.name, the structure under that folder is exactly the same as it is on the classical web version of my web page, and is accessed in the same way.
Your web page points to different hashes over time through IPNS, which is additional work for a user, and relies on IPNS instead of being part of IPFS directly.
To me as a user, IPNS additional work isn't much more than sitePublish and then siteSign in ZeroNet. The first is equivalent to ipfs add, the second to ipfs name publish.
(I've been wanting to ask this in person, but so far we haven't met, and I suppose other readers might think of this question too)
I see mobile as primarily a communication platform, while desktop is for productivity. So, I think we should approach them differently. It's true that mobile growth is up, but I don't think that means that desktop is dying. Desktop still has a strong user base. At this point, I almost feel like desktop is the most neglected. We'll get to mobile when the time is right.
AFAICT, You can't use the platform without authenticating to the centralized servers of blockstack. That runs against the whole idea of decentralized. With Beaker/IPFS/ZeroNet, you just need the software.
It's been a while but last I checked, you had to register a domain (with $$$) to blockstack in order to run an app. Has this changed? Can I download the software and make my own X-Net with Blockstack now? (Not being snarky, I'd love to.)
Nope, this is not true. You can authenticate to an application without a Blockstack Core node; the only thing the Blockstack Core node does in the authentication flow is to pull up someone else's public key and storage routes. You can choose which node to use for this; both the blockstack.js library and authenticator give you the option. I use my locally-running node, for example.
> It's been a while but last I checked, you had to register a domain (with $$$) to blockstack in order to run an app.
On-chain names are not free, but only because they require Bitcoin transaction fees (and shorter names require an additional Bitcoin "burn" to dissuade squatters). If you send two properly-formatted Bitcoin transactions, then all Blockstack Core nodes everywhere will process them once they confirm and register your name to your public key.
Off-chain names can be given out for free, and do not require the user to wait for any transaction confirmations before using them to authenticate (this is what the product offers now by default). Off-chain names are first-class names like on-chain names, and have the same safety properties (they have slightly different liveness properties though -- details here: https://docs.blockstack.org/core/naming/subdomains.html).
Today, if you register a Blockstack ID via Blockstack's authenticator product's onboarding flow, it will be an off-chain name that ends in `.id.blockstack`. Your signed state for this name, as well as other names registered at around the same time, will be hashed and anchored to an on-chain "name update" transaction for the "id.blockstack" name and replicated to all Blockstack nodes once the transaction confirms. Until it confirms, other nodes will redirect lookup requests on it to the registrar for id.blockstack (but once it confirms, any node will be able to handle lookups).
> Can I download the software and make my own X-Net with Blockstack now?
You can absolutely do this! Happy to help you out on our forum at forum.blockstack.org.
ZeroNet has supported movie-sized files and up with it's BigFiles plugin since early this year. It's effectively done torrent style, downloading chunks from multiple peers, but working over TCP, with optional Tor support built in.
> Yeah, so Mathias was working on that, while I was in the Secure Scuttlebut community… And then at one point I decided – well, Electron got to the point where I was like, you know what, _I think it’s actually possible to make a browser off of Electron_.
What a day we live in, making a browser with browser-code. Who knew?