silverpill on Nostr: Fediverse & P2P Nomadic identity is a nice feature, but FEP-ef61: Portable Objects is ...
Fediverse & P2P
Nomadic identity is a nice feature, but FEP-ef61: Portable Objects is not limited to that. The intention was always to allow peer to peer communication without servers. This is why the protocol was designed to be transport-agnostic: you can use fediverse servers to deliver activities, but you can also use emails, torrents or USB sticks.
To explore these possibilities, I added a simple P2P synchronization mode to Mitra Mini, which allows clients to exchange activities via a shared directory. This doesn't mean that clients should run on the same machine. Syncthing is a tool for P2P file synchronization that can be used to share a directory between multiple machines, and it should work well for our use case.
The P2P mode is available in Mitra Mini v0.4.0. You can use a pre-compiled binary, which is now self-contained and includes the mitra-web frontend. See installation instructions in the readme. To enable P2P mode, add the following block to your configuration file:
[federation]
p2p_shared_outbox = "/path/to/shared/directory"
Registering on a web gateway is not necessary when working in P2P mode, but you need to specify it in the config, because a lot of legacy code still depends on that.
If you'd like to connect, DM me your Syncthing device ID (it can be used in a Whonix VM to prevent IP address leaks).
#fep_ef61 #p2p
Mitra Mini v0.4.0
https://codeberg.org/silverpill/minimitra/releases/tag/v0.4.0
- The binary is now entirely self-contained. It includes the default configuration file and a prebuilt mitra-web client. The installation procedure is described in the readme file.
- Support for P2P mode where synchronization happens via a shared directory.
Published at
2026-05-02 17:00:31 UTCEvent JSON
{
"id": "9023eaff84c20009c8bf8c94428f6cdc59696b7013cc53bac2406f6196bf8fb7",
"pubkey": "6a5f35dc281276c30c527e1240ef6bad3ef27bcf92b4fef017dc7f5a5c31e5ec",
"created_at": 1777741231,
"kind": 1,
"tags": [
[
"q",
"709514b174e59bd4ff65338c91ace43ce03b754ae5e1642aa02e6aec3a16e3ab",
"wss://relay.ditto.pub"
],
[
"t",
"p2p"
],
[
"t",
"fep_ef61"
],
[
"proxy",
"https://mitra.social/objects/019de9a2-7769-7713-85c9-ad8e8599268d",
"activitypub"
],
[
"client",
"Mostr",
"31990:6be38f8c63df7dbf84db7ec4a6e6fbbd8d19dca3b980efad18585c46f04b26f9:mostr",
"wss://relay.ditto.pub"
]
],
"content": "Fediverse \u0026 P2P\n\nNomadic identity is a nice feature, but FEP-ef61: Portable Objects is not limited to that. The intention was always to allow peer to peer communication without servers. This is why the protocol was designed to be transport-agnostic: you can use fediverse servers to deliver activities, but you can also use emails, torrents or USB sticks.\n\nTo explore these possibilities, I added a simple P2P synchronization mode to Mitra Mini, which allows clients to exchange activities via a shared directory. This doesn't mean that clients should run on the same machine. Syncthing is a tool for P2P file synchronization that can be used to share a directory between multiple machines, and it should work well for our use case.\n\nThe P2P mode is available in Mitra Mini v0.4.0. You can use a pre-compiled binary, which is now self-contained and includes the mitra-web frontend. See installation instructions in the readme. To enable P2P mode, add the following block to your configuration file:\n\n[federation]\np2p_shared_outbox = \"/path/to/shared/directory\"\n\n\nRegistering on a web gateway is not necessary when working in P2P mode, but you need to specify it in the config, because a lot of legacy code still depends on that.\n\nIf you'd like to connect, DM me your Syncthing device ID (it can be used in a Whonix VM to prevent IP address leaks).\n\n#fep_ef61 #p2p\n\nnostr:nevent1qy2hwumn8ghj7un9d3shjtnyd968gmewwp6kyqpqwz23fvt5ukdaflm9xwxfrt8y8nsrka22uhskg24q9e4wcwskuw4szdsyra",
"sig": "4c5f36249db71e76cfc53a19fe247c37e8fb6482480369db634f763fb5111512725382593c53129987303422d6d2827536275bfe6518da0591467f0c986ec30d"
}