Email or username:

Password:

Forgot your password?
211 posts total
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: ...

silverpill
Mastodon: subscriber-only post is working as expected, displayed as a direct message.
silverpill
#Mitra v0.10.0

https://codeberg.org/silverpill/mitra/releases/tag/v0.10.0

- Show "Subscribe" button on profile page if subscriptions are enabled (works for both local and remote profiles).
silverpill
I've finally connected my Mitra instance to a real blockchain and configured the subscription service. The blockchain is Polygon PoS which is EVM-compatible #Ethereum sidechain. It is fast and cheap - ideal for payments. Of course this comes at the cost of decentralization so it's not a good choice for storing large amounts of money.
This is my subscription page: https://mitra.social/profile/dd4ebc18-269d-4c7b-a310-03d29c6ab551/subscription. It accepts payments in WMATIC token which is a ERC-20 version of MATIC, the native currency of Polygon blockchain.
Yesterday I successfully started a payment stream from my account on another Mitra instance. You can try that too. The server will recognize your payment if you have ethereum address in your profile (in the $ETH field). Then you will be able to see my subscriber-only posts, though I don't think I will use paywall for anything other than testing this feature.
The contracts can be found here: https://codeberg.org/silverpill/mitra-contracts (I'm using AdapterMini variant).
I've finally connected my Mitra instance to a real blockchain and configured the subscription service. The blockchain is Polygon PoS which is EVM-compatible #Ethereum sidechain. It is fast and cheap - ideal for payments. Of course this comes at the cost of decentralization so it's not a good choice for storing large amounts of money.
Go Up