Email or username:

Password:

Forgot your password?
182 posts total
silverpill

FEP-fe34: Origin-based security model has been published. It supersedes FEP-c7d3: Ownership and describes authentication of ActivityPub objects in simpler terms.
I think ownership is still useful for authorization and access control, so that part was copied from FEP-c7d3.

#fep #activitypub

silverpill

How to self-host Bluesky:

https://alice.bsky.sh/post/3laega7icmi2q

Of course, you can't self-host it. But this article is interesting because it provides a honest description of their stack written by someone who appears to be a true believer.

silverpill

Conversation containers FEP update

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

It now includes a comparison with other proposals: FEP-1b12 and GoToSocial Interaction Policy.

I think FEP-1b12 and conversation containers can be made compatible, but GtS solution seems to be fundamentally different because conversations there don't have a single "context" managed by OP. Instead, every reply creates a new independent context (doc).

Both approaches have downsides, so it is hard to choose one over the other. I don't like how audience can't be changed in a contained conversation, but I'm still slightly in favor of that solution because it is more efficient and keeps conversations synchronized across servers.

#conversationcontainers

Conversation containers FEP update

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

It now includes a comparison with other proposals: FEP-1b12 and GoToSocial Interaction Policy.

I think FEP-1b12 and conversation containers can be made compatible, but GtS solution seems to be fundamentally different because conversations there don't have a single "context" managed by OP. Instead, every reply creates a new independent context (doc).

silverpill

@julian There was a group called "threaded conversations" or something like that. Is it hosted on your server? Can I create a post in that group?

silverpill

Mitra now allows level-1 markdown headings, so I started adding them to @weekinfediverse posts:

https://mitra.social/objects/01930cdc-f769-dbdb-3236-475008bd386d

Some platforms will strip the <h1> tag, but they should still display title as a plain text.

silverpill

Draft Guidance for Long-form Text

One of the Social Web Foundation’s programs for this year is to work on making long-form text more useful and available on the Social Web. By this, we mean multi-paragraph texts of “web page” length, like a blog post, a magazine article, a newsletter, a forum post, or a wiki page. This length of text can usually fit comfortably into a single ActivityPub object — let’s say tens or maybe low hundreds of kilobytes of content. Longer texts like books are probably too big for this use.

There are a lot of producers of long-form text on the Web, and many have enabled ActivityPub for their software. There is some discussion of longer texts in the Activity Vocabulary — the definition of most of the data types used in ActivityPub — but it’s not all in one place, and there’s not practical guidance on restrictions.

To help publishers and consumers of long-form text objects, I pulled together the relevant properties and types into a Fediverse Enhancement Proposal (FEP), which is a community-led standardization process. The document, FEP-b2b8: Long-form Text, is currently available as a draft for review.

If you’re a publisher of long-form text, or you are developing user interfaces that may encounter this kind of data, please take some time to review. This is still a draft-level document, but I’d love to see it shaped and improved by incorporating the experience and knowledge of many practitioners and implementers.

Draft Guidance for Long-form Text

One of the Social Web Foundation’s programs for this year is to work on making long-form text more useful and available on the Social Web. By this, we mean multi-paragraph texts of “web page” length, like a blog post, a magazine article, a newsletter, a forum post, or a wiki page. This length of text can usually fit comfortably into a single ActivityPub object — let’s say tens or maybe low hundreds of kilobytes of content. Longer texts like books are probably too big for this use.

silverpill

@knt It is worth noting that accept rules only make sense if one wants an allowlist. For example:

reject *
accept streams.knthost.com

An empty ruleset is equivalent to accept *

silverpill
Fediverse Enhancement Proposal in Progress

An initial draft for the FEP A common approach to using the Event object type has been published.

https://codeberg.org/linos/fep/src/branch/fep-8a8e/fep/8a8e/fep-8a8e.md

The pull request is still marked as work-in-progress. Firstly, we would like to have a discussion about it with the community, which you are invited to join on SocialHub.

silverpill

I've been developing an #ActivityPub C2S-based (with extensions) API facade/proxy proof-of-concept for Mastodon. It runs as a separate process that supports proxying the Masto operations but also adds a postable C2S outbox with support for AP C2S activities. These activities are converted into upstream Mastodon API calls. This extended C2S API also supports search, streaming events, managing bookmark collections, and retrieving timeline collections. 1/2

Steve Bate

The code isn’t quite ready to be published yet and the purpose of this C2S PoC implementation (Python) is experimentation, not high-performance production use. However, it will be useful for prototyping C2S extensions that can be documented using the FEP process. The documented extensions could be implemented as native functionality instead of using a proxy. The benefit of the proxy is that the proxied Mastodon instance still supports both Masto clients and extended C2S clients. 2/2

silverpill

I submitted a draft FEP describing the Mastodon and LitePub/Pleroma #ActivityPub relay protocols. Comments and corrections are welcome.

codeberg.org/fediverse/fep/src

silverpill

did:dns might be a good choice for FEP-ae97 clients.
It supports key rotation, but a web service is not required, so people don't need to deploy anything to create an identity. Just generate a secret key in your client, add a resource record to your domain and start posting.

