Email or username:

Password:

Forgot your password?
183 posts total
silverpill

#Mitra v2.1.0

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

Highlights:

- Non-followers from other instances can pay for subscriptions. Previously, subscription page didn't work if subscriber's account was not known to the server.
- Post URL can be copied using the "Copy link to post" button in the post menu.
- Fixed a number of bugs, including a broken home timeline for newly registered users.

silverpill

#ActivityPub proxy by @tedu: https://flak.tedunangst.com/post/idkfa

Looks very interesting. This service rewrites activities, so in theory it can work as a bridge between disconnected parts of Fediverse, for example between two defederated servers, or between server-centered Fediverse and client-centered Fediverse, or between #Tor instances and clearnet instances.

silverpill

A long-standing federation issue between Mitra and WriteFreely was fixed. The fix is currently deployed at write.as, and hopefully will be included in the next WF release.

https://write.as/api/posts/cwywa5uwftdsovfb

silverpill

What is really hilarious is switching to a new protocol when your problem can be solved with 192 lines of JavaScript.

https://gleasonator.com/objects/e7fa6079-7c22-435f-9990-331620b00d31

silverpill

The deb package attached to 1.36.1 release contained a mitra binary with higher libc/libssl requirements, and it caused breakage on older systems.

I removed the 1.36.1 package and built a new one with statically linked binaries:

https://codeberg.org/silverpill/mitra/releases/tag/v1.36.2

silverpill

How to set up key-based identity in Mitra

Mitra implements a mechanism for migrating your connections from one server to another, which works even if your current server is offline. At the moment, this mechanism is only supported by Mitra. People who use different software won't be able to connect automatically to your new account, so the more of your contacts use #Mitra, the less connections you lose during migration. It's not very difficult for other developers to implement it though, and it's documented in FEP-7628 and FEP-c390.

For migration to work, two accounts must be linked to the same cryptographic key. To do that, you need to add a public key to your profile, then create a signature to prove the possession of the corresponding private key. You can think of this key as something that represents your primary identity and your fediverse accounts as temporary aliases. Mitra currently supports two signing tools: Minisign and Metamask.

Minisign

#Minisign is a command line tool. It might be difficult to use, but it is secure and doesn't violate your privacy.

1. Install Minisign. The tool is available in most Linux distros. For example, on Debian you can simply run apt install minisign.
2. Generate a key pair: minisign -G.
3. Go to your profile page, click on three dots to open the profile menu and select "Link minisign key".
4. Tell Minisign to export your public key:

minisign -R -f -p minisign.pub

Copy the text from minisign.pub file and paste it into the form. Press "Generate message" button.

5. Run displayed commands to create a signature. The first one (starting with printf) creates a file that needs to be signed. The second one

minisign -S -l -m message -x message.sig

creates a signature. Copy the text from message.sig file and paste it into the form. Press "Submit".

Now, back up your social graph. Go to "Settings" and scroll down to the "Export" section. Download both follows and followers lists.

Metamask

#Metamask is a browser extension and a cryptocurrency wallet. It leaks the hash of your public key to third parties, has non-free license and has other shortcomings.

However, it is much easier to use than Minisign. If you have it installed, just go to your profile page, open dropdown menu and select "Link ethereum address". Follow the instructions and approve the signature request. Done!

Migration

If you need to migrate your connections, repeat the linking procedure with your new account. Then go to "Settings", find the "Experiments" section with "Import follows" and "Move followers" buttons, and upload your previously backed up lists. That's all.

In the future more identity verification methods will be added. For example, a client may generate a private key for you, and let you back it up as a passphrase. This is less secure, because you have to trust the server admin to not steal your private key, but it is much easier than using Minisign. Arguably, the tradeoff is acceptable.

How to set up key-based identity in Mitra

Mitra implements a mechanism for migrating your connections from one server to another, which works even if your current server is offline. At the moment, this mechanism is only supported by Mitra. People who use different software won't be able to connect automatically to your new account, so the more of your contacts use #Mitra, the less connections you lose during migration. It's not very difficult for other developers to implement it though, and it's documented in

silverpill

FEP-7628: Move actor

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

This #FEP is an attempt to make a synthesis of various approaches to implementing portable identities on Fediverse: Mastodon's "Move to a different account" feature, Nomadic Identity in Hubzilla and Streams, and FEP-c390 identity proofs.

silverpill

I've made several improvements to FEP-ae97 (Client-side activity signing)

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

There is a new section now, "Server independent IDs". It explains how to make object IDs user-owned instead of server-owned, making data and identity fully portable.

#ActivityPub

silverpill

#Mitra 1.36.0

https://codeberg.org/silverpill/mitra/releases/tag/v1.36.0
https://codeberg.org/silverpill/mitra-web/releases/tag/v1.36.0

Highlights:

