this post was submitted on 01 Aug 2023
33 points (73.9% liked)

Privacy

31876 readers
590 users here now

A place to discuss privacy and freedom in the digital world.

Privacy has become a very important issue in modern society, with companies and governments constantly abusing their power, more and more people are waking up to the importance of digital privacy.

In this community everyone is welcome to post links and discuss topics related to privacy.

Some Rules

Related communities

Chat rooms

much thanks to @gary_host_laptop for the logo design :)

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 4 points 1 year ago* (last edited 1 year ago) (7 children)

Hey everyone, I'm the dev. I've got a couple of points I'm looking for feedback on.

  1. Is the system being conveyed clearly? I.e. are you able to understand the functionality on offer? It's a complicated stack, but also very simple once understood. If not, what are you confused about?

  2. What sort of DWAs would you be interested in using? At the moment there is a mostly functional text messaging app that will be stable in the coming days. I'll be adding file transfers and video/audio calls there soon as well. I'm thinking about doing a private social network next, or maybe a streaming service that requires no infrastructure. Let me know if you have any input or requests!

[–] [email protected] 6 points 1 year ago (1 children)

I have a couple of questions:

  1. Could you not use animated graphics?
  2. If this is completely p2p, does it work for people behind a NAT or without IPv4 or IPv6, respectively?
  3. How does asynchronous communication work? Consider the following: My phone is offline, I send a message. Later I connect to the internet, but the recipient is offline. I go offline again, then the recipient comes online. With traditional messaging systems, this has always been working.
  4. Would DWAs that target a broader audience be possible? It seems to me like this is only good for instant messaging. Can I build a video hoster, a social media platform, a lemmy or mastodon alternative as a DWA? If so: How does that work?
[–] [email protected] 2 points 1 year ago (1 children)

Thanks for the great questions

  1. My sincere apologies, I intended to wrap all the animations in a prefers-reduced-motion media query and never remembered to get to it. That means they will not play if you have an OS or browser reduced motion setting activated. I will try to get that done tonight.

  2. I would not recommend running the DCNT server wide open on the public Internet, definitely yet, probably forever. It's fine on local networks you trust, say for a synchronized life planner/organizer DWA running within your home network, once that exists. I highly recommend running the server behind a VPN or something else, Cloudflare Tunnel would work if you trust them. If it's a VPN it will need to support either port-forwarding or have a public IP. NAT is no thing then. The users connecting will be able to get through without a public IP themselves, it's only a requirement from one side.

  3. Asynchronous messaging is possible in a few different ways, but it will require a host DCNT server that is always online, say a browser tab on a home PC running 24/7. Use a connected DWA to send a message to the host with the intended recipient address attached, and then once they become available by connecting to the host, the message gets delivered. That's the simplest way to accomplish it, I think. If you use this type of architecture, you could provide asynchronous messaging for XXX amount of users simultaneously, depending on the WebRTC connection limit in the host browser. DeCent Messenger does not provide this functionality by design, though I do intend for it to eventually allow you to queue messages for users who are presently offline within your own DWA UI.

  4. Yes, though how it gets tackled depends on what the broader audience is after. Private, direct, peer-to-peer stuff can be built today. For example, someone who likes using Facebook to connect with 20-30 friends, and doesn't care about the public functionality. An app could be built to serve them today. Everything gets downloaded from their peers for offline access, and the clients sync when both online. The same goes for smaller-scale, really, anything... Someone who might set up a PeerTube instance for their group of friends, this can be provided as a DWA today. The benefit over the existing tech is that instead of needing to install a separate program/server for each of these specialized apps (which is sometimes fairly technical), the user just opens DeCent-Core and pulls in a web app that provides the same experience, immediately. More public-facing sites like Lemmy, or Mastodon instances are possible too, but the question becomes how large of an audience can they serve on the basic, P2P, directly-connected infrastructure. A Lemmy clone with only 20 users might not be very fun to use. The short answer to whether DWAs can bridge the gap to larger audiences (traffic wise) or not is yes, but I can't exactly say how it will manifest at this point. DWAs allow web apps to implement, basically any sort of network topology possible, so there is a lot of room for evolution there. I'm very excited to see what people will build!

[–] [email protected] 2 points 1 year ago (1 children)

So this basically reans if you want to target a larger audience or the public, or have any kind of asynchronous messaging, the hosting cost isnt zero as you promise

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

Where are you thinking this operating cost is coming from?

There are types of applications that can not presently be built with DWAs, but that doesn't mean that will be the case for much longer. It's not due to a technical impossibility, rather a lack of existing libraries to make it easily done. No one has built it yet, that's all. I'll get there if someone else doesn't beat me to it.

Here is a diagram of how asynchronous messaging can work:

It will scale horizontally as high as the host browser will allow (in WebRTC connections), taking into account the host machine. If the connections are not persistent, and are rolling/transient, then one instance could probably serve thousands of users simultaneously.

You can use this topology to do a lot. You're not limited to just messaging, a Discord clone or anything group-oriented would be very simple this way, for example.

load more comments (5 replies)