On Wed, Aug 17, 2016, at 11:01 AM, Alexander Færøy wrote:
There is, to my knowledge, currently only one implementation of Tor that is actively in use on the production network, which is the C implementation. I'm aware of a Haskell implementation made by Galois,
Not sure how widely implemented it is, but Orchid was a formally implemented version of Tor in Java, by the Toronto-based Subgraph group: https://subgraph.com/orchid/index.en.html
It was, at one point, integrated into the Martus human rights documentation platform.
The developers are likely on this list, or if not, easily reachable to ask for any lessons learned.
+n
On 18 Aug 2016, at 05:23, Nathan Freitas nathan@freitas.net wrote:
On Wed, Aug 17, 2016, at 11:01 AM, Alexander Færøy wrote:
There is, to my knowledge, currently only one implementation of Tor that is actively in use on the production network, which is the C implementation. I'm aware of a Haskell implementation made by Galois,
Not sure how widely implemented it is, but Orchid was a formally implemented version of Tor in Java, by the Toronto-based Subgraph group: https://subgraph.com/orchid/index.en.html
It was, at one point, integrated into the Martus human rights documentation platform.
The developers are likely on this list, or if not, easily reachable to ask for any lessons learned.
Tor uses the version in the platform string to detect features, so some alternative implementations claim to be a particular Tor version. Other alternative implementations might not report a version at all.
At the moment, I see the following platforms reported on the network:
Tor 0.2.4.19 on Windows XP,65833 ... Tor 0.2.9.1-alpha-dev on OpenBSD,1928192 node-Tor 0.1.0 on Linux x86_64,168444
So it appears that node-Tor is still going strong. And everything else just wants to blend in.
A stem script to generate the full list is:
-----
import sys from stem.descriptor.remote import DescriptorDownloader
def get_bw_to_platform(): bw_to_platform = {} downloader = DescriptorDownloader() try: for desc in downloader.get_server_descriptors().run(): if bw_to_platform.has_key(desc.platform): bw_to_platform[desc.platform] += desc.observed_bandwidth else: bw_to_platform[desc.platform] = desc.observed_bandwidth except Exception as exc: print("Unable to retrieve the server descriptors: %s" % exc) return bw_to_platform
bw_to_platform = get_bw_to_platform() for platform in sorted(bw_to_platform.keys()): print("%s,%i" % (platform, bw_to_platform[platform]))
-----
Tim
Tim Wilson-Brown (teor)
teor2345 at gmail dot com PGP C855 6CED 5D90 A0C5 29F6 4D43 450C BA7F 968F 094B ricochet:ekmygaiu4rzgsk6n xmpp: teor at torproject dot org