patchfox
patchfox copied to clipboard
Support multiple server and identities connections
This has been outlined originally in the new funding proposal of 2021: %Y2iyBckEhcWvxX6a1+9ELeP6wFYD80QNdhvR50V1C7E=.sha256.
Multiple identity support
There I said it, let’s make it bold MULTIPLE IDENTITIES. Now, the developers reading this, please get your heads back into their natural position, all of you turned them to the side while reading this.
How will this work: Patchfox is a client-only client, and it will remain so. What I’ll implement is: if you run multiple servers on the same machine, such as running js sbot on a port and golang sbot on a different port, Patchfox will leverage the browser multiple tabs to connect to both of them.
Already in Patchfox, each tab opens its own connection to the running ssb server. It uses the saved identity. By saving multiple identities, the user would be able to open new tabs using some specific saved identity, thus connecting to a different local server.
SSB support is already contained in /core/platforms/ssb. To support go-ssb, I’d make a core/platforms/go-ssb that exposed the same high-level API as the other one. When connecting to a server, Patchfox would decide which identity and platform should be used, and all the rest would remain the same (after some refactoring for packages that access sbot directly).
THIS CAN WORK. This will help go-ssb development. This will help any kind of new server development.
For this feature to be completed, the following issues need to be closed:
- [ ] #104 - Find all uses of direct
sbotaccess. - [ ] #105 - Improve
nodejs-ssbplatform. - [x] #106 - Create flag for packages to detect which platform is being used.
- [x] #107 - Refactor settings package to account for multiple identities.
- [x] #108 - Refactor add-on initialization to cater for multiple platforms and identities.
omg, this actually works.
There is more info at %Xt+Ywb5QMLD5Wz1JGNY2aKzZrdyfZo0kPJCXtcX1jlI=.sha256 or you can simply watch the video at https://www.youtube.com/watch?v=aNIXQH1fX_A
Added my local npm ssb-server ID, it seems to be working now I want to add my previous .ssb/secrets that was originally a go-ssb server that was detected by manyverse desktop and migrated to manyverse, do you know anything about adding such ID to Patchfox, or is this going to create conflict ?
edit : ok, for anyone else looking for this, manyverse ID is located (on linux) ~/.config/manyverse/ssb/secrets
Multi identity works !

So I have these two ID's, first one is the one running npm ssb-server second one is from Manyverse
I can use the localhost one, but the moment I switch to the manyverse ID, Patchfox freaks out with errors, such as :
basically, most of the patchfox navmenu is gone and on the PatchFox main menu, each menu item, when clicked does not react in any way.
If I go back to the first identity, Patchfox is fine :)

Patchfox can't connect to Manyverse because Manyverse is not listening on WebSockets. Most of the other SSB apps listen on WebSockets and TCP. Unfortunately web apps (and add-ons) don't have access to raw TCP connections, thus making it impossible to connect to Manyverse.
Be aware that the support for multiple servers and identities is on-going. At the moment, Patchfox only supports NodeJS-based SSB Servers. I'm adding support for go-ssb and browser-ssb, but those are not ready. Patchfox can connect to servers from Patchwork, Scuttle Shell, Patchfoo, Oasis, Patchbay, or running your own server manually from the command-line.
oh, I see you created a browser-ssb identity. That is not really working (at the moment it is just a copy of nodejs-ssb, so there is no point in selecting it)
Hmmm, about the identity I created
- npm ssb-server start (very new identity just to have a local one for Patchfox) @uYjfw6MrLmFF7SmMZuNwf/TWOjrswWURucWUbeQaOdM=.ed25519
- what I set in Patchfox to be a "browser-ssb" identity is in fact my one year old SSB identity, initially created using ssb-server or oasis I can't remember, this is the identity that got migrated when I installed Manyverse desktop. @55rUB+qPLeXp8JBxHM0pOB7iOgVgetWHGYWdEQXG3fw=.ed25519
Based on your input I removed it from patchfox.
Now I'm wondering how to connect from patchfox to an ssb-go-room server : ssb.armada.digital (you can create your own invites) but they don't work with patchfox, I already tried to edit it and make it look like public Pub invites but it's not working, I'm probably missing something...
Damn...now I can't remove the Manyverse ID without the server crashing :/
@rmdes
ssb.armada.digital is failing CORS requests, that is why it is not working.
As for removing identities, I'll check here it appears the button is broken. At least here the button appears not to be wired up.
Hmmm that's gonna be a mess to fix.. How did you find out? I mean how did you used the generated invite with Patchfox to see the CORS errors?
In my stack, on the container that runs ssb-go-room I can fine-tune CORS for each container, but I'm not sure what should I add there..
Going to investigate.
Hmm can you try again now ?

Tried several ways (including wildcard) to allow same-origin, also tried with the domain itself, but I can't join.. Going to ask advice on another forum :)
@rmdes just letting you know that I'm about to go on a mini vacation here and will be back only on Monday. I won't be able to look into this until I get back.