#fep_ef61 #fep_ae97

silverpill
Delivery of signed, portable objects (ala FEP-ef61) don't actually require http signatures. The only reason to still use them is to glean the identity behind fetch requests which have no signed payload and maintain compatibility with legacy ActivityPub applications like Mastodon.  

And in any case, authoring a post and delivering  post are completely different functions and there's absolutely no reason they need to take place on the same device.
Delivery of signed, portable objects (ala FEP-ef61) don't actually require http signatures. The only reason to still use them is to glean the identity behind fetch requests which have no signed payload and maintain compatibility with legacy ActivityPub applications like Mastodon.  
silverpill

For every complex problem in the field of decentralized network engineering, there is an answer that is clear, simple, and wrong:

Auxiliary Service Providers

marius

@silverpill care to elaborate?

What is wrong with those things existing as auxiliary services?

silverpill

#Mitra v3.7.0

https://codeberg.org/silverpill/mitra/releases/tag/v3.7.0
https://codeberg.org/silverpill/mitra-web/releases/tag/v3.7.0

This release includes a new server-level content filtering system:

- Rules are managed with mitractl and stored in the database - no need to edit the configuration file (commands: add-filter-rule, remove-filter-rule, list-filter-rules).
- blocked_instances and allowed_instances configuration parameters are still supported, but filter rules have higher priority.
- Wildcard patterns are supported.
- In addition to blocking activities, content filter can block media attachments (more actions will be added in the future).

#Mitra v3.7.0

https://codeberg.org/silverpill/mitra/releases/tag/v3.7.0
https://codeberg.org/silverpill/mitra-web/releases/tag/v3.7.0

This release includes a new server-level content filtering system:

- Rules are managed with mitractl and stored in the database - no need to edit the configuration file (commands: add-filter-rule, remove-filter-rule, list-filter-rules).
- blocked_instances and allowed_instances configuration parameters are still supported, but filter rules have higher priority.
- Wildcard...

silverpill

'ap' URLs are not valid URIs according to RFC-3986. FEP-ef61 describes a possible solution: percent-encode a DID (the authority component of an 'ap' URL)

Today I found another solution. RFC-3986 allows future, as-yet-undefined IP literal address formats if they are enclosed in square brackets and prefixed with a version flag.

For example, this is a valid URI:

ap://[vd.did:key:z6MkvUie7gDQugJmyDQQPhMCCBfKJo7aGvzQYF2BqvFvdwx6]/objects/123

#fep_ef61

silverpill

ok, i just implemented support for Bite activity for Pleroma basing on AP extension by @mia

it’s on my personal branch of Pleroma, but here you can get just the single commit (here’s one for Akkoma). it works with my personal front-end pl-fe and Luka by @prefetcher

no tests for now, i guess i’ll write them tomorrow

silverpill

this quote from @mitra is exactly what i think would be awesome

In my work I prefer to focus on the positive side of censorship resistance: digital sovereignty. A server that runs on your own hardware and that doesn’t depend on any external services is practically unstoppable. This is already possible today with Tor and I2P, but requires specialized technical knowledge, and even if you have it, you can communicate only with a very small number of people. So the most important features are those that make this experience more accessible. Ideally, everyone should be able to send messages to millions of followers from a personal social media server that runs on the phone with unstable internet connection.
https://libresolutions.network/articles/mitra/

this quote from @mitra is exactly what i think would be awesome

In my work I prefer to focus on the positive side of censorship resistance: digital sovereignty. A server that runs on your own hardware and that doesn’t depend on any external services is practically unstoppable. This is already possible today with Tor and I2P, but requires specialized technical knowledge, and even if you have it, you can communicate only with a very small number of people. So the most important features are those...
silverpill

Mitra Q&A with @silverpill
Web

In your own words, what is Mitra?
> Mitra is a social media server for the Fediverse.

Why that logo? How did you come up with it?

> The outer shape is known as Rub el Hizb,
>it's an Islamic symbol. There is no deep meaning, I just saw it somewhere and decided to use it as a starting point. I experimented with many different designs and selected one that seemed most interesting and pleasing to the eye. You can spot a bunch of "M"s inside.

Why should more people become familiar with and use federated social media?

> You can have your own Twitter, Facebook or YouTube, connected to thousands of other small networks. Isn't that great?
>I think federation is the best architecture for a decentralized social network. The user experience is decent and the network can scale without compromising on decentralization, as was demonstrated by Email, XMPP and Matrix.

Why did you decide to build Mitra?

> Before Mitra I was working with blockchain technology. At some point I realized that decentralized financial infrastructure needs a social layer, and that existing solutions are inadequate. After doing some research on decentralized social protocols I picked ActivityPub because it was mature, well-designed and had a strong developer community with values similar to mine. The missing pieces were decentralized payments and decentralized identity, so I started working on these problems.

What makes Mitra unique compared to other Fediverse servers?

