Using "nodeinfo" to check if other servers are supporting Diaspora?

Currently “nodeinfo” is mostly used for usage statistics, I guess. But we could use it for more. There is software out there that can - but don’t need to - work with Diaspora, like Hubzilla and Friendica.

Problem is that you can add users from these systems even if they haven’t activated the Diaspora protocol.

I think it would be best if all servers who speak the Diaspora protocol (Diaspora, Friendica, Hubzilla) would publish a basic “nodeinfo” dataset including the “protocols” part.

In some further step systems could check the remote systems for compatibility with the protocol when adding a profile.

In Friendica we now started with this: https://github.com/friendica/friendica/pull/3269

The basic nodeinfo set that we will now return looks like this:

{
  "version": "1.0",
  "software": {
    "name": "friendica",
    "version": "3.5.2-dev-1216"
  },
  "protocols": {
    "inbound": [
      "diaspora",
      "friendica",
      "gnusocial"
    ],
    "outbound": [
      "diaspora",
      "friendica",
      "gnusocial"
    ]
  },
  "services": {
    "inbound": [],
    "outbound": []
  },
  "usage": [],
  "openRegistrations": false,
  "metadata": {
    "nodeName": "pirati.ca - social networking for pirates"
  }
}

It would be great if Diaspora could expose this data at every time as well. Then I would contact Hubzilla to ask them to do so as well.

Looks to me like we are already doing what you are asking for:

https://pod.omgsrsly.net/nodeinfo/1.0

{
  "version": "1.0",
  "software": {
    "name": "diaspora",
    "version": "0.6.99.0-pb6b8faf3"
  },
  "protocols": {
    "inbound": [
      "diaspora"
    ],
    "outbound": [
      "diaspora"
    ]
  },
  "services": {
    "inbound": [],
    "outbound": []
  },
  "openRegistrations": false,
  "usage": {
    "users": {
      "total": 8,
      "activeHalfyear": 4,
      "activeMonth": 2
    }
  },
  "metadata": {
    "nodeName": "omgsrsly.net",
    "xmppChat": false
  }
}

Am I missing anything?

Question is if the nodeinfo has to be activated. Or is it always enabled on recent Diaspora servers and can’t be deactivated?

NodeInfo has been implemented in #6239 and has been released with version 0.5.3.0. You can disable some statistics (user count, post count, comment count) but NodeInfo should be always available.

Do you have an example of a server that only exposes the minimal data? I would like to keep Friendica similar to this.

So you think that we can rely on nodeinfo being exposed on all recent servers? That would be great.

Just pick a server from https://the-federation.info/diaspora that doesn’t expose any user stats like https://diapod.net/nodeinfo/1.0.

@supertux88 explained in #7120 (comment) that he is planning to use NodeInfo for the federation as well so we will also rely on NodeInfo, although currently we don’t rely on it.

Sounds like @supertux88 and me we are brothers in mind :wink:

3 Likes

Yes, diaspora already exposes the needed information. And I think we can add a check in the future, to only federate to pods that support the diaspora-protocol in nodeinfo. :slight_smile:

1 Like

I created a PR for NodeInfo 2.0 to make it possible for other (new) projects to support the diaspora-protocol (or any other existing protocol):

https://github.com/jhass/nodeinfo/pull/17

2 Likes