Devise some way for the browser proxy to forward metadata to the bridge before the OR data
What does a user in that graph refer to? A connection from a unique ip? Part of the Flashproxy/Snowflake model is that the proxies will be ephemeral (and hard to block) so a single user session may rotate through several proxies, corresponding to several unique ips. I can imagine that messing with the numbers.
Connections from multiple ephemeral IP address won't cause a problem for counting the total number of users. As Karsten says, that figure is driven by clients' consensus downloads, which aren't related to the specifics of the connection.
What will get messed up is if we report the proxy IP addresses as if they were client IP addresses. Then we'll be counting the countries of the browser proxies, not of real users. My thinking was that for the time being, we just ignore that issue by not reporting an IP address through the ExtORPort. I.e.,
pt.DialOr(&ptInfo, "", "snowflake")
// https://godoc.org/git.torproject.org/pluggable-transports/goptlib.git#DialOr
In this way, we will not get per-country info, but the total number of snowflake users will be correct.
In order to report true client IP addresses, we will need to devise some way for the browser proxy to forward that metadata to the bridge before the OR data.