Loomio
Thu 14 Aug 2014 12:42AM

Implement RFC7033 (webfinger)

MM Mike Macgirvin Public Seen by 268

I'm building some more federation tools that involve Diaspora and the fact that it runs an outdated webfinger service is increasingly turning into an issue. Most of the world has started to move towards RFC7033 since it was standardised last year - basically a JSON-based webfinger that allows you to lookup information for a single "pod" with one fetch.

Currently, if given a webbie (D* handle) the discovery process looks like:

  • try RFC7033
  • if that fails, fall back on https: host-meta webfinger
  • if that fails, try again using the http port
  • if you get something parse it.
  • This provides hardly any information except for a personal XRD template. Fill it in and then fetch the personal XRD file.
  • We can now discover it's Diaspora.
  • Since it's Diaspora we need to fetch the hcard and parse it for all the extra goodies like name and profile photo and visibility
  • If this were a statusnet connection we would need to also fetch/parse the atom feed to see if there's a pubsubhubbub server defined.
  • if all that fails, check if it's an email address

Anyway as you can see this starts to add up to a mountain of HTTP requests and invoking different parsers with different rules just to look up one person. Ideally it would be nice to get it all in one or at most two slurps of JSON. Then we can react in close to real time rather than queue the request in the background and report something like "And nobody was found".

It's OK to keep the old facility as it will take time for everybody to migrate and make use of the new one. It just makes the whole discovery process much simpler and less resource intensive.

This also doesn't really impact the "federation protocol" which I know is an open issue. No matter what D* does - if it supports any kind of user@host addressing going forward you're going to need webfinger. The new version is much more efficient than the old one in a number of ways and is almost trivial to implement.

ST

Sean Tilley
Agree
Mon 2 Feb 2015 11:04PM

It sounds like this could provide a huge improvement.

JH

Jonne Haß Sat 31 Jan 2015 1:29PM

Proposals are only necessary if there's controversy. I don't see any here.

A

aj Sun 1 Feb 2015 12:42AM

terrific! i sense that this would be worthwhile, webfinger seems to be evolving as an important part of basic interoperability with the growing 'federation', unfortunately my amazing technological abilities are of little use at this juncture :) only skilled ruby programmers may pull this off. :)