- Subscription payments can be sent from one instance to another (previously, navigating to recipient's instance was the only way to make a payment). See FEDERATION.md and FEP-0837 for details.
- Local timeline made accessible to guests (if enabled in config).

silverpill

SocialWeb working group had a meeting about the data portability:

https://www.w3.org/2023/09/13-social-minutes.html

FEP-c390 was discussed, among other things.

silverpill

Starting with version 1.35.0, #Mitra will support POSTing signed activities to actor's outbox, as described in FEP-ae97: Client-side activity signing. Currently, outboxes are very limited: only Update(Person) activities are accepted. They don't produce any side effects and are simply relayed to followers.
This is just a demo and I'm not planning to develop a client. However, someone else could build it, and in that case I will dedicate some time to improving outboxes and adding other C2S related features.

silverpill

FEP-67ff: FEDERATION.md

https://codeberg.org/fediverse/fep/src/branch/main/fep/67ff/fep-67ff.md

Yet another Fediverse Enhancement Proposal. FEDERATION.md file is used by some projects to document the federation protocol.

Here's the one I wrote for #Mitra: https://codeberg.org/silverpill/mitra/src/branch/main/FEDERATION.md

silverpill

https://github.com/cloudflare/wildebeest

Cloudflare didn't make it

>This project has been archived and is no longer actively maintained or supported

silverpill

#Mitra v1.6.0

https://codeberg.org/silverpill/mitra/releases/tag/v1.6.0

- Enabled search by actor ID.
- Added "Export" section to settings page, where follows and followers lists can be downloaded.
- Improved Monero payment page, enabled automatic refresh.
- Added check-expired-invoice command.
- Allowed to connect to monero-wallet-rpc when it runs without --wallet-dir option.
- Account migrations (user-signed Move() activities). This is an experimental feature which currently is hidden in the UI. Based on FEP-8b32 and FEP-c390 protocol extensions.

#Mitra v1.6.0

https://codeberg.org/silverpill/mitra/releases/tag/v1.6.0

- Enabled search by actor ID.
- Added "Export" section to settings page, where follows and followers lists can be downloaded.
- Improved Monero payment page, enabled automatic refresh.
- Added check-expired-invoice command.
- Allowed to connect to monero-wallet-rpc when it runs without --wallet-dir option.
- Account migrations (user-signed Move() activities). This is an experimental feature which currently is hidden in the UI. Based on

silverpill

Just migrated a test account from one instance to another. This migration was initiated from the new instance, and the corresponding Move() activity was signed with MetaMask wallet. No permission from the old server required.

Although this migration only moves the identity (during the migration followers should un-follow the old actor and follow the new one), data migrations can be implemented in a similar way.

silverpill

#Mitra v1.5.0

https://codeberg.org/silverpill/mitra/releases/tag/v1.5.0

- Added Settings page with Change password form. This form can also be used to add a password if you registered with Ethereum wallet.
- Added CLI command that deletes empty remote profiles to free disk space. A remote profile is considered empty if it doesn't have any posts, reactions or follow relationships with local profiles.
- Using multibase encoding for integrity proofs, as required by the standard. This change breaks backwards compatibility, but shouldn't affect anyone because proofs are still experimental feature.

#Mitra v1.5.0

https://codeberg.org/silverpill/mitra/releases/tag/v1.5.0

- Added Settings page with Change password form. This form can also be used to add a password if you registered with Ethereum wallet.
- Added CLI command that deletes empty remote profiles to free disk space. A remote profile is considered empty if it doesn't have any posts, reactions or follow relationships with local profiles.
- Using multibase encoding for integrity proofs, as required by the standard. This change breaks backwards...

silverpill

#Mitra can now process Move() activities.
This activity tells your followers to un-follow your old account and follow your new account when you're migrating from one instance to another. Mastodon can do that: https://docs.joinmastodon.org/user/moving/. I was unable to find any documentation or examples, and I've never seen this activity in the wild, so I just copied the logic from Pleroma.

The problem is that Move() activity must be signed by your old instance, and if the server is offline or if you're banned from it, there's no way to send it. To solve this problem, I want to let users sign activities with their own keys, so even if activity was sent from a new instance, it is still can be verified by other instances. There are two things that need to happen to make this possible:

- Embedded signatures. Mastodon can create them, but their implementation is not portable. There should be a clean and simple way to sign JSON object, otherwise embedded signatures will never be adopted in Fediverse.
- Identity proofs. This is a verifiable link between domain-based account and user's public key identity. Mitra already supports Ethereum identity proofs, and I'm planning to support GPG keys as well.

I've already started to work on signatures, and will create FEPs for each protocol extension (embedded signatures, identity proofs, user-signed move).

#Mitra can now process Move() activities.
This activity tells your followers to un-follow your old account and follow your new account when you're migrating from one instance to another. Mastodon can do that: https://docs.joinmastodon.org/user/moving/. I was unable to find any documentation or examples, and I've never seen this activity in the wild, so I just copied the logic from Pleroma.

silverpill

#Mitra v1.2.0

https://codeberg.org/silverpill/mitra/releases/tag/v1.2.0

- Added markdown parser to the backend. The client can specify content type when it creates the post: text/markdown or text/html. The latter type is still the default but support for it will likely be dropped in the future.
- Added support for object link microsyntax: [[url]]. The post may contain more than one link, but only the first link will be displayed as a quote on other instances. Example of such link: https://mitra.social/objects/0183de48-8756-9c31-65e8-c56369ac1abc
- Federation over Tor, I2P or Yggdrasil. I didn't test it, but it should work. This is not a multi-protocol federation: when your instance is onion instance, if can only federate with other onion instances. Multi-protocol federation is difficult to do and I'm not planning to work on it anytime soon. Instead, I decided to prioritize account portability in the next couple of months.

#Mitra v1.2.0

https://codeberg.org/silverpill/mitra/releases/tag/v1.2.0

- Added markdown parser to the backend. The client can specify content type when it creates the post: text/markdown or text/html. The latter type is still the default but support for it will likely be dropped in the future.
- Added support for object link microsyntax: [[url]]. The post may contain more than one link, but only the first link will be displayed as a quote on other instances. Example of such link: ...

Go Up