1
 
 

How does one go about detecting duplicate activities, and what is the best practice for senders?

I ask because following a hashtag served by relay.fedi.buzz responds with an Accept with id https://relay.fedi.buzz/activity/accept/{actor}/{requesterInbox}

Because that URL does not have a random/time-based component, an unfollow followed by a refollow will lead to an Accept with the exact same id.

In NodeBB's case, it detects this as "already seen" and silently drops it.

I could ask @astro@c3d2.social to add a timestamp in the ID, but I was wondering if my duplicate detection strategy was naive :smile:

2
 
 

Hi @astro@c3d2.social, I think I found a bug with FediBuzz and how it does its Webfinger responses.

In a nutshell, FediBuzz tag actors have preferredUsername set to tag-whatever, but the corresponding webfinger lookup ?resource=acct:tag-whatever@relay.fedi.buzz fails with a 404, but whatever@relay.fedi.buzz works fine.

cc @evan@cosocial.ca

AI slop explanation follows (feel free to ignore!):

> tags.pub does it correctly: > > json > { > "id": "https://tags.pub/user/nodebb", > "preferredUsername": "nodebb" > } > > > WebFinger acct:nodebb@tags.pub → resolves to https://tags.pub/user/nodebb ✅ > > FediBuzz breaks the round-trip: > > json > { > "id": "https://relay.fedi.buzz/tag/nodebb", > "preferredUsername": "tag-nodebb" > } > > > WebFinger acct:tag-nodebb@relay.fedi.buzz → 404 ❌ > > Yes, it's a FediBuzz bug. preferredUsername must match the WebFinger subject so that acct:{preferredUsername}@{hostname} resolves back to the actor's id. FediBuzz added a tag- prefix to preferredUsername but didn't update WebFinger to match. > > They should either use preferredUsername: "nodebb" (matching tags.pub) or serve WebFinger for acct:tag-nodebb@relay.fedi.buzz.

3
 
 

#ActivityPub people, we're failing at implementing the HTTP signatures necessary for interop, does anyone know how one would do this in #AspNet #dotnet 8?Otherwise, could you check what's wrong with our implementation by looking at an example request, to see if anything jumps out?codeberg.org/MinotaursAtWork/DTotally understand that troubleshooting and bughunting is work, I wish we could pay for this. Drop any donation/tip page you have and we'll try to donate what we can when we can <3

4
 
 

I’m planning to implement the protocol for a project I am working on. I wanted to see what other implementations there are.

And is there anything I should know before I implement it, that is not written in the docs?

5
 
 

Question about HTTP Signatures in #ActivityPub, IIUC the header is a digest of the HTTP body. Given that JSON is not white-space sensitive, does that mean that storing the response must preserve the indentation used by the server?#ActivityPubDev