UWNetworksLab / uProxy-p2p

Internet without borders
https://www.uproxy.org/
Apache License 2.0
866 stars 180 forks source link

Create cronjob to generate daily reports #2675

Open fortuna opened 8 years ago

fortuna commented 8 years ago

Information on how to do Node AppEngine cron jobs can be found at Scheduling Jobs with cron.yaml.

We need to figure out the timing of the reports. We can't generate the report continuously, since that gives away low-granularity time information by diffing consecutive reports. I bucket the reports by date on the clients time-zone. Which means you will continue to receive reports for a date until the last timezone changes the day.

Don't forget to secure the endpoint. See Securing URLs for cron.

fortuna commented 8 years ago

By the way, in the interest of preserving privacy, we may want to not generate 1-week and 4-weeks metrics daily. This significantly reduces the overlap between reports and the sensitivity of a single event in Differential Privacy terms:

If we add noise to each metric to make the report ϵ-differentially private, each metric will be in the ±2.99573 × sensitivity / ϵ range with 95% confidence. For ϵ = 1, that means ~ ±18 for sensitivity = 6 and ±9 for sensitivity = 3.

It's still not clear to me what ϵ we should choose. This may clarify: Differential Privacy: An Economic Method for Choosing Epsilon