13 comments

  • qcl820DV34 22 minutes ago
    Notably this project was conceived by a backroom decision to dump the original Freenet development team's work,

    in favor of a rewrite from different developers, without asking anyone on the original team.

    It was an ivory tower decision which was announced on the mailing list without prior discussion.

    The old team did not agree, yet it was forced through by a decision of the "board".

    The "board" was a group of people which had not been active on the project for over a decade.

    https://www.mail-archive.com/devl@freenetproject.org/msg5526...

    The funding of the existing, original "Freenet" was repurposed for the new one of course.

    The new "Freenet" does not have anonymity as a design goal anymore,

    while the old one continues to exist and is maintained under its new name "Hyphanet" at:

    https://www.hyphanet.org/

    • nightpool 13 minutes ago
      I'm very glad to hear that—the anonymity of the original Freenet has led to it being a very unsavory place that was more well known for CSAM then anything positive or useful. As an outsider, it sounds like this new direction is the right choice for Freenet to try and attract new users and fulfill the team's original goals.
      • qcl820DV34 7 minutes ago
        Extremely depraved things are not the only thing to use freedom of speech for, and freely speaking can result in all kinds of repressions.

        And even without agreeing on whether people should be anonymous on the Internet,

        it could be agreed that replacing a software which guards against a certain threat model (repressions) with one which does not,

        without changing the name, is not exactly a wise decision.

  • treyd 2 minutes ago
    This is awesome. I rotated some ideas like this in my head a while ago but never had the motivation to put it together. Happy to see more types of protocols like this.
  • nurumaik 40 minutes ago
    I think better approach for "ghost keys" would be requiring X amount of crypto to be sent to 0x0 (burning). Current implementation (requiring donation to freenet) basically gives freenet foundation infinite reputation (including any other potential project that would accept ghost keys as identity), kinda breaking the decentralization aspect
  • alun 25 minutes ago
    Very interesting. Beyond ideological motivation, I’m curious what the long-term incentive is for someone to run a peer.

    For example, if Freenet were to reach scale, it could eventually need some kind of economic primitive around it. Something similar to how Filecoin handles decentralized storage, but for app state. One way to do this could be paying peers to keep app state available, serve it reliably, etc. and prove they are doing so.

  • endofreach 22 minutes ago
    Very interesting. I have been working on something quite some time, where something like this would play a very crucial role, but i never got around to really thinking about how to implement everything. And as I have still a lot of work to do on my project, that would utilize something like freenet, i am very eager to dive into your work. Just wanted to write this as some form as appreciation for your work.

    I wonder though, what is your idea of a future, where freenet plays an important role in most peoples lives?

    Great work it seems, so far. I will yet have to really look through it all. Congratulations on this.

  • Groxx 44 minutes ago
    Neat. I've been wanting to see WASM-defined network behavior like this for a while (yay arbitrary consistency algorithms!), I'll have to explore it in more detail :)

    (the main thing I've been wanting to try: rather than graphql, send a WASM blob along with your request to a server, and just run it to filter fields in the response / pipeline requests / define "fail if any err / pair errors with requests" for concurrent requests. arguably you could even have it control callee-internal retries.)

  • aleqs 52 minutes ago
    Very cool project!

    > We've developed a unique (AFAIK) solution to the consistency problem, every contract must define a "merge" operation for the contract's associated state. This operation must be commutative, meaning that you can merge multiple states in any order and you'll get the same end result.

    Where can I learn more about this? How is this different from CRDTs/CmRDTs?

    • dtj1123 41 minutes ago
      I'm also curious about this. I don't understand how deletion and modification can be made commutative operations in a way that makes sense
      • cassonmars 33 minutes ago
        For a basic CRDT set, merge rules have to have some kind of temporality basis in the messages such that commutativity is preserved. usually it's a timestamp, sometimes it's an unforgeable value like a hash, e.g. A: { "prev_hash": null, "content": "foobar" } B: { "prev_hash": "<hash of A>", "content": "foobarbaz" } C: { "prev_hash": "<hash of B>", "content": "foobaz" }

        and when played out of order, it's guaranteed to resolve to foobaz eventually or immediately, depending on when messages are received

        when you encounter the scenario of a fork, there's usually a fork resolution rule, e.g. D: { "prev_hash": "<hash of B>", "content": "foobazbar" }

        to resolve C vs D, sort lexicographically, choose direction of sort order and pick first

        When you have non-continuous data due to messages dropping, e.g. you have B and perhaps an E that builds on C, you can either use the same lexicographic rule, or make the hash basis a combination of timestamp and hash, so you get temporality and lineage.

        As for deletes, you have either the single set approach of simply making the message content empty and that _is_ the delete, or you have the 2-phase sets, where there exists an add set and a delete set.

        Quite a few ways to approach it, but commutativity can be readily preserved.

  • dariosalvi78 48 minutes ago
    I wrote a short University essay on Freenet in 1998 I think it was... I may still have the document somewhere. Good stuff, very pioneer!
    • duskwuff 24 minutes ago
      Unfortunately, this is an effectively unrelated project.
  • analogpixel 29 minutes ago
    ELI5, how is this different than the internet?
  • EGreg 58 minutes ago
    Big fan of this project. Three years ago, I interviewed Ian Clarke about his upcoming Freenet rewrite. He's the original "OG" of decentralized content networks. We go into detail regarding its architecture on the podcast:

    https://www.youtube.com/watch?v=JWrRqUkJpMQ

  • gustavus 22 minutes ago
    In my early days of technology tinkering when I was young I was always interested in security, and one day I stumbled upon freenet, and my world changed.

    It was amazing and led me to get far more acquainted with the cyberpunk scene. It was this alternative separate internet from what the rest of the world saw with all of the good and bad that brought.

    I've been meaning to set it up again and get back into it. I will say for everyone pining for the Internet of yesteryear freenet is it. Go and explore it it is everything the 90's Internet was like, super slow, crazy unhinged nerds all over the place random collections of links, crazy.

    Thanks for all you've done Ian

    Edit: Btw what is the best way to support the project and get involved?

  • Aldipower 1 hour ago
    We had too much Gnutella. I am in search for a locus to us. Now. SCNR