• Retiring@lemmy.ml
    link
    fedilink
    English
    arrow-up
    30
    ·
    1 year ago

    I am not saying you are hiding the fact that this is an advertisement, but it would have been nice to give a short heads up. Something like: „look at the project I’m working on“. Also, if you want to get people excited about this, maybe remove the rusty meme from the name. Not everyone appreciates spinning weed gifs.

    • futurehood@lemmy.mlOP
      link
      fedilink
      arrow-up
      9
      arrow-down
      6
      ·
      1 year ago

      Hey, have a little respect plz, that’s a spinning weed SVG animated with 3D CSS transformations and a built-in light/dark color theme, something that anyone can appreciate!

  • Züri@lemmy.ml
    link
    fedilink
    arrow-up
    14
    ·
    1 year ago

    I came across numerous links leading to various GitHub repositories containing text.

    However, I didn’t find any source code at all.

    • futurehood@lemmy.mlOP
      link
      fedilink
      arrow-up
      8
      arrow-down
      2
      ·
      edit-2
      1 year ago

      @zurchpet the first link in the article (within the first sentence, actually) leads to the source code for DeCent Messenger (https://github.com/futurehood/DeCent-Messenger).

      The second and final link leads to the main project overview repository (https://github.com/futurehood/DeCent), from there you can find the DeCent-Core repo (not open-sourced yet) as well as another link to the DeCent Messenger repo and several others that contain code samples.

      Please keep in mind that there is a lot to the project, and I’m doing everything myself. If you have anything specific you’re looking for, I’d be happy to point the way!

      • Züri@lemmy.ml
        link
        fedilink
        arrow-up
        4
        ·
        1 year ago

        Thank you for providing the links and your clarification.

        I was looking for the cores code.

        I am interested in how this all works.

        I will read more in to it.

        • futurehood@lemmy.mlOP
          link
          fedilink
          arrow-up
          3
          arrow-down
          2
          ·
          1 year ago

          Sounds good, thanks for your patience, I know it’s not as dense as more complicated protocol documentation, but there is a lot there to read nonetheless, I appreciate you!

          I’m hoping to iterate on the explanation a few more times and make it as concise as possible. I’m planning on doing a video soon too.

          I will be open sourcing DeCent-Core shortly, probably sometime next week, after some cleanup and a bit of refactoring from the prototype codebase. I’ll make another post here when that happens.

  • Melody Fwygon@lemmy.one
    link
    fedilink
    English
    arrow-up
    10
    ·
    edit-2
    1 year ago

    You appear to have a solid idea as well as some potential proof of concept code which does not appear to have been uploaded to GitHub yet but you don’t appear to have posted anything usable yet for the end user.

    Are you seeking developers to get passionate about this or are you just trying to draw in future user eyeballs?

    Honestly; it isn’t clear, and there are already mature technologies that exist that is similar to what you seem to be proposing (see i2p, tor, freenet) which are only suffering from a lack of adoption due to their development being backend first and not being able to focus a lot on usability or glitzy UI.

    You look like you could have some good skills with graphical things; have you considered contributing your skills to an existing project?

    • futurehood@lemmy.mlOP
      link
      fedilink
      arrow-up
      5
      arrow-down
      4
      ·
      1 year ago

      Hello,

      The stack is live my friend! You can use it right now. Download DeCent-Core, install the Decent Messenger DWA from the Github link, and you can send P2P messages this very instant. Video/file transfers calls by next week. There is nothing hypothetical about it, it’s a usable prototype and it’s only getting more stable with each passing day. This is real, concrete, and usable now on Windows.

      Yes, I would like developers to start familiarizing themselves with DWAs as soon as possible. If we can get this off the ground, it would be a very good thing for humanity, the sooner the better.

      Web420 has very little in common with existing “alternative Internets”, so there is no point in trying to do this there. From the linked article:

      Web420 differs from existing decentralized networks, like Freenet, I2p, or Tor.

      These networks focus on building a global network of interconnected nodes which serve as an overlay to the Internet. The common emphasis of all of these projects is anonymity, and then privacy through anonymity. Though it happens a bit differently on each, essentially all of these systems achieve anonymity by passing requests through the overlay network to obfuscate the connection metadata.

      Web420 works differently, almost diametrically so. Instead of consisting (primarily) of a global network, Web420 is composed of infinite, smaller, ephemeral private networks that pop in and out of existence as needed. These networks are as big as required; they can exist between two devices, or two million devices. The can grow, shrink, disappear, and re-emerge. They originate in, and are accessed solely through web browsers, over WebRTC. DCNT servers don’t connect to other DCNT servers at all. They listen for requests from remote DWAs and proxy them to relevant local DWAs.

      There is a bit more detail beyond that in the article as well.

    • Sl00k@programming.dev
      link
      fedilink
      arrow-up
      5
      ·
      1 year ago

      I2p is notoriously difficult to setup up for the average user as well as being pretty slow right?

      It’s also 20 years old, do you think the core i2p code would need to be retackled in order to make it more available to the average user and at that point would it be more advantageous to start from scratch?

      • Gargari@lemmy.ml
        link
        fedilink
        English
        arrow-up
        5
        ·
        1 year ago

        There is i2pd written in C++, it’s slow because of lack of participants and level of encryption and layers i2p offers in order to provide total anonymity. Old doesn’t mean bad, it’s improving, the older better. It’s still actively maintained and tried.

        • Sl00k@programming.dev
          link
          fedilink
          arrow-up
          4
          arrow-down
          2
          ·
          1 year ago

          I have no doubt that it’s well maintained and well tested, but how does this provide benefit to an every day intenet user.

          The setup for i2p is virtually impossible for 98% of internet users. How do we apply i2p benefits to the 98%. This is the rewrite that must be done. The code is solid and works yes, but it’s the social application that needs to be rethought.

          The absolute greatest people you can target with i2p are torrenters as it proves the MOST benefits to them immediately and you generally don’t even see any of them adopting i2p. This is the problem that needs to be thought through.

          • futurehood@lemmy.mlOP
            link
            fedilink
            arrow-up
            1
            arrow-down
            3
            ·
            1 year ago

            Fantastic comments, thank you. Exactly, if a system is going to help turn things around, it needs to be ridiculously easy to use.

    • futurehood@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      arrow-down
      3
      ·
      edit-2
      1 year ago

      Thanks, it is a good question.

      But I must joke a bit: did you ask the same question to the I2P devs when they forked Freenet? :P

      Seriously though, they are different projects with different goals and vastly different functionality. The only overlap is “privacy”.

      There simply isn’t anything like Web420, and I think this is a better approach to getting the average Internet user away from the big tech/VC-backed web apps that are ruining the world, that’s why.

  • Mikel@lemmy.farley.pro
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 year ago

    It’s unclear to me how this project does anything to protect the identity of users or who is talking to whom. It’s nice to know my messages can’t be read, but if my ISP can see who I’m talking to and how often it’s not doing much.

    Also how to clients find one another? Tor and i2p sites are notoriously require friends or public wikis to share the addresses.

    • futurehood@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      arrow-down
      2
      ·
      1 year ago

      Thanks for the question!

      Agreed, if you need anonymity, use a VPN or other tunneling software to obfuscate your identity, or provide multiple identities. You can run it open on local networks that you trust, say for a life planner DWA that syncs between devices on your home network, otherwise protect your line as you normally would. With a VPN/tunnel you can attain privacy plus anonymity.

      Clients don’t find one another, they’re instructed to connect with each other (very briefly) by users, then everything is passed off to your browser. You will need a friend’s address (either IP or domain) to connect.

  • futurehood@lemmy.mlOP
    link
    fedilink
    arrow-up
    6
    arrow-down
    2
    ·
    edit-2
    1 year ago

    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!

    • tortiscu@feddit.de
      link
      fedilink
      English
      arrow-up
      6
      ·
      1 year ago

      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?
      • futurehood@lemmy.mlOP
        link
        fedilink
        arrow-up
        3
        arrow-down
        1
        ·
        1 year ago

        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!

        • tortiscu@feddit.de
          link
          fedilink
          arrow-up
          2
          ·
          1 year ago

          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

          • futurehood@lemmy.mlOP
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            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.

    • floofloof
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      1 year ago

      I’d be more convinced if your documentation sounded less full of hype and had more concrete information about architecture in it. And you promising to do P2P file sharing this week, video and audio calls next week and then a social network and infrastructure-free video/audio streaming, all on your own (the week after?), suggests that you’re either an unusually productive individual or a bit inexperienced and unrealistic. We’ll have a better idea when we can see the core code.

      That said, it’s a nice idea and could be genuinely useful. I look forward to seeing more of it.

      • futurehood@lemmy.mlOP
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        1 year ago

        Hey, thanks for the kind words. You will be seeing a lot more of it over the next month, it’s going to get pretty exciting, I think!

        I’m not sure if you’ve seen the specific project repos yet or not, but they strike a more serious tone than the main project repo or project website. If you haven’t seen these, they may have a bit more of what you’re looking for:

        Here is a WIP of the DCNT protocol overview: https://github.com/futurehood/DCNT

        Here is the DeCent-Core repo, you may be interested in looking through the User Guide if you haven’t already: https://github.com/futurehood/DeCent-Core

        Here’s a diagram of the most basic Web420 network too:

        I’m afraid you will be disappointed when you see the DeCent-Core source code, there’s nothing fancy there! It’s a simple HTTP/WSS server (Ktor/Netty) that implements the DCNT protocol, and provides a UI for managing server profiles, and installed apps. The installed apps are straight downloaded and extracted ZIP archives stored on disk - super simple. The DCNT server’s role is very small, it’s just there to connect browsers/DWAs by signaling WebRTC connections, that’s it. Once the WebRTC connection is established the DWA can disconnect from the DCNT server until it needs to signal again. If you get the gist of the DCNT protocol overview, you basically already understand the server. I know you all are waiting to see that anyway though, I’ll get it out as quickly as I can.

        I’m not going to start working on the social network or streaming service until after DeCent-Core is released. Those are just ideas I’m bouncing around too, the next DWA project from me might end up being something completely different. Getting DeCent Messenger fully-featured and finishing up the DeCent-Core refactor to drop the code are my only priorities at the moment.

        • floofloof
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          Sorry for my earlier skepticism. I can see you’re serious about this and it looks promising, and I appreciate your reassurances about not being overambitious!

  • Facebones@reddthat.com
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    1 year ago

    I’m interested, is the network going to be anon mesh shit like TOR or like lemmy where everyone can just bumrush to cut off all sectors of the network they disagree with?

    • futurehood@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      arrow-down
      2
      ·
      1 year ago

      No global network. These networks only exist between users that want to connect with one another, for the amount of time that they need to.

  • TerabyteRex@kbin.social
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    you are conflating the web and the internet. they arent the same thing. you are still using the internet. the world wide web is an application the runs ON the internet.

    • futurehood@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      1 year ago

      Yes, Web420 operates on the Internet. If you use it, you are accessing a private, P2P Internet.