Loomio
Sat 16 Nov 2013 12:53PM

Central hub

JR Jason Robinson Public Seen by 122

Here is my proposal to create a central (opt-in) hub of information relating to pods in our little social network. Please read the full proposal before judging it ;)

I would like to vote on this as soon as all constructive comments relating to technical specifications is processed. I am prepared to code it and host it (until official servers exist).

Full proposal here: https://wiki.diasporafoundation.org/Central_hub

Ps. I created this in the main community group, not a subgroup, since I think this is something that all community members should be allowed to vote on without having to hassle with requesting subgroup rights.

JR

Jason Robinson Sat 16 Nov 2013 3:06PM

@bradkoehn That is why I suggest the hub is configurable already.

The MEAN stack is not something new or unknown - it is or at least the components used are becoming very popular. Node is HUGE and really the best tool for things like this, imho. Constantly someone is saying "I would participate but Ruby..." so I don't think the answer is to just build everything in one language. Ruby is also very resource hungry compared to a pure javascript implementation. There is a reason that Diaspora is made in rails - there is no reason the hub needs to be ;) Also there is no reason to not use something like MariaDB instead of Mongo.

Anyway, technical details can be decided on separately, that was just a suggestion. The main thing is to agree (or not agree) on the need for this.

But if it's in Ruby I cannot do it since it would take too much time - I don't have that much interest to learn more Ruby than I need since I want to concentrate on Python and JavaScript. I'll still offer to host it :)

R

RAM518 Sat 16 Nov 2013 6:42PM

This idea just flies in the face of the decentralized nature of D*, it seems.

JR

Jason Robinson Sat 16 Nov 2013 6:48PM

@ram518 how?

C

Crazypedia Sun 17 Nov 2013 12:59AM

couldnt much of this be done with an API (in the works, or so ive heard?) in that any one, or any server could ping any or all known pod's API to get this information, provided the admin has allowed this feature to be enabled? This would allow continued federation of information, and the option of a hidden pod or simply a pod tha has decided to opt out for privacy reasons.

JR

Jason Robinson Sun 17 Nov 2013 1:41AM

@jacobschleappi how would you know what pods to ping?
Also this proposal does not force anyone anything - please read the "opt-in" in the proposal mentioned many times.

DU

rekado Sun 17 Nov 2013 8:23AM

Isn't the proposal a bit "fat"? Pods can't query unknown pods directly for obvious reasons; to address this, much less work is required: one only needs to let pods "register" with any number of trackers and ship the Diaspora server code with a customisable list of such trackers. Everything else can then be negotiated pod to pod.

A tracker doesn't need to store anything about a pod except for the hostname and the time of last ping (to allow for record expiry).

DU

rekado Sun 17 Nov 2013 8:31AM

About pod registration: your proposal says this:

/register Pods will call with this initially when they want to register the pod. This call will be followed by the central hub calling back to check the pod is really a pod.

How would the hub be able to ensure that a) the party issuing the registration is a pod and b) speaks on behalf of the registered pod? Re a: is it a problem if a registering client behaves like a pod but is not? Re b: it should not be possible to register a pod you don't control. To demonstrate control, the creation of a DNS text record with a token could be sufficient to solve this problem.

This brings me to the next question: if this all only works for Diaspora pods and requires explicit consent --- why use REST? Pods are capable of much more complex communication than simple HTTP requests (e.g. stateless vs stateful).

JR

Jason Robinson Sun 17 Nov 2013 10:48AM

@rekado I think you (and everyone else who has commented) are missing the (main) point of the whole system - to gather metrics on the diaspora network. And in metrics it's not just about pods - it's about users. We cannot have reliable statistics towards the outside world without a reliable way of collecting them (from participating opt-in pods). Listing pods is another thing, collecting user counts is another.
Yes we could do as you say and have a gazillion of trackers. You can call this hub I propose a tracker because that is what it would be. I'm happy to have many trackers - but I don't see how that makes the system any better.

I'm going to create a vote on the public metrics thing - I should have started there. Clearly proposing something technical only made sure to hide the whole point of the proposal, eg the end result.

On the other questions;

How would the hub be able to ensure that a) the party issuing the registration is a pod and b) speaks on behalf of the registered pod?

Simple - it doesn't save the pod until it calls back. If the pod "speaks pod" - it's a pod. If it replies "wtf I don't want to be registered go away" - then clearly it did not make a request. This is the same way "verify your account by clicking the link in the email" works to ensure ownership (well, other direction, but same principle).

To demonstrate control, the creation of a DNS text record with a token could be sufficient to solve this problem.

We're gathering statistics, not solving privacy or authentication issues - no need to shoot a fly with a cannon :) Making pod admins have to modify their DNS just to register is a bit too much imho. But of course, the way I indicated was only an example - it would be nicer to agree on whether this thing is needed.

if this all only works for Diaspora pods and requires explicit consent — why use REST? Pods are capable of much more complex communication than simple HTTP requests (e.g. stateless vs stateful).

What would that achieve that a simple POST/GET would not? To be honest, I'd agree to anything, the end result is the most important. I just don't see the point of building complicated things to make something simple. We should leave the complicated things for the important stuff, eg Diaspora itself.

JR

Poll Created Sun 17 Nov 2013 10:55AM

Does the diaspora* network need statistics? Closed Mon 18 Nov 2013 7:48AM

Outcome
by Jason Robinson Tue 25 Apr 2017 5:51AM

Will do in my own repo

Ignoring all the technical details on how to accomplish this, please consider the following.

Would you want the diaspora* network to gather statistics from opt-in participating pods (with default being not participating in new pod configuration) about the following;

  • Name of pod
  • URL of pod
  • Registrations open / closed
  • Version
  • TOS (when implemented)
  • Amount of local users
  • Amount of local users active last 6 months

The statistics would be fully open to anyone with full transparency and possibility to opt-out for pods who change their minds.

Results

Results Option % of points Voters
Agree 50.0% 7 ST JR T M SM SVB A
Abstain 14.3% 2 JH PP
Disagree 35.7% 5 EK DU S L A
Block 0.0% 0  
Undecided 0% 255 BK FS MS TS AA S CB HF BO DM GC JH F RF M EG G AX PC BB

14 of 269 people have participated (5%)

JR

Jason Robinson
Agree
Sun 17 Nov 2013 11:10AM

On the anniversary of diaspora* as a community project we did lots of promotion. TechWeekEurope came back with one question - "How many users are there?". We replied that we don't know and can only guess, and not surprisingly they never wrote back.

Load More