cross-posted from: https://kbin.social/m/RedditMigration/t/233339

Comments from the original poster:

Not much else needs to be said tbh. Fuck Spez. // Edit: Not sure why imgur marked the album as NSFW, but there’s nothing NSFW in it other than the name of one of the mods including the word “removed

Personal comment: the critter isn’t even dead but the vultures are already flying in circles around it. I certainly do not envy their situation, I bet that the users will treat them like shit.

  • TWeaK
    link
    fedilink
    1311 months ago

    That doesn’t work with posts or comments, as each instance assigns a different number.

      • sethboy66
        link
        fedilink
        211 months ago

        I could see a system being both easy, and hard to implement; Without thinking about it too much, it’d require a hash table filled with every single already-used key that is always perfectly synced with every other instance regardless of each instance’s chosen federated instances.

        Best bet might be to just have a non-linear, randomly chosen, hash with a fixed key-length backed by a very large keyspace. This could effectively defeat the need for perfect syncing due to a greatly decreased chance of collision over short periods of time (statistically covering any minute-or-two long desyncs).

        • TehPers
          link
          fedilink
          English
          311 months ago

          They could just go with UUIDs. Assuming all servers choose actually random UUIDs, the probability of a collision is astronomically low. Even if a server tries to maliciously “claim” UUIDs, that server could be defederated from, and the number of UUIDs it’d be able to eat is similarly tiny in comparison.

          • TWeaK
            link
            fedilink
            English
            111 months ago

            Yeah, I mean the goal would be to link the IDs across all instances. Rather than having different numbers and running a calculation into a table that links the IDs, you could just have a table, or better yet just have the same ID.

            The issue probably lies in creation of new IDs. Different instances may have to be allocated a block of IDs, so that they can create new IDs without conflicting with any other instance.

            • TehPers
              link
              fedilink
              English
              111 months ago

              The idea behind UUIDs is that there are so many (128 bits) that you don’t need to worry about allocating blocks or anything. Each post gets a random UUID, that’s its ID, and it’s propagated along with the post so other instances can reuse that UUID.

              • db2
                link
                English
                111 months ago

                If each instance can have a unique prefix then there’s zero chance of collision.

                XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

                If those first 8 are the prefix that’s room for over 4.2 billion unique instances, which is more than half the population of the whole planet. Do you think there’ll be that many?

            • Uranium3006
              link
              fedilink
              110 months ago

              If youvwant that you’d be using public key cryptography and having the user hold a private key

        • Paradox
          link
          fedilink
          English
          311 months ago

          Not necessarily. A hash of the body/url+timestamp would always point to the same place, and could be calculated on the fly.

          • TWeaK
            link
            fedilink
            English
            111 months ago

            So every comment and post would have a calculation and entry into a table, and this would be done by every instance every time one instance creates a new comment or post? That sounds like a massive unnecessary overhead.

            Just use the same ID across all instances. Hell, they could just do https://inst.ance/post/number@inst.ance

            • db2
              link
              English
              211 months ago

              This is redundant but is better than the uuid thing, even though it’s redundant.

              • TWeaK
                link
                fedilink
                English
                211 months ago

                I love how your use of the word redundant demonstrated redundancy.

                I still think a table and extra processing is wasteful and uneccesary. Rather, instances should just do what they do with communities and users.

                The host instance decides the number. Remote instances use that number followed by @instance. This already fits in with the federated model, as posts are always on the community’s local instance originally, and comments are always on the user’s local instance originally.

                If you’re on lemmy.one and reply to a post in a community in lemmy.world, that post should be lemmy.world’s number @lemmy.world, then your comment should be lemmy.one’s number @lemmy.one, rather than each instance picking its own sequential number for both.

                This kind of thing would probably be the easiest change to implement while requiring minimal server overhead.


                For a specific example, to me, this post is https://lemm.ee/post/1726780. In the original, federated instance, the post is https://lemmy.ml/post/2308622. Instead, it should appear to me as https://lemm.ee/post/2308622@lemmy.ml.

                Your comment, to me, is https://lemm.ee/comment/1409174. The federated link is https://lemmy.one/comment/1393053. This is the link you see, and should continue to see, but I should see https://lemm.ee/comment/1393053@lemmy.one.

                Using the instance in the numbering scheme means each federated host instance manages its own numbering while ensuring there will never be a clash between instances. https://lemm.ee/comment/1393053@lemmy.one and https://lemm.ee/comment/1393053 would refer to two completely different comments. This information is already being transmitted in the process of federation, so it’s just a matter of tagging the data when it’s received.