Three protocols and a future of the decentralized internet
blog.datproject.org
blog.datproject.org
I’ll use SSB as an example. If you install the software and make an identity, you’ll soon find that you have to sign up with something called a “pub server” to actually get any of your friend’s updates.
Where do you find such a pub server? There’s a wiki: https://github.com/ssbc/ssb-server/wiki/Pub-Servers. The author of the wiki has found that it is necessary to admonish people not to just pick the first pub server on the list, since there isn’t really any criteria by which to choose them. If there was a sudden influx of more than a few hundred new users, it would cause utter chaos on this list. Someone would need to spend a lot of money on hosting, with no way to earn revenue.
The policing costs less so. Hygiene matters.
What I do for my home PC (that’s for ipv4, but it doesn’t matter) is I map my current external IP in Google Cloud DNS every 15 minutes with a TTL of 0.
Of course I only make the change if needed, so I am easily below the paid threshold, too.
In a properly p2p system the idea of certain servers being offline for short amounts of time is considered a norm.
So should be OK either way.
By the time it becomes an issue, you’d already have more issues like the need of more bandwidth which would make you switch providers anyway.
If it's anything like email, you would use the server your employer or organization you belong to created an account on for you to use.
I actually found out about manyverse last year when it was trending front page on hacker news and I'm glad I looked into it.
He is being humble by not bringing up is app here despite it being a beautiful one that feels seemless, and being extremely responsive to his users (you can even submit issues to gitlab via by clicking a button in app) but listening to his podcasts on solarpunk, and in general, he seems like a humble guy so I'm not surprised. I am very interested to see how the features manyverse plans to roll out help push the user friendly aspects needed is the SB protocol space.
I'm not sure this is a real problem. Email is federated, scales to approximately everyone, and there is no shortage of email providers that all interoperate with each other.
How to fund it when no one you know wants to operate it personally is also no great mystery. Either the server provider puts ads on it, or the users pay for the service. And the individual users can decide which of the various options they prefer but can still interact with everybody who makes a different choice.
The Althea wireless mesh is doing this -- you "load" your router with a certain amount of credit, and it tries to get you the lowest-cost transport. People running nodes have incentive to optimize their antenna placement and signal, so they can carry more traffic and get paid for it.
I don't know if this directly applies to SSB since there's really nothing to "run", other than pubs which we've already established are only a stopgap solution anyway. Simply participating in the network (leaving your client running) is what provides the real "infrastructure", such as it is.
Right now, without pub servers you can:
1. find friends in your immediate vicinity over WiFi/Bluetooth/etc.-type nearby protocols.
2. if you have a friend (see #1), you can connect to friends-of-friends
(#1 may seem extremely limiting at first, but it's actually only limiting for a technology which is not popular in your local area—network effect problems—so "in theory" it's not really so bad when you think about it. I've probably added a good portion of my FB friends in their presence)
However, one of the main alternatives being actively worked on is DHT invites. This is basically the "torrent magnet link" equivalent for SSB. See various links to work on this below:
[0] https://gitlab.com/staltz/ssb-dht-invite
[1] https://gitlab.com/staltz/manyverse/issues/186
[2] https://github.com/ssbc/patchwork/pull/862
[3] %r6dTZ4WG7kuLFfGlUR1DAhyat7YEuX682mGI9UJXlc4=.sha256
(There's definitely a parallel here with the AOL and CompuServes of the world vs the open web, but not quite)
- It almost feels like that for a variety of decentralized protocols to take root, someone will have to build a browser-equivalent (or perhaps an extension to an existing one) that allows the normal user to partake of these new systems in one place. That means, a chrome or firefox style system that supports IPFS, but also offers tools for ActivityPub and SSB and whatnot - in the same way netscape navigator used to be bundled with a news reader, a web browser and an email client.
- The next challenge is to get the average user to use this on the mobile and then the desktop. That's a problem best solved by modeling this as an app - and there needs to be a reason for the average user to use this. The words "killer app" come to mind, but honestly, even if there was something slightly more useful that current services provide that built on top of this - it would be helpful. I'd download this new "chrome" on my phone and use it. Is there something out there that people think can be that?
- Lastly, we'll need to democratize information and app creation for this browser.
"someone will have to build a browser-equivalent"
we do have a browser that has a somewhat user friendly onboarding process: https://browser.blockstack.org/
If it is your first time, you will be asked to create an identity on Blockstack: https://docs.blockstack.org/core/naming/introduction.html
Each instance of the "browser" whether on desktop or phone, requires a unique password, associated with the id. The id is stored on the Blockchain, the data is stored in your own gaia hub which you can host wherever you like: https://docs.blockstack.org/storage/overview.html
"That's a problem best solved by modeling this as an app - and there needs to be a reason for the average user to use this"
The next browser release will have a landing page that features apps dynamically populated from https://app.co/ and will have a more user friendly onboarding process, one that explains in more detail that each instance of the browser (we have a desktop version, each login in a new browser, etc) requires its' own password.
I think my favorite app using our protocol is https://debutapp.social/ because it is the "facebook" or twitter like equivalent people can associate with to see there is a relevant use to this, and in general user end interaction with the platform can be seemless with integration of decentralised protocols when done correctly.
The founder/creator of this app is a self taught software developer who does this in his spare time outside of a full time job so if you have feedback make it constructive and feed it back to him on the help page.
Same as other protocols, we are working to make our nodes easily hostable. If you know docker at this point or how to launch a vm in digital ocean you are probably good, but we are working to automated images and one click deploys. You will see more rollouts with much less instructions and much more "one click deploy" based in the near future.
We are actually prioritising our gaia hubs being easily hosted with one click deploys by the average user over the nodes, because in our model gaia is where the user's data is stored, and the decentralized aspects of the protocol are related to identity, and authing that identity with a users data, that apps can read/write to, but the user ultimately has the ability to store that data where they want, revoke access to apps, whitelist apps, migrate the data, etc.
You can read more about blockstack, gaia (our user storage) and the rest of the platform here: https://docs.blockstack.org/
Given your very developed opinion on what the decentralised internet needs, and how it seems very aligned with what we are developing, would love to hear your feedback/initial impressions of our platform and app ecosystem.
Happy to give feedback directly on DebutApp, but my initial impressions of it when I tried were - it's a good proof of concept, but its a very early incarnation and so definitely rough on the edges on both product and engineering. It's commendable that this is a side project, since it shows promise.
One of my main questions with a lot of blockstack apps is exactly that - while they prove that something can be done, it's unclear to me how the next person who is going to google for "new blog" and try to pick one of squarespace, medium, or blogger - will use debutapp.
I'm curious about the host-able node comment. Who is this one click deploy targeted at? and what is the incentive for folks to do it today?
Also, any insights on why there's a general sense of lag on the ajax calls that these apps make?
[1] https://explorer.blockstack.org/name/viksit.id
[2] https://explorer.blockstack.org/address/1LMxzW9LbL6HZEo3qeLb...
usernames expire after two years, so that could be it depending on when in 2017 you registered your username.
"One of my main questions with a lot of blockstack apps is exactly that - while they prove that something can be done, it's unclear to me how the next person who is going to google for "new blog" and try to pick one of squarespace, medium, or blogger - will use debutapp."
I think apps built with Blockstack like graphite and others: https://www.graphitedocs.com/ are gaining alot of popularity on the "normal" internet and getting recognition in places like producthunt, hackernoon etc: https://hackernoon.com/is-dweb-taking-off-a-glimpse-into-blo... , https://www.producthunt.com/posts/graphite etc etc
For now we are trying to point people to https://app.co/ to show the entire dapp ecosystem, not just blockstack based applications, but you can filter by protocol.
The next browser release will have blockstack apps from app.co dynamically loaded into the browser landing page as we know its a bit outdated based on the apps available now.
but yes there is alot more we can do, and alot of general awareness people can have on the internet. The idea is that applications like
blockusign: https://blockusign.co/signup.html
afari: https://www.afari.io/
graphite: https://www.graphitedocs.com/
sigle: https://www.sigle.io/
stealthy: https://www.stealthy.im/
travelstack: https://www.travelstack.club/
xor: https://xordrive.io/
diffuse: https://diffuse.sh/
dpages: https://dpage.io/editor/
(secret fave: https://blkbreakout.herokuapp.com/)
blockvault: https://blockvault.site/
and others listed on app.co, are also searchable on the mainstream internet, and advertised not as exclusively apart of the "new internet" but advertised based on the user value they provide that many centralised apps do as well.
"I'm curious about the host-able node comment. Who is this one click deploy targeted at? and what is the incentive for folks to do it today?" <-- in reponse to the top ranked comment on this blog about easily hostable infrastructure aka blockstack-core nodes and gaia hubs as well in our case. gaia hubs are where users store personal data (as opposed to ipfs thought gaia hubs can be technically support an ipfs driver/we have a req for this but have not prioritized it yet).
Making gaia hubs easy for users to host supports the idea that if they want to its not hosted by someone else/ a big cloud provider/another company etc, despite the api supporting they decide who has write access to their data/can delete if they want to, etc. It also allows them to host on their own server, or another cloud if they want to.
The incentive is mostly there in that already some applications are hosting gaia hubs for users and charging them for it, so there is an opportunity to make money.
In the future, we see companies dedicated to hosting gaia hubs for users and charging for it, not just applications, and you can see there are many parallel companies doing the same with IPFS type protocols like filecoin, golem computing for example (now lead by the previous founder of QubesOs, which says alot that she would leave her own operating system after a decade to focus on something like this). There is definitely money to be made in this space, I'm just a big believer in despite all of this, still making it easy for users to host their own on their own machine, a rasberry pi or something like Digital Ocean's one click deploy marketplace if they so choose to be wholly consistent with the idea that users can own their own data, manage the gaia hub themselves but not have to be an "anarchist sysadmin" skill level to do so. The incentive there right now is that Digital Ocean is also paying for 5months of one click deploy marketplace droplet hosting ($5/mo). That's something we are working on, but yes, there is definitely an economic incentive here..
The blockstack explorer actually went through some internal infrastuctural changes just this week. We are aware this is an issue and working on it. Will get back to you when you can expect faster response times for this. I would say end of not this coming week but next week, but will get back to your with more detail.
I have generally observed that some initial servers for a decentralized platform get more users over time and remain the largest, while later and/or smaller ones may not get attention, and could possibly even close down because of low usage.
See https://medium.com/@jimpjorps/a-non-computer-persons-guide-t...
Have I misunderstood how this works?
IIRC, you get a warning if you try to interact with someone who has moved.
I don't want no one to tell me what to do and to prevent that I've got to prevent people from having leverage with me.
See the "Nomadic Identity and Cloning" paragraph on the Hubzilla homepage [2]. See also "Nomadic identity, brought to you by Hubzilla," by Andrew Manning, on Medium [3].
[1] [2] https://hubzilla.org/
[3] https://medium.com/@tamanning/nomadic-identity-brought-to-yo...
Edit: Newline formatting.
The identity is stored on the strongest blockchain and can be linked to your gaia hub.
"initial servers for a decentralized platform get more users over time and remain the largest, while later and/or smaller ones may not get attention, and could possibly even close down because of low usage" while we host our own nodes, in general the nodes in our network are selected based on a random walk graph and bias away from having a few nodes.
It's still possible to host your own website & server, but not as easy as setting up a Facebook profile. Same goes for e.g. Mastodon: running your own server isn't as easy as creating your just an account.
How do projects like Mastodon not end up with a big server (or a few big ones) that everybody uses?
Edit: Not all of the protocols I mentioned use servers, some are P2P which don't have that issue, I think.
I find it interesting how people mention file stores (IPFS/DAT) a lot more than databases (SSB/GUN). Distributed file stores have been around for a long time, and are not inherently useful for creating Google/Facebook-etc. killers, where-as a P2P database is very needed.
Is it perhaps because everyone already knows about BitTorrent, and there is BitTorrent nostalgia?
At Blockstack, the name persists via the blockchain, which can be slow, but is only an initial barrier on identity creation. After that, you own your own data via gaia hub, which can be stored wherever you like, for example behind an LB with fast i/o on Digital Ocean. You just run docker-compose up on our master on an image of choice on digital ocean for example: https://docs.blockstack.org/storage/overview.html
We are looking to automate deployments for user friendly rollouts but I strongly recommend checking out gaia. Gaia is not dependent on the blockchain, and can still be persisted or duplicated via networks like IPFS is someone so chose to. We have an IPFS driver request in and are looking to get to it with some eng cycles.
1) Transition of trust-translucent internet native centralized systems (social networks, file hosting services, instant messaging services) to decentralized systems using protocols like Dat, SSB, ActivityPub, IPFS, etc.
2) Onboarding of trust-opaque internet non-native centralized systems (legal tender, corporate law, legal citizenship) to digital decentralized systems using Bitcoin-born protocols like Ethereum, Polkadot, Cosmos, etc.