> So, one of my original goals was integrated payments. I tried several ideas and eventually settled on paid subscriptions. This feature provides a way to accept payments in Monero and publish premium content for paying subscribers.
> The second goal was decentralized identity, or "nomadic identity", as we call it in the Fediverse. This turned out to be a very difficult task, but I've made significant progress. Nomadic identity mechanism allows people to have an account that is not tied to any single server, but exists on many servers simultaneously. My implementation of this mechanism is not complete yet and currently can be used only by developers.
>Mitra also can federate over Tor and I2P networks.
>Besides that, it is very lightweight and easy to host, so it might be a good choice even for those who are not interested in subscriptions and nomadic identity.

What other Fediverse software would you recommend? (Servers, Clients, etc)

> My favorite server is Pleroma.
>I borrowed many ideas from it when Mitra was in the early stages of development.
>Streams
>is also very interesting. It implements nomadic identity in the same way as Mitra, and has many other nice features.
>Among web clients, my favorite was Soapbox, but its developer quit Fediverse (there is now a fork called Mangane).
>For Android devices, I recommend Husky.

In your opinion, what features are most important for censorship resistance?

> In my work I prefer to focus on the positive side of censorship resistance: digital sovereignty. A server that runs on your own hardware and that doesn't depend on any external services is practically unstoppable. This is already possible today with Tor and I2P, but requires specialized technical knowledge, and even if you have it, you can communicate only with a very small number of people.
>So the most important features are those that make this experience more accessible. Ideally, everyone should be able to send messages to millions of followers from a personal social media server that runs on the phone with unstable internet connection.

What are the biggest threats to online free speech, and what do you believe has kept them at bay the best?

>The biggest threat is centralization. It occurs on multiple levels, both technical and social, and every time there is a bottleneck, someone tries to use it to censor their opponents. What keeps it at bay are all those people who invest resources in building decentralized networks and circumvention tools, and those who make information about these tools accessible to the general public.

Are any of the alternative protocols (like nostr) meaningful competition from a censorship resistance perspective?

> Nostr seems to be the only meaningful competition, although it is still not big enough to matter. Other networks are even smaller, or not really decentralized.
>The current situation is really unfortunate because so much effort is wasted in technological dead ends. Fediverse is the biggest decentralized network and is perfectly capable of supporting decentralized identity, the purported lack of which is often used as an excuse to create a competing protocol.

How does a person, or even a small group directly oppose online censorship?

> Use decentralized networks and open source software. Educate others. Ultimately, this a collective action problem, and only together we can make censorship prohibitively expensive and therefore ineffective.

What are your short, medium and long term goals for Mitra?

> In the short term, I'll be working on several basic features that are still missing, such as polls, audience controls and moderation tools. Medium term plans include finishing nomadic identity system, improving premium subscriptions and implementing groups. I'm also planning to release a Rust library for developing ActivityPub applications. In the long term, I want to build a powerful social media server that has everything you need, costs nothing and can run in your pocket.

What motivates you to continue building Mitra into the future?

> I think a tool like Mitra is necessary, an no one else is working on that, so I have no choice but to build it myself.

Outside of just Mitra, how are you working to make the Fediverse even better?

> I proposed a number of standards for the Fediverse, covering message signing, quote posts, federated payments, data portability and other things. I also help maintain a platform for publishing those proposals (Fediverse Enhancement Proposals, or FEPs).
>Every Friday I publish a newsletter about the Fediverse: @weekinfediverse

What's the best way to support your work?

> Try Mitra. If you like what I'm doing, you can help by suggesting improvements, testing different clients, reporting bugs and spreading the word.
>If you're a developer, you can contribute to Mitra or implement my FEPs in your own project.
>I also accept donations. My Monero address is 8Ahza5RM4JQgtdqvpcF1U628NN5Q87eryXQad3Fy581YWTZU8o3EMbtScuioQZSkyNNEEE1Lkj2cSbG4VnVYCW5L1N4os5p

#Mitra #Fediverse #Decentralization #FreeSpeech

Mitra Q&A with @silverpill
Web

In your own words, what is Mitra?
> Mitra is a social media server for the Fediverse.

Why that logo? How did you come up with it?

> The outer shape is known as Rub el Hizb,
>it's an Islamic symbol. There is no deep meaning, I just saw it somewhere and decided to use it as a starting point. I experimented with many different designs and selected one that seemed most interesting and pleasing to the eye. You can spot a bunch of "M"s inside.

marcin mikołajczak

my favorite was Soapbox, but its developer quit Fediverse (there is now a fork called Mangane)

I don’t think Mangane would care about implementing Mitra-specific features. I tried to improve compatibility with Mitra in my fork of Soapbox (it needs a better name) but didn’t really test it

silverpill

Mentioned-only notes on Mastodon have no markup

TIL that when you send Mastodon a mentioned-only note, all HTML tags are stripped.

Just... whyyyyyy....

silverpill

APx v0.2.0 has been released together with Mitra v3.6.0

I started to keep a change log: https://codeberg.org/silverpill/mitra/src/branch/main/apx_sdk/CHANGELOG.md. This release includes several breaking changes, and API will remain unstable until 1.0 is released.

Go Up