Skip to content

Support multiple server and identities connections #109

Description

@soapdog

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:

Activity

  1. added
    metaaggregates other issues under a common topic
    tier-2secondary priority
    on May 27, 2021
  2. soapdog commented on Jul 22, 2021

    @soapdog
    OwnerAuthor

    omg, this actually works.

  3. soapdog commented on Jul 22, 2021

    @soapdog
    OwnerAuthor

    There is more info at %Xt+Ywb5QMLD5Wz1JGNY2aKzZrdyfZo0kPJCXtcX1jlI=.sha256 or you can simply watch the video at https://www.youtube.com/watch?v=aNIXQH1fX_A

  4. rmdes commented on Feb 23, 2022

    @rmdes

    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 !

    image

    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 :
    image
    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 :)

    image

  5. soapdog commented on Feb 23, 2022

    @soapdog
    OwnerAuthor

    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.

  6. soapdog commented on Feb 23, 2022

    @soapdog
    OwnerAuthor

    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)

  7. rmdes commented on Feb 23, 2022

    @rmdes

    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...

  8. rmdes commented on Feb 23, 2022

    @rmdes

    Damn...now I can't remove the Manyverse ID without the server crashing :/

  9. soapdog commented on Feb 23, 2022

    @soapdog
    OwnerAuthor

    @rmdes

    image

    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.

  10. rmdes commented on Feb 23, 2022

    @rmdes

    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.

  11. rmdes commented on Feb 23, 2022

    @rmdes

    Hmm can you try again now ?
    image

  12. rmdes commented on Feb 23, 2022

    @rmdes

    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 :)

  13. soapdog commented on Feb 23, 2022

    @soapdog
    OwnerAuthor

    @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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    metaaggregates other issues under a common topictier-2secondary priority

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions