Email or username:

Password:

Forgot your password?
102 posts total
silverpill

My instance has been un-blocked by threads.net
Thanks @zuck

silverpill

#Mitra v2.16.0

https://codeberg.org/silverpill/mitra/releases/tag/v2.16.0
https://codeberg.org/silverpill/mitra-web/releases/tag/v2.16.0

- Full text search. The search query needs to be prefixed with ">". Only shows posts created by the current user.
- Loading latest posts from other servers (this feature is currently only available to users with 'admin' role).

silverpill

FEP-ef61 breaking change: https://codeberg.org/fediverse/fep/pulls/295

Resolvers are now gateways and may accept POST requests.

#fep_ef61

silverpill

#Mitra v2.15.0

https://codeberg.org/silverpill/mitra/releases/tag/v2.15.0
https://codeberg.org/silverpill/mitra-web/releases/tag/v2.15.0

- Emoji picker in post editor (for custom emojis).
- Subscription access without payment. Subscriber status can now be given as a gift, or in exchange for off-site payment (in any currency). To do this, navigate to any profile page and click on "Subscriber details" item in profile menu.

silverpill

https://matrix.org/blog/2024/04/open-source-publicly-funded-service/

>FOSS maintenance should be funded by governments on behalf of the taxpayer

Matrix people are struggling to maintain their tech and they are begging governments to take money from YOU to help them stay afloat.

Let them sink. We already have XMPP, and E2EE over AP is also coming.

silverpill

Recommendations for working with nested signed objects (FEP-8b32):

https://codeberg.org/fediverse/fep/pulls/292/files

FEP-ae97 and FEP-ef61 require embedding signed objects into other signed objects (example: Create activity), but Data Integrity specification doesn't say how to do that correctly.

Looks like we have two options:

1. Use RDF canonicalization instead of JCS, double down on JSON-LD and RDF
2. Use JCS, but break compatibility with some JSON-LD processors

The proposed change represents option 2 (discussion on SocialHub: https://socialhub.activitypub.rocks/t/use-cases-of-fep-8b32-object-integrity-proofs/3249/18).

#fep_ef61

Recommendations for working with nested signed objects (FEP-8b32):

https://codeberg.org/fediverse/fep/pulls/292/files

FEP-ae97 and FEP-ef61 require embedding signed objects into other signed objects (example: Create activity), but Data Integrity specification doesn't say how to do that correctly.

Looks like we have two options:

silverpill

#Mitra v2.14.0

https://codeberg.org/silverpill/mitra/releases/tag/v2.14.0
https://codeberg.org/silverpill/mitra-web/releases/tag/v2.14.0

- Unicode emoji shortcodes :cat: 🐱
- Deleting one's own account
- SVG icons are inlined (UI loads faster, easier customization)

silverpill

https://help.instagram.com/914046486923176/

>When Threads blocks communication with other servers on the fediverse
>...fails to meet our Community Guidelines...
>We’ll also block a server if it doesn’t have a:
>Sufficient privacy policy; or
>Publicly available policy to restrict access to users under the age of 13; or
>Publicly accessible feed

There are two fediverses. One of them will comply with these rules, and with whatever rules come after that.

https://help.instagram.com/914046486923176/

>When Threads blocks communication with other servers on the fediverse
>...fails to meet our Community Guidelines...
>We’ll also block a server if it doesn’t have a:
>Sufficient privacy policy; or
>Publicly available policy to restrict access to users under the age of 13; or
>Publicly accessible feed

silverpill

I changed FEP-ef61 representations to use resolver URLs instead of DID URLs. And my resolver now can resolve actor IDs:

https://mitra.social/.well-known/apresolver/did:ap:key:z6MkjtdL1hhAtJDRTti4JZtjGVkMiqbrQWhLQjK8wV4neCvS/actor

The major downside of resolver-URL-as-ID is that existing actors can't be easily upgraded because of ID change, and migration via Move activity will be required. It is a one-time migration, and your actor will be forever free from the server of origin, so maybe it's worth it.

Another thing to note is that inbox is distributed too (its path is relative to DID-based actor ID). Initially I thought that clients will use resolver to get server-local HTTPS URL of an inbox (see section Dereferencing DID URLs, paragraph about the Link header). But now I'm wondering: why not make POST requests directly to the resolver?

Instead of being read-only, it can be read-write. So it's not really a resolver anymore, but maybe a gateway

#fep_ef61

I changed FEP-ef61 representations to use resolver URLs instead of DID URLs. And my resolver now can resolve actor IDs:

https://mitra.social/.well-known/apresolver/did:ap:key:z6MkjtdL1hhAtJDRTti4JZtjGVkMiqbrQWhLQjK8wV4neCvS/actor

The major downside of resolver-URL-as-ID is that existing actors can't be easily upgraded because of ID change, and migration via Move activity will be required. It is a one-time migration, and your actor will be forever free from the server of origin, so maybe it's worth it.

silverpill

It's official now: Threads implemented FEP-e232

https://engineering.fb.com/2024/03/21/networking-traffic/threads-has-entered-the-fediverse/

Article contains a couple of minor inaccuracies: _misskey_quote doesn't build on FEP-e232, and the other property name is quoteUrl, not quoteURL. But overall it's good and I hope other implementers will notice it.

#FEP

silverpill

My server can now process preferredUsername changes. I also changed everything to use actor ID as a primary identifier. Previously, actor ID was a secondary identifier after the webfinger address (Mastodon style) - this is a pretty big change and I hope I didn't break anything. Webfinger is now optional (but preferredUsername is still required).

In UI accounts without webfinger address will have actor ID in its place.

https://codeberg.org/fediverse/fep/src/branch/main/fep/03c1/fep-03c1.md

silverpill

Decentralized identifiers (DIDs) can be divided into 3 categories, depending on where the authority resides:

- Secret key (did:key, did:pkh).
- Server (did:web).
- Blockchain (hundreds of them).

With a #DID derived from a secret key you can truly own your identity. Unfortunately, key rotation is not supported, and if you lose your key, you lose everything. This can be partially mitigated with distributed key generation techniques that make key recovery possible if only M of N shards are available, but they are complicated.

Servers can rotate keys, but they can also suddenly disappear, and again you lose everything.

Blockchain-based systems support key rotation and don't have a single point of failure (if done right). Sometimes they are called "servers with superpowers". However, popular ones are not suitable for the job because writing to them is very expensive and their clients need powerful computing devices and a lot of storage.

Is there a way around that? Yes. Blockchains can be very lightweight and they don't actually need a cryptocurrency, miners or stakers in order to work. There is a simple consensus algorithm known as Proof of authority, and one of the Fediverse competitors, Bluesky, seems to be planning to build such system:

https://github.com/did-method-plc/did-method-plc

>We are actively hoping to replace it with or evolve it into something less centralized - likely a permissioned DID consortium.

They are afraid to say the B-word, but "permissioned consortium" is exactly what it is. Of course, their identity #blockchain doesn't have to be the only one in existence. I think in the future we might see quite a lot of "identity cooperatives" of different shapes and sizes. Perhaps even a universal client, curl for identity, can be developed.

Decentralized identifiers (DIDs) can be divided into 3 categories, depending on where the authority resides:

- Secret key (did:key, did:pkh).
- Server (did:web).
- Blockchain (hundreds of them).

With a #DID derived from a secret key you can truly own your identity. Unfortunately, key rotation is not supported, and if you lose your key, you lose everything. This can be partially mitigated with distributed key generation techniques that make key recovery possible if only M of N shards are available,...

silverpill

Yet another FEP-ef61 update: https://codeberg.org/fediverse/fep/pulls/283

Replacing DID URLs with resolver URLs is now recommended for MastoPub interop. My implementation experience shows that this approach is better than alternatives.

FEP-ae97 is not required anymore, implementers can use server-owned keys.

#fep_ef61

silverpill

FEP-ef61 resolver endpoint:

https://mitra.social/.well-known/apresolver/did:ap:key:z6MkjtdL1hhAtJDRTti4JZtjGVkMiqbrQWhLQjK8wV4neCvS/objects/018e1080-3792-c4f9-69b0-a6a0f609f94e

This service is a very important part of FEP-ef61. It connects the regular web with the web of signed AP objects, similarly to how IPFS gateways provide access to IPFS objects. However, unlike IPFS objects, AP objects are mutable.

Resolver URLs and DID URLs are equivalent, and implementations that support FEP-ef61 will simply strip the resolver part when they encounter it.

#fep_ef61

FEP-ef61 resolver endpoint:

https://mitra.social/.well-known/apresolver/did:ap:key:z6MkjtdL1hhAtJDRTti4JZtjGVkMiqbrQWhLQjK8wV4neCvS/objects/018e1080-3792-c4f9-69b0-a6a0f609f94e

This service is a very important part of FEP-ef61. It connects the regular web with the web of signed AP objects, similarly to how IPFS gateways provide access to IPFS objects. However, unlike IPFS objects, AP objects are mutable.

silverpill

#Mitra v2.13.0

https://codeberg.org/silverpill/mitra/releases/tag/v2.13.0
https://codeberg.org/silverpill/mitra-web/releases/tag/v2.13.0

- Notifications about emoji reactions.
- Public posts can be exported in FEP-ef61 format (exported objects are not very useful at the moment, but it's a first step towards data portability)

silverpill

FEP-ef61 object: https://mitra.social/objects/018de25b-60ef-cde0-1485-154e5f171155?fep_ef61=true

Now both posts and actors have portable representations. I can create a backup of my private key and all my posts, and import them into another mitra instance in the future (once importing is implemented). Of course, this is only the beginning, the goal of FEP-ef61 is to make this process automated.

https://mitra.social/objects/018de25b-60ef-cde0-1485-154e5f171155

silverpill

Custom emojis can't be easily represented in FEP-ef61. Unlike almost all other ActivityPub objects, Emoji objects are owned by a server, not by an actor.

I think it would be much better if they were regular Image objects without an ID.

Go Up