• 0 Posts
  • 27 Comments
Joined 8 months ago
cake
Cake day: March 24th, 2024

help-circle












  • Posts have a canonical reference to the originating instance, e.g. this post contains <link data-inferno-helmet="true" rel="canonical" href="https://aussie.zone/post/11962005"> for me. This is a hint for search engines to ignore this post and instead index the original one instead. The same also already works for communities, this community containing <link data-inferno-helmet="true" rel="canonical" href="https://aussie.zone/c/meta">. Not sure if DDG is just ignoring this or there’s another reason for it to show up multiple times.


  • Except it wasn’t created on lemmy.ml, it was created on lemmy.world.

    lemmy.world then informed lemmy.ml that it is intended to be published in the community that it was created for.

    It doesn’t say “crossposted from lemmy.world” but “crossposted from canonical_post_url”. This is not wrong in any way, although it might be a bit confusing and could likely be improved by including a reference to the community. The instance domain should for the most part just be a technical detail there.

    It should also be noted that this format of crossposting is an implementation detail of Lemmy-UI and other clients may handle it differently (if they’re implementing crossposting in the first place).


  • I’m not saying it’s technically impossible, although it would likely be a bit challenging to integrate on the technical level, as the community instance has no authority to modify the post itself other than removing it from the community at this point.

    The existing fedilink is already present for technical reasons anyway, so this is currently only showing existing data.

    Why would you want a lemmy.ml link though? On Lemmy you’re typically intending to stay on your own instance, which many third party apps already implement. For Lemmy UI there is already a feature request to implement this, although it might still take some time to get done. If you have the canonical link to an object (which will always point to the users instance) Lemmy can look up which post/comment you’re referring to in its db without any network calls when it already knows about the entry. If you were linking to the lemmy.ml version of that post then the instance would first have to do a network request to resolve that and then it would realize it’s actually the lemmy.world version that it may or may not know about already.


  • it doesn’t matter whether you consider it reasonable, as it’s this way for technical reasons.

    when a post or comment are created they are created on the users instance. the users instance then tells the community instance about the new post/comment and the community instance relays (announces) this to other instances that have community subscribers.

    the fedilink is an id and reference to the original item. this unique id is known to all servers that know about this comment and it is what is used when updates to the post are distributed. except for the reference to the item on the originating instance, no instance stores information about where to find a specific post/comment on a random other instance.



  • It should be noted that the (visibility of) community bans are a result of better enforcement of site bans in 0.19.4, which for now is implemented by sending out community bans for local communities when a user gets instance banned: https://github.com/LemmyNet/lemmy/pull/4464

    Prior to this, when a user got instance banned from .ml, they were also implicitly banned from .ml communities, but this was only known to the instance they were banned on. As a result, users were still able to post, comment, and vote on those communities, but it would be visible only on that user’s instance, not federated anywhere else. Visibility of this ban was exclusively on the banning instance’s modlog.

    fyi @SpaceCadet@feddit.nl



  • lemmy’s current federation implementation works with a sending queue, so it stores a list of activities to be sent in its database. there is a worker running for each linked instance checking if an activity should be sent to that instance, and if it should, then send it. due to how this is currently implemented, this is always only sending a single activity at a time, waiting for this activity to be successfully sent (or rejected), then sending the next one.

    an activity is any federation message when an instance informs another instance about something happening. this includes posts, comments, votes, reports, private messages, moderation actions, and a few others.

    let’s assume an activity is generated on lemmy.world every second. now every second this worker will send this activity from helsinki to sydney and wait for the response, then wait for the next activity to be available. to simplify things, i’ll skip processing time in this example and just work with raw latency, based on the number you provided. now lemmy.world has to send an activity to sydney. this takes approximately 160ms. aussie.zone immediately responds, which takes 160ms for the response to get back to helsinki. in sum this means the entire process took 320ms. as long as only one activity is generated per second, this is easy to keep up with. still assuming there is no other time needed for any processing, this means about 3.125 activities can be transmitted from lemmy.world to aussie.zone on average.

    the real activity generation rate on lemmy.world is quite a bit higher than 3.125 activities per second, and in reality there are also other things that take up some time during this process. over the last 7 days, lemmy.world had an average activity generation rate of about 5.45 activities per second. it is important to note here that not all activities generated on an instance will be sent to all other linked instance, so this isn’t a reliable number of how many activities are actually supposed to be sent to aussie.zone every second, rather an upper limit. for example, for content in a community, lemmy will only send these activities to other instances that have at least one subscriber on the remote instance. although only a fraction of the activities, private messages are another example of an activity that is only sent to a single linked instance.

    to answer the original question: the week of delay is simply built up over time, as the amount of lag just keeps growing.

    additionally, lemmy also discards its queued activities that are older than a week once a week, so if you go over 7 days of lag for too long you will start completely missing activities that were over the limit. as previously explained, this can be any kind of federated content. it can be posts, comments, votes, which are usually not that important, but it can also affect private messages, which are then just lost without the sender ever knowing.