You are reading content from Scuttlebutt
@andrestaltz %qEzQaWhMuR33ebDoRorIBU8eB4StTXGrcooD3NrZOs4=.sha256

Introducing Rooms 2.0

#ssbroom #ssb-rooms #ssb-room

Dear butts, we bring some big news for SSB! The #ngipointer team has been working for the past 4 months on reinventing room servers, to improve onboarding and community safety.

Watch the introduction video narrated by @zelf:

room2-video-thumbnail.jpg

Links:

As an alternative to the video above, we're also posting here the video's transcript. :)

@andrestaltz %2AiNteeKrDg8o42g1v4M/5JbWNWHNUfKi2VasnPLN78=.sha256

Transcript

Hey everybody! I'm zelf, on behalf of the SSB NGI Pointer team. Today we want to share with you some exciting news!

We are launching Rooms 2.0, a new type of server to support SSB communities. Our goal was to make it easier for anyone to invite friends to connect over the internet. Let me share with you some historical context that led us to this point.

Connectivity in SSB

In a perfect decentralized internet, we can just do peer-to-peer over the internet. I could dial your IP address and that would connect me directly with you, like we do with phone numbers. But unfortunately, for most devices, especially mobile devices, this doesn't work. Your device's IP address either changes often, or it is masked behind a NAT, creating obstacles for me to connect to your address.

A lot of peer-to-peer systems out there use a solution called DHT to get around this problem. Inside a DHT, participants pass around information about each other and what they are looking for, and this allows them to discover who is online, making it easy to connect. But DHTs have problems, and Scuttlebutt has avoided using them. DHTs still have NAT complications, so they don't work with all routers and internet service providers out there. Also, privacy is a big concern on a DHT, because any random peer could discover what country or city you live in, based on your IP.

Traditionally, SSB has solved connectivity with the so called Pub servers. A pub is a normal scuttlebutt peer, with a public IP address and is online all the time. This way, connecting to it is very reliable. Pubs replicate user content and allow clients to download content too.

But we have experienced a number of problems with pubs. Hosting user data on a server is a risk. Pubs need to be GDPR compliant, and some users may upload unwelcome content there. Most pubs have been open for all, which is an entry point for unwanted strangers. If the pub is not open, it's still difficult for the average user to manage invites and members. Since pubs are just normal SSB peers, they were counted as your "friends", and this messed up the social graph, making it likely that you would download content from thousands of strangers, not actual friends-of-friends.

To solve some of these problems, in 2019 Andre Staltz created “room servers”. Compared to pubs, they host no user-data. All they do is give people the option to establish tunnelled connections with each other, to solve the NAT problem. The room is a lightweight intermediary: it can see who is talking to whom, but not the contents, since the tunnelled connections are end-to-end encrypted.

While rooms version 1 solved some problems with pubs, they didn’t solve access control. There was still no way to manage membership, so it was always open to strangers.

Rooms 2.0

We are now introducing rooms 2.0, which comes with a beautiful web dashboard to make it easy to create invite links, manage room members, and much more. There is also a new exciting feature called aliases, which gives you a human-friendly and global username. We think this is going to be great for onboarding.

There are four main features we want to show you: (1) How aliases work; (2) How to sign-in to the room dashboard using just your SSB ID; (3) How to create invites for friends to join; (4) And how room moderators can oversee and manage the members of a room.

The new room server is written in Go, and it's open source. @cryptix, @cblgh, and @andrestaltz did a great job at it and of course we welcome contributions. We also hope people can follow this repo to easily deploy their own room servers!

(...continuing below...)

@andrestaltz %lqLQf+PxxXiX1mO4gt57p/SqU0IzGoCxjJ7HX86kS00=.sha256

(...continuation:)

Aliases

So, lets talk about aliases!

SSB Identifiers are these long codes, and sometimes we try to share them on other social platforms. But the problem is that even if you copy-paste these IDs into your SSB app, that still doesn't create a connection with the peer, so you end up still not getting their data. What you need is both the ID and an invite code to a server. So you need 2 complicated codes to copy-paste, just to connect with a friend. With aliases, we're going to simplify all of this.

An alias is a web link, pointing to the room server. Each member of the room can have their own alias link. In this case, let's say you want to connect with staltz, his alias is staltz.hermies.club. When you visit that link, under the hood it will present to you an SSB URI that opens your SSB app automatically.

How about we see a demo of this working in practice? In your browser, type staltz.hermies.club
The website automatically asks you to open an SSB app that supports aliases, in this case, Manyverse.
The app opens, and then it immediately opens staltz's profile, and you're now directly connected with staltz! That's how simple it is!

Registering aliases

You can also register an alias! You just have to be an official member of the room, and you need an app that supports aliases. The first such app is Manyverse, so let's see how this works over there.

When you're connected to the room, open your profile screen, and then press "Edit profile". At the bottom, you'll see a button "Register new alias". Then, choose which room you want an alias, in this case let's pick "hermies.club". Input the name you want for your alias, submit it, and that's it! Now the new alias is shown on your profile, and you can put it anywhere on the web and it's a real link people can click.

Sign-in with SSB

Next, let's talk about sign-in with SSB, another feature exclusive for members of the room server.

hermies.club, like any other rooms 2.0 server, has a website with a beautiful frontpage. On the top right corner you can press Sign-in. There are two ways you can sign-in. There is the traditional username & password method, but let's take a look at sign-in with SSB.

If your desktop has an SSB app that supports this method, you can just press the green button. In this case, I don't have one on this desktop, but I can use my phone with Manyverse. I can scan the QR code on the desktop, and it will open the website on my phone. Just press the green button, and it will open Manyverse. I authorize the sign-in, and then the desktop is now signed in! Sweet!

As a signed-in member, there's lots of things I can do. I can create new invite links, for instance.

Invite management

An invite will allow my friend to become an official member of the room.

Here's how it works. On the signed-in website, I go to "Invites", then I press "Create new invite", and it gives me an invite link in this pink box. I can copy this link, and pass it to my friend. An invite link works only once, so remember to make one link for each friend you want to invite.

Then, my friend can just click the invite link. It will open a page on the room server, and then they just need to press "Join this room". It will open a compatible SSB app, in this case Manyverse, and it will automatically connect to the room. That it's! My friend is now an official member of the room, and they can also invite their own friends, register aliases, and so forth.

Member management

Some members are promoted to moderators, and they have the power to remove members. The role of moderators is to uphold the code of conduct. Let's take a look how moderation works!

On the website, there is a "Members" page where we can see all the current members. We can also open up the details for each member, check their SSB ID, and if they broke the code of conduct, the moderator can remove them. It's also easy to reinsert the member back, by inputting their SSB ID. Administrators can also promote a member to Moderator role. And, they can also remove aliases of a member.

We also support denying people any kind of access to a room, via a banned list. This makes it so that they cannot initiate tunnelled connections. For instance, they cannot even connect to alias links. We want rooms to create a safe environment for its members.

Extras

Rooms have some additional goodies, like support for multiple languages.

And the frontpage, the privacy policy, and the code of conduct can be easily edited by members. We implemented a simple content management system with support for markdown and localisation.

We really hope people will like hermies.club and we welcome folks to also deploy their own room 2.0 servers! This will be fantastic for scuttlebutt! Thanks for watching

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@mikey %kAVmXezalgnvLrqmrOeyCth7QybdKcTXoiIEQFDxEns=.sha256

incredible work, congrats team! 😺

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@The System %QGJt96BOg8ZNXxbkPVa5EPsOg5m9cwxDlZuSVc4aVIw=.sha256
Voted ## Introducing Rooms 2.0 #ssbroom #ssb-rooms #ssb-room Dear butts, we bri
Join Scuttlebutt now