Mostr bridge now publishes a Zap event to ActivityPub. You have to do Nostr stuff to valiadate it, but it’s a step.
@3baabe4d008648b5438bfe3180e3d443cbc36478fbabb65007099a96a1c56922 I started on that here: https://gitlab.com/soapbox-pub/nostrverse
I’m trying to change Soapbox minimally so it stays compatible with Mastodon and Rebased. But the main problem is signing events. Submitting a status isn’t the same as submitting an event. So what we can do is send the private key to the server (that’s how this demo works), but that isn’t a great solution. Another idea I had was to have the server send websocket “signature request” events to the client, then the client only has to implement event signing in one place. This is probably the cleanest solution, but clients will have to update to support it.
As far as deduplication with the bridge, there’s already an issue to “opt out” of the bridge: https://gitlab.com/soapbox-pub/mostr/-/issues/26 Once implemented, hybrid AP/Nostr accounts should just opt-out.
I’m less interested in building a hybrid backend than I am making Soapbox work with Nostr, tho.
@alex @3baabe4d008648b5438bfe3180e3d443cbc36478fbabb65007099a96a1c56922
I've been researching and planning to write an XMPP-Nostr gateway and ran into the same issues and had similar ideas to you.
The signing requirement makes Nostr incompatible with other protocols if you want the user to control their keys and your gateway to not know them.
@alex @3baabe4d008648b5438bfe3180e3d443cbc36478fbabb65007099a96a1c56922
Like you, I also thought about letting the XMPP-Nostr gateway send a "signing request" to the XMPP client so that the user can sign it. In the end, I decided against it, because the client *should* verify what it's signing, and if it does that, it actually understands Nostr and might as well construct the Nostr event itself, without the extra steps of a signing equest.
@alex @3baabe4d008648b5438bfe3180e3d443cbc36478fbabb65007099a96a1c56922
Ultimately I came to the conclusion to drop the gateway and do something that I call Nostr-over-XMPP.
Basically wrapping signed Nostr events inside XMPP messages.
This breaks compatibility with vanilla XMPP clients, but you get some XMPP features to your Nostr account, like a contacts roster, nicknames, blocklists, message history etc.
@alex @3baabe4d008648b5438bfe3180e3d443cbc36478fbabb65007099a96a1c56922
Sorry, just to clarify.
If done right, it actually doesn't break compatibility with vanilla XMPP clients, it just means you can't use vanilla XMPP clients to send messages to the Nostr network.
But vanilla clients could read such messages if they include corresponding XMPP payload data so that vanilla XMPP clients understand that part while ignoring the Nostr data.