For some applications, it seems plausible that mesh networking and cooperative routing could potentially replace centralized communications infrastructure. It's probably OK if an email takes half an hour or more to wind its way through intermittently connected machines to get to a recipient, and for things like maps and restaurant menus you can take advantage of physical locality.
Most of the time, though, the decentralized approach means information propagates slower, less reliably, and with greater need for redundancy (and thus overhead), so anything that's already challenging current infrastructure, like livestreaming video, is right off the table. And then there's the part where if you aren't living in an urban center there may well not be any other machines for miles to mesh with.
I'm also doubtful about the assertion that mobile devices are up to the task of "machine learning". Cell phones have severely limited power and thermal dissipation capacity. The tensor units that have started to show up on mobile devices are exclusively designed to _evaluate_ pre-trained networks; training is far more expensive and practical today only because of the economies of scale in a datacenter: train once, run many times. But to train fancy NNs, you need big heaps of data, too, and not always the sort of data you can source in an... entirely above-board manner.
Perhaps the answer is simply that some of these things aren't done anymore, or at least not for free?
For a wireless mesh... yeah, probably. But if you relax the requirements to include things like small home servers (still using the internet), things that challenge centralized infrastructure can be very doable.
With good network connectivity, there are things that decentralized services already do better than centralized ones. Distributing files to a large group of people is much easier with BitTorrent than hosting the files directly would be; the bandwidth requirements are themselves less centralized in a peer-to-peer system.
Here's a reasonable place to start: https://gopher.floodgap.com/gopher/gw?gopher%3A%2F%2Fgopher....
There is a very early iOS beta available, and Android is coming within the month. We've thought a lot about battery and data and have gotten really good results by leveraging existing radio wakeups, batching requests, and doing all sorts of optimizations to the sites themselves.
Right now we're focused entirely on personal websites, because we believe the majority of those can actually easily be hosted on a phone (eg. How many people actually view your LinkedIn page every day? A single Facebook page doesn't require a datacenter. Etc).
We're limited to single static pages with images right now but better support for multiple pages and server code with SQLite is coming. More template types, for example stores, are coming as well.
Let us know what you think!
1. Most of the icons and images are really low-res. You should include @2x, @3x assets or just have higher res images and let them downscale on older devices.
2. A lot of the "Latest Active Sites" won't load, and the spinner just spins forever. I know the whole point is that it's a site hosted on someone's phone and may or may not be available, but there definitely needs to be a more graceful way to fail. The spinner blocks the UI and doesn't go away.
I know it's isn't part of the core service you're trying to offer, but seeing blurry buttons and having the app get into a broken state after clicking some links is not a good first impression. There's a lot of signalling involved in the first 30 seconds or so when a user (like me) is trying to decide if they want to invest time and brainpower into exploring your service, and it's worth smoothing those things out.
I think you accidentally a word. Love the project though.
That said, I think the wireless routers that a lot of us have in our homes could play an important role in this kind of decentralized Internet. They'd need to have more computing power than many wireless routers do, but that's OK because they're already plugged into the wall all the time.
The problem is from a reliability standpoint running stuff at home can be not great. Home network quality / reliability is not going to be datacenter quality, you’re going to have to deal with this thing running all the time & power costs, and you’re probably going to have to be tech-inclined enough to admin these apps at some point. These things have real costs, I think there’s a place for an honest discussion about what things cost for sure, but I don’t think people are getting fleeced on apps in the cloud by and large
It seems like at this point we're describing "running a server at your house." I've been playing with this with a Raspberry Pi for a Plex server (could have gone cloud but why not just tape a Pi to the wall next to my router?), I think the idea has a lot of merit.
There are the bits you need public. your anaphylaxis status. your advanced health directive with 'do not rescucitate' and your organ donation status.
There are the bits you need semi public. You need a trained health professional in sexual health to know you have chlamydia, but its not relevant to a physio doing upper body work.
There are the bits you need private. your mental health status adversely affects your employer insurance, and your employment. You do not wish this revealed randomly.
Some health models empower some health professionals with magic override keys to see almost all of it.
Some models empower statisticians to see all of it in 100 years after your death.
Some models you carry it in a smart card. Some models you carry keys, and its in a central DB.
This statement makes no sense in 99% of the countries in the world.
If you are working for a trans national in a developing or emerging economy you will have these benefits.
So sure, normal health internationally is not the us model. This is packaged perks
What would really make a difference (to me at least) would be a libre phone/OS. Yes, I know these are available but I can't afford them. What we need is a freedom-minded philanthropist to step in and Save The World. Once we have a more private phone then surely privacy-designed systems could flourish, as the author describes. If that happened I'd be there like a bear!
Meanwhile Twitter could spend money like crazy for years on end because their goal was cornering the market. They can afford to operate at a loss of millions per year, whereas John Q Developer can spend a few hours a week in his free time. It's a very lopsided situation.
If decentralized money can finally find some traction, maybe so can other kinds of networks. Maybe the financial incentives are a part of the context that could change.
Who is "many of us" really? If this is supposed to be a promising new avenue for decentralising the internet it seems a little premature... I feel like there are too many wide eyed rich people with $1k phones living in a bubble sometimes - the vast majority of the world cannot afford the expensive toys you take for granted.
> honestly, does anyone use their “phone” primarily as a voice communication device anymore?
Most of the world... (The internet does exist outside san francisco, but hey you can decentralise _your_ internet I guess)
It was 180 Euros, comes with a 1.4Ghz ocatcore, 3GB ram, 32GB storage (+ option for 128 GB SSD) and a decent GPU. This is a cheap phone that can run beautiful 3D games surprisingly well.
(I honestly don't know why I would need anything more powerful, only the somewhat weak camera is a drawback)
Most applications are not high res video editing, they are note taking, todo/task management, document editing, small group chats, ...
A lot of those could be implemented via local compute and federation perfectly well, with the help of some cloud storage and online instances for easy sharing/coordination/discovery. Especially if implemented in memory and CPU efficient (and therefore battery preserving) languages like Rust/C++.
We would just need to change our approach to application design and implementation.
But I appreciate the feedback. I think you're right that I'm being a bit optimistic here, but the whole vision is a work in progress.
I'm also not sure that current smartphones are actually what you would want to use for such a vision. They're convenient because lots of people have them, but they're not purpose-built for the kind of work that I'm discussing here.
Yes, SF was just a euphemism for "rich people city", oh great now you made me say it!
> I'm also not sure that current smartphones are actually what you would want to use for such a vision. They're convenient because lots of people have them, but they're not purpose-built for the kind of work that I'm discussing here.
Smartphone technology has already created lots of nice side-effects like the super cheap single board computer craze... I honestly think this is currently the closest device that is of a practical cost and performance for almost "everyone" as a personal server.
But the main issue with all these decentralised ideas is not really if your personal server is fast enough, but whether it has enough pipe (this is still a problem even in a mesh network). Dare something be slightly popular (especially video), your personal pipe will never be large enough, this is where centralisation rules unless P2P serving technology is pushed more (there are already some nice working examples out there for video and even entire static sites).
Over half of China has a smartphone. Venezuela, the country where it's hard to buy bread, has 40% smartphone penetration.
Also the world is bigger than America + China.
Many, maybe most people have smartphones.
The most expensive of those have these stats.
Right next to each other, in the same paragraph... are you really arguing it is not implied that high specs are intended to be relevant to the authors argument? If so what is the purpose of this sentence?
I don't know how on Earth you can't parse this simple paragraph.
In other words, the fact that not everyone has this tech yet is an even better reason to start building now.
But more importantly we know that complex services break once in a while. If such services run on entirely on your personal device then the complexity of your device goes up exponentially. That’s not good. We learned in the 90’s that a better model is to centralize complexity, and make end devices as simple as possible. (Look up Larry Ellison’s 90’s speeches about Network Computing.) So, no, moving the center of computing to personal devices is not a good idea!
Every now and then I see a suggestion we should move towards federated services and mesh networks because it would give people more control and freedom, but the cost of that is complexity. It's like the classic reply on HN when Dropbox was announced, along the lines of why would anyone ever want this when they can 'just' run rsync against an SVN repository?
Any solution that expects average users to become sysadmins is DOA. It was true when people were pushing for it in the 90s and it's still true now.
What types of problems do you have in mind?
> But more importantly we know that complex services break once in a while. If such services run on entirely on your personal device then the complexity of your device goes up exponentially.
The idea is that a lot of problems aren't so complex once delegated to participants of the network.
> We learned in the 90’s that a better model is to centralize complexity, and make end devices as simple as possible. (Look up Larry Ellison’s 90’s speeches about Network Computing.) So, no, moving the center of computing to personal devices is not a good idea!
By "we learned in the 90s" you mean that a company with an obvious commercial interest in the idea tried to push it and largely failed because it was based on assumptions that were practically Jurassic within a few years ("you don't need a powerful machine to support the use of common network services" and "thin clients can be much cheaper than general purpose computers"). We have our multi-core gigs-of-RAM phones and multi-core gigs-of-RAM Chromebooks now that may superficially qualify for implementing the idea of a "network computer" or even "thin clients" by dubious standards, but are actually just powerful devices that are locked down to proprietary third party services for reasons that have no real advantage to the consumer; "fat" clients.
Other things we learned in the 90s: JNCO jeans are cool.
Search comes to mind. Traffic information systems are going to become more important. Also, everything related to fighting fraud, spam, etc.
It's definitely a value add for Apple users and something Tim Cook relishes throwing in Zuckerberg's face.
Other companies don't seem to care so much. I think a good compromise is having more data in the cloud that can only be decrypted by the user.
At this point I'm down to a minimum of apps from the yalP store (Firefox, Whatsapp, Signal, Wire, VLC), with everything else on F-Droid.
AndOSM is more than good enough for me; either it's right there within a search, or I find a website with an address, and add what was missing at my earliest convenience. It's not perfect, but data seems to be added faster than the world changes, suggesting Google will have to innovate or lose their lead in accuracy/completeness.
I have certainly noticed that USB charging ports have become commonplace in the past few years. Maybe it could become equally common to see wireless charging pads ubiquitously in public spaces? They aren't as energy-efficient as a wired charging solution, but you don't need to remember to bring a cable, and they can be neatly hidden in various kinds of furniture. The hardware isn't inherently that expensive, especially if it is standardized.
Portable "repeater" units with storage, compute, and larger (swappable?) batteries than fit in a phone might be another alternative. It could fit the same kind of use case that cellular tethers for laptops do today, except with a different purpose. Downside here is needing to bring an extra device with you for long excursions.
Imagine if we had an OS that solved the usability problems of IPFS and made it immensely easy to publish content on ones own named segment of an IPFS network - instead of having things like Dropbox glom themselves around a paltry excuse for file-sharing system services that exist in most modern OS's today?
Wouldn't it be grand if someone write an email client - yes, EMAIL - that integrated with a smart contact system, allowing one to run and operate ones own social network without requiring any further infrastructure beyond local, private email services. Everything I do on Facebook, I was once able to do just as easily on Email - the interface is the only difference. I want social networking back under my control again, and a return to email, wrapped in a better local tool for providing the services, is the way to do it.
I also want to be able to turn myself off the Internet - having the ability to turn my phone off and be unavailable to the Internet at large - not just as a consumer, but also as a provider of information - should be a basic, inarguable right.
If the OS vendors weren't chasing the cloud bucks, this would be a reality.
I believe an opportunity for a smart team exists: build a Linux distribution which incorporates a few basic ideological rules:
* The user owns their data
* The user controls their data
* No new services or protocols are needed to provide better services: Use OSI properly or GTFO
* The UI is the final frontier for freedom
* If the user wants to fully disappear: OFF SWITCH
* If the user wants to engage in public discourse: ON SWITCH
* De-centralize all the things, bring control back to the local user always
As the years go by, I feel more and more inclined to start a test-bed Linux distro which uses these rules to build out a user-controlled OS designed for widespread content distribution on the basis of such things as IPFS, albeit with a much, much better UI for maintaining ones assets than currently exists. If anyone else is interested in such an experiment, I am all ears ..
If you serve your website from IPFS, the first visitor will get the full copy and start serving it. You can toggle your switch as much as you want, this won't have any effect.
It's funny that Facebook is much better at giving control to user than email. At least in Facebook, you can delete post. And once you send email, there is no way to retract it.
This is hitting straight into data ownership question. As a sender, I might want the ability to retract a message I sent. As a receiver, however, I do not want the sender to have that ability. Once a message reaches my inbox, I want to own it.
I'm strongly on the receiver side on this one. This is how it works in meatspace - once you send a message, you can't unsend it; it belongs to the transport layer and then to the receiver.
Facebook/Email: and again - this is a UI problem, not a transport one. If I send a mail saying 'delete the last message I just sent', the UI can do that for me. Its a UI feature, not a bug.
But before we are entirely reliant on mobile, we may be able to do a lot of it on our home computers over the regular internet using decentralized protocols.
But back to mobile, does anyone know of any open decentralized identity solutions that will run on a smartphone?
> There is the potential today to reclaim control of our digital lives from monopolist platforms and unnecessary rent-seeking. There is a world within reach where always-on, always-connected pocket computers become personal data stores. All your photos, documents, messages, and other data live with you, not on a faceless server belonging to a random corporation. The only machine learning done is done for you. Data only leaves your device because you want to send it somewhere.
> Our data will stay on our mobile computers and be backed up (encrypted of course) in the cloud
If one's phone is stolen or destroyed, how does one restore from the cloud backup? What prevents me from buying a 2nd phone and attempting to "restore" it from my friend's backup? Do I just have to guess his password? I'm imagining something like Apple's iCloud backups but that service involves a lot of details that need to be right to ensure its security. That costs money, which means users either have to pay in cash or by having their data mined (or both).
I predict that the most popular backup service in this hypothetical world would be a free service that leaves user data unencrypted and sells it to 3rd parties.
> We will carry with us the fundamental representation of our identity, backed and verified by advanced encryption, instead of cumbersome passwords or logins associated with the same large platforms that control our social lives
That's great until the battery dies or there's a hardware failure or the phone is lost or stolen. Then you have to restore from a backup and that means verifying your identity in some other manner. At some point, identity reduces to a combination of: 1. A password or secret. (Something you know.) 2. A token issued by some trusted entity declaring you are who you claim to be. (Something you have.) 3. A biometric. (Something you are.) Assuming your phone is dead, only option 1 can be used without a 3rd party storing identifying information about you.
> Sharing of data, either broadly with a large group or directly person to person, will happen directly between mobile computers, skipping the intermediaries like Facebook or Twitter we’re used to today
People's phones aren't always online at the same time. Sometimes they're in a tunnel or on a plane or away from civilization. Given that constraint, who is storing and transmitting the data between the two people? Who runs the service that lets phones say, "I'm Bob's phone. I want to talk to Alice's phone. What is her IP? Oh she's offline? OK send her this data when she's back." Are they compensated for doing so? If not, why would they run such a service?
> Artificial assistance will be local first – for example, searches for the best nearby coffee shop will turn to the nearby network for responses before asking the entire planet
I seriously doubt the local network would give better recommendations and results than Yelp or Google Maps, as both entities would sync the local info to their own databases and run their own algorithms on the data. Their results would be a superset of the local data with better algorithms. Who curates the local network's results for spam or fake reviews? Why would they have an incentive to do so?
> Machine learning will provide personalized intelligent assistance that runs on your own mobile computer
I don't think that could work. The latest phones have hardware to run ML algorithms efficiently, but they don't have the hardware to train them. That requires TPUs and a lot of power. Also you need large data sets to train models. That means aggregating lots of people's data.
Most people either don't understand or don't care about the implications of Facebook/Google/Amazon slurping up information about them. If anything, people prefer it because they get a better experience. Their news feed has more interesting content. Their Amazon recommendations more closely match what they want. Their search results are more relevant. For these people, the current situation is a win-win.
I'm not against this idea, I just don't think it has a chance of working. For something new to succeed, it needs to be more compelling than existing products. More importantly, it needs to offer advantages that existing products can't copy. If at the end of the day you build something that's slightly less convenient to use than Facebook, it doesn't matter how privacy-centric it is. You'll only attract a few idealists.
I'd use a mobile-sized computer with no radios, just ethernet, USB (for a keyboard) and HDMI (monitor).
Putting both in one package? just asking for troubles.
sounds exactly like Raspberry PI? (or any of the 100's of other cheap SBCs)
We have centralized services for a lot of reasons, but one of them is that they're more reliable than decentralized systems. Phones get lost, stolen, drowned, and crushed. People drive through tunnels or into mountains without cell signal. Batteries die.
It seems patently absurd to think that a P2P network of handsets is somehow going to replace The Datacenter, on any timescale.
If the cloud is just a supplementary resource where you back up or distribute opaque, encrypted files, or crunch an occasional workload, for a moderate fee, you could have your reliability without the lockin. I think mesh networking might be nice for a handful of applications, but it isn't even the core of the issue here: it's about whether your computers are glorified dumb terminals for someone else's computer, or whether your computers are machines that can function as islands when they need to.
That said, your personal communication will be stored on the servers encrypted if you use encrypted chat like Whatsapp or Telegram.
I am not sure why you had to use cloud server when sending files over LAN. I've uploaded videos directly to iOS over ftp server, and Android has tons of apps to sync data back and forth, all locally.
I am not sure why your TODO list needs a central server -- Simplenote does not require login, and it totally happy to keep everything locally. There are integrated note apps as well.
So to summarize: everything is there already. But people prefer to choose a simple solution and use cloud-based service, instead of doing a little bit of work and creating "machines which can function as islands"
That's the experience we have right now, with centralized servers. With a P2P system the experience is: My sister sees that I uploaded a new picture, tries to click on it, and gets some opaque timeout error because unbeknownst to her I drove into a tunnel. Depending on whether or not my phone is destroyed in an accident before I emerge, she may never see the picture.
Unreliable distributed systems look intermittently and unpredictably broken to users.
Google said in 2011 that a single Google search uses about 0.3Wh of power. A typical mobile phone battery has a capacity of about 12Wh. Peer-to-peer systems are almost always less efficient than client-server systems, often by a large factor. You do the math as to whether a peer-to-peer internet based on mobile phones is even remotely viable.
Isn't this an argument for more locally hosted services?
Have you noticed that each and every piece of the web has its antiparticle?
The original web was the browser with links and simple graphical presentation, some server scripts and SQL databases. Then we've had single page applications in which links lead nowhere, nosql, serverless. This is like extreme serverless or webless.
If you can think of another basic web element, you can invent some new anti-paradigm that will be loved, hated and discussed endlessly over here.
In practice who knows what kind of communication patterns you would get. Applications would probably evolve around the long distance limit if it existed, but it's hard to imagine not having backbone links. Most likely the meshes would stay relatively localized (and I believe there exist a number of regional wireless mesh networks out there serving real customers).
900MHz in US is 902-928 MHz, 26 MHz wide channel. The usual SNR ratio range is 0-40 dB. This corresponds to total bandwith over entire band of 26 to 172 Mbit/sec -- depending on the range. Let's be generous and say 100 Mbit/sec.
You are not going to get any sort of beanforming from the mobile pocket-held device, so your collision domain is going to be everyone around you. Say you are in the park, and there are 24 people around you, and you are all routing packets for each other, so each packet is transmitted twice before leaving the collision domain. In this case, single person's ideal, best case bandwith is 2 Mbit/sec.
In practice, you are not going to get anywhere close to 100% efficiency, so I'd expect internet speeds significantly less that 1 Mbit/sec. This is going to be very painful.