- cross-posted to:
- technology@lemmy.world
- cross-posted to:
- technology@lemmy.world
We estimate that by 2025, Signal will require approximately $50 million dollars a year to operate—and this is very lean compared to other popular messaging apps that don’t respect your privacy.
Sure, but you also just… don’t have to do that. None of that is necessary fore core functionality of a messaging service, IF you stipulate that both devices must be online at the same time to ping each other.
The only thing you need is some very basic addressing service so they can find each other, and there are entirely P2P solutions for this that already exist and work without issue. See: bittorrent.
The ONLY drawback of having no server, fundamentally, is that the two devices need synchronicity. If they both aren’t online at once, messages won’t get delivered. Which is not a big deal for a modern smartphone given that most of them are online close to all of the time.
I’m not really going to get into the technical aspect since I feel neither of us know enough to tell how feasible it is (although I think you’re wrong since you do need trackers in order to find at least one other member of the swarm), but this part
I just a horrible take. You can’t base your business model on “modern phones being online close to all of the time”. You can’t have random data loss whenever someone goes out of service area, has to turn on airplane mode, runs out of battery, has a software error or just an update or some other kind of temporary downtime? That’s not how you design any software, less alone a dependable messaging service. You can’t just “stipulate that”.
What business model? Why does a messaging app need to be a business? And again, how is someone who doesn’t have service supposed to be receiving/sending messages? Makes no damn sense.
Basically all bittorrent programs include allowing a peer to act as a tracker directly.
Nothing gets lost. Not having every packet get delivered is already entirely normal on any internet application, and already solved.
Solving that “problem” is as simple as sending an acknowledgement back when a message is received, and retrying when acknowledgement isn’t received. Routing P2P is more (but not very) complicated than that is.