silverpill

@silverpill@mitra.social · Joined ⁨Nov⁩ ⁨2021⁩

Developer of ActivityPub-based micro-blogging and content subscription platform Mitra. I help maintain the FEP repository and write my own FEPs too. Currently working on ActivityPub Next.

Matrix
@silverpill:unredacted.org
$XMR
48YM8jwJqDkeUvD38vepSXFeMZH1zsjbvGwTTuaNSSq6Q5GyeWaeiheAZUsSmNn72YdyLpw8geb4FL3opZfGbguJLUj8Mi9
PGP
0541 49E3 0F91 C6D7 8FFA C49C 955F 5A6E 2123 25F0
OMEMO fingerprint
689a2fb0ec87a9481fb45cb7d8870da6aeb4d8247bd69a39017701133b901f04
Matrix (backup)
@silverpill:poa.st

Replying to @⁨maddyunderstars@aus.social⁩

@maddyunderstars @technical-discussion

Do you think I should elaborate more on this?

Yes. I think an example from FEP-1b12 realm will be helpful. Can actors from FEP-1b12 "moderators" collection be considered authorised actors?

There's a footnote on what authorised actors are, tldr it's however you decide to do it.

In that section, you mention "the 'invite-actor'". Does this term refer to InviteCode.attributedTo actor?

It's a side effect of Add currently. Should it be the other way around? I guess Create<Note> adds to the outbox, so it would make sense.

I would expect that an invite code is Created first, and then Added. At least when using ActivityPub API clients.

Replying to @⁨maddyunderstars@aus.social⁩

@maddyunderstars

Activities on InviteCodes

When an activity modifying the InviteCodes for an Actor is received, the Actor MUST ensure that the activity is being performed by an authorised Actor.

Did you mean "modifying the invites collection of an Actor"?
How to ensure that activity is being performed by an authorized actor?

To create a new InviteCode for an Actor, a standard Add activity is sent to the Actor the InviteCode is associated with.

Is there a Create(InviteCode) activity? Or invite code is supposed to be created as a side-effect of Add activity?

@technical-discussion

Replying to @⁨benpate@activitypub.space⁩

I think it's fine to use a different type. What I wanted to point out is that context property is for grouping related objects, and that there is another property that does exactly you want - relationship.

we're modeling a one-way relationship, not two way.

In a two-way relationship, there is an expectation that another Relationship object exists representing a reverse claim.

Is there another way around this issue that DOESN'T require Object Integrity Proofs?

I am not sure if integrity proofs really solve this problem... It's hard to tell without knowing who signs what (I didn't find that information in the FEP).

www.w3.orgActivity Vocabulary

Replying to @⁨benpate@activitypub.space⁩

Endorsements MUST have a context property, which contains a context URI that identifies the nature of the endorsement.

This usage conflicts with FEP-7888. If you're modeling Endorsement after Relationship, perhaps relationship property would be more appropriate?

Endorsements MUST have a proof property, which contains an Object Integrity Proof as defined in FEP-8b32. This is required to prevent someone from changing an endorsement maliciously after it has already been accepted.

Who generates this proof? Who owns the Endorsement object?

This information is crucial for the verification of proofs, see https://codeberg.org/fediverse/fep/src/branch/main/fep/8b32/fep-8b32.md#proof-verification.

Server admins MAY make server-level endorsements on behalf of the server's Application actor.

This statement links to FEP-2677, which requires discovery through NodeInfo endpoint. Consider using FEP-d556, which recommends on Webfinger instead.

Summary card of repository fediverse/fep, described as: Fediverse Enhancement ProposalsCodeberg.orgfep/fep/7888/fep-7888.md at mainfep - Fediverse Enhancement Proposals

Replying to a post on ⁨holos.social⁩

@doesnm I want to try this in client-to-server interactions first, as a replacement for proxyUrl: https://codeberg.org/silverpill/minimitra/issues/9

minimitra sends a Request activity to server -> server adds the fetched object to actor's inbox

Summary card of an issue titled "Support `proxyUrl`" in repository silverpill/minimitraCodeberg.orgSupport `proxyUrl`Mitra Mini can't fetch objects from servers that require authorization. In order to overcome this limitation, a proxy endpoint should be added to Mitra, similar to the one described in https://www.w3.org/wiki/ActivityPub/Primer/proxyUrl_endpoint

Replying to @⁨silverpill@mitra.social⁩

silverpill@silverpill@mitra.social

The biggest problem for peer to peer ActivityPub is the fact that ActivityPub is primarily a "pull" protocol. You need to fetch a remote actor before interacting with it. This is not feasible in the environment where nodes are intermittently online.

What if we used a special activity to request objects? I've described this idea in more detail in Asynchronous object retrieval:

https://codeberg.org/silverpill/feps/src/branch/main/aef6/fep-aef6.md

I think this mechanism, if combined with self-authenticating objects, should make ActivityPub compatible with store and forward protocols.

#p2p #dtn #fep_ef61

The biggest problem for peer to peer ActivityPub is the fact that ActivityPub is primarily a "pull" protocol. You need to fetch a remote actor before interacting with it. This is not feasible in the environment where nodes are intermittently online.

What if we used a special activity to request objects? I've described this idea in more detail in Asynchronous object retrieval:

https://codeberg.org/silverpill/feps/src/branch/main/aef6/fep-aef6.md

I think this mechanism, if combined with self-authenticating objects, should make ActivityPub compatible with store and forward protocols.

#p2p #dtn #fep_ef61