{"id":2110,"date":"2017-12-11T11:56:20","date_gmt":"2017-12-11T09:56:20","guid":{"rendered":"http:\/\/www.void.gr\/kargig\/blog\/?p=2110"},"modified":"2017-12-11T18:38:19","modified_gmt":"2017-12-11T16:38:19","slug":"tormap-world-map-of-tor-nodes-5-years-later","status":"publish","type":"post","link":"https:\/\/www.void.gr\/kargig\/blog\/2017\/12\/11\/tormap-world-map-of-tor-nodes-5-years-later\/","title":{"rendered":"Tormap &#8211; World map of Tor nodes &#8211; 5 years later"},"content":{"rendered":"<p>5 years ago I forked <a href=\"https:\/\/github.com\/moba\/tormap\" target=\"_blank\" rel=\"noopener\">Moritz&#8217;s tormap project<\/a>, updated it a bit and <a href=\"https:\/\/www.void.gr\/kargig\/blog\/2012\/11\/27\/world-city-map-of-tor-nodes\/\">wrote about it<\/a>. <a href=\"https:\/\/tormap.void.gr\" target=\"_blank\" rel=\"noopener\">Tormap<\/a> kept running for years until some changes in googlemaps broke it, not all KMLs were loading as they should. I later on figured out that googlemaps didn&#8217;t like that some of the KML files were larger than 3Mb. I didn&#8217;t have much time to play with it until recently, so a few days ago I decided to make it work again. I used newer googlemaps v3 API calls and compressed KML (KMZ) files to make it\u00a0work. Then <a href=\"https:\/\/twitter.com\/iainlearmonth\" target=\"_blank\" rel=\"noopener\">@iainlearmonth<\/a> and <a href=\"https:\/\/twitter.com\/nusenu_\" target=\"_blank\" rel=\"noopener\">@nusenu_ <\/a> suggested making even more changes&#8230;<\/p>\n<p>Their first suggestion was to use <a href=\"https:\/\/metrics.torproject.org\/onionoo.html\" target=\"_blank\" rel=\"noopener\">onionoo<\/a> instead of parsing consensus on my own and running geoip on it, onionoo already provides that in a nice json output. Their other suggestion was to switch tormap to use <a href=\"https:\/\/www.openstreetmap.org\/\" target=\"_blank\" rel=\"noopener\">OpenStretMap<\/a> instead of googlemaps mostly because googlemaps block some Tor exit nodes and the tiles didn&#8217;t appear on the map when visiting over Tor. Both of these issues are fixed now.<\/p>\n<p>I used <a href=\"http:\/\/leafletjs.com\/\" target=\"_blank\" rel=\"noopener\">leaflet.js<\/a> and a couple of plugins like <a href=\"https:\/\/github.com\/shramov\/leaflet-plugins\" target=\"_blank\" rel=\"noopener\">leaflet-plugins<\/a> (for KML parsing) and <a href=\"https:\/\/github.com\/pointhi\/leaflet-color-markers\" target=\"_blank\" rel=\"noopener\">leaflet-color-markers<\/a> for the switch to OpenStreetMap. I will admit that using googlemaps APIs was far more convenient for someone without any javascript knowledge like me.<\/p>\n<p>Maybe in the next 5 years I will have time again to implement their other suggestion, <a href=\"https:\/\/github.com\/kargig\/tormap\/issues\/2\">creating maps of nodes based on custom searches for relay attributes<\/a>. Unless someone else wants to implement that, feel free to fork it!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>5 years ago I forked Moritz&#8217;s tormap project, updated it a bit and wrote about it. Tormap kept running for years until some changes in googlemaps broke it, not all KMLs were loading as they should. I later on figured out that googlemaps didn&#8217;t like that some of the KML files were larger than 3Mb. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ep_exclude_from_search":false,"footnotes":""},"categories":[5,3,8,4],"tags":[623,222,536,599,621,622,596,146,474],"class_list":["post-2110","post","type-post","status-publish","format-standard","hentry","category-internet","category-linux","category-networking","category-privacy","tag-googlemaps","tag-javascript","tag-map","tag-networking","tag-openstretmap","tag-osm","tag-privacy","tag-python","tag-tor"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"5 years ago I forked Moritz&#039;s tormap project, updated it a bit and wrote about it. Tormap kept running for years until some changes in googlemaps broke it, not all KMLs were loading as they should. I later on figured out that googlemaps didn&#039;t like that some of the KML files were larger than 3Mb.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"kargig\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.void.gr\/kargig\/blog\/2017\/12\/11\/tormap-world-map-of-tor-nodes-5-years-later\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/2017\\\/12\\\/11\\\/tormap-world-map-of-tor-nodes-5-years-later\\\/#article\",\"name\":\"Tormap \\u2013 World map of Tor nodes \\u2013 5 years later | Into.the.Void.\",\"headline\":\"Tormap &#8211; World map of Tor nodes &#8211; 5 years later\",\"author\":{\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/author\\\/site-admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/#organization\"},\"datePublished\":\"2017-12-11T11:56:20+02:00\",\"dateModified\":\"2017-12-11T18:38:19+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/2017\\\/12\\\/11\\\/tormap-world-map-of-tor-nodes-5-years-later\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/2017\\\/12\\\/11\\\/tormap-world-map-of-tor-nodes-5-years-later\\\/#webpage\"},\"articleSection\":\"Internet, Linux, Networking, Privacy, googlemaps, javascript, map, Networking, OpenStretMap, OSM, Privacy, python, tor\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/2017\\\/12\\\/11\\\/tormap-world-map-of-tor-nodes-5-years-later\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/category\\\/linux\\\/#listItem\",\"name\":\"Linux\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/category\\\/linux\\\/#listItem\",\"position\":2,\"name\":\"Linux\",\"item\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/category\\\/linux\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/2017\\\/12\\\/11\\\/tormap-world-map-of-tor-nodes-5-years-later\\\/#listItem\",\"name\":\"Tormap &#8211; World map of Tor nodes &#8211; 5 years later\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/2017\\\/12\\\/11\\\/tormap-world-map-of-tor-nodes-5-years-later\\\/#listItem\",\"position\":3,\"name\":\"Tormap &#8211; World map of Tor nodes &#8211; 5 years later\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/category\\\/linux\\\/#listItem\",\"name\":\"Linux\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/#organization\",\"name\":\"Into.the.Void.\",\"description\":\"Into The Void\",\"url\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/kargig\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/author\\\/site-admin\\\/#author\",\"url\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/author\\\/site-admin\\\/\",\"name\":\"kargig\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/2017\\\/12\\\/11\\\/tormap-world-map-of-tor-nodes-5-years-later\\\/#webpage\",\"url\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/2017\\\/12\\\/11\\\/tormap-world-map-of-tor-nodes-5-years-later\\\/\",\"name\":\"Tormap \\u2013 World map of Tor nodes \\u2013 5 years later | Into.the.Void.\",\"description\":\"5 years ago I forked Moritz's tormap project, updated it a bit and wrote about it. Tormap kept running for years until some changes in googlemaps broke it, not all KMLs were loading as they should. I later on figured out that googlemaps didn't like that some of the KML files were larger than 3Mb.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/2017\\\/12\\\/11\\\/tormap-world-map-of-tor-nodes-5-years-later\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/author\\\/site-admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/author\\\/site-admin\\\/#author\"},\"datePublished\":\"2017-12-11T11:56:20+02:00\",\"dateModified\":\"2017-12-11T18:38:19+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/\",\"name\":\"Into.the.Void.\",\"description\":\"Into The Void\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.void.gr\\\/kargig\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Tormap \u2013 World map of Tor nodes \u2013 5 years later | Into.the.Void.","description":"5 years ago I forked Moritz's tormap project, updated it a bit and wrote about it. Tormap kept running for years until some changes in googlemaps broke it, not all KMLs were loading as they should. I later on figured out that googlemaps didn't like that some of the KML files were larger than 3Mb.","canonical_url":"https:\/\/www.void.gr\/kargig\/blog\/2017\/12\/11\/tormap-world-map-of-tor-nodes-5-years-later\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.void.gr\/kargig\/blog\/2017\/12\/11\/tormap-world-map-of-tor-nodes-5-years-later\/#article","name":"Tormap \u2013 World map of Tor nodes \u2013 5 years later | Into.the.Void.","headline":"Tormap &#8211; World map of Tor nodes &#8211; 5 years later","author":{"@id":"https:\/\/www.void.gr\/kargig\/blog\/author\/site-admin\/#author"},"publisher":{"@id":"https:\/\/www.void.gr\/kargig\/blog\/#organization"},"datePublished":"2017-12-11T11:56:20+02:00","dateModified":"2017-12-11T18:38:19+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.void.gr\/kargig\/blog\/2017\/12\/11\/tormap-world-map-of-tor-nodes-5-years-later\/#webpage"},"isPartOf":{"@id":"https:\/\/www.void.gr\/kargig\/blog\/2017\/12\/11\/tormap-world-map-of-tor-nodes-5-years-later\/#webpage"},"articleSection":"Internet, Linux, Networking, Privacy, googlemaps, javascript, map, Networking, OpenStretMap, OSM, Privacy, python, tor"},{"@type":"BreadcrumbList","@id":"https:\/\/www.void.gr\/kargig\/blog\/2017\/12\/11\/tormap-world-map-of-tor-nodes-5-years-later\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.void.gr\/kargig\/blog\/#listItem","position":1,"name":"Home","item":"https:\/\/www.void.gr\/kargig\/blog\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.void.gr\/kargig\/blog\/category\/linux\/#listItem","name":"Linux"}},{"@type":"ListItem","@id":"https:\/\/www.void.gr\/kargig\/blog\/category\/linux\/#listItem","position":2,"name":"Linux","item":"https:\/\/www.void.gr\/kargig\/blog\/category\/linux\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.void.gr\/kargig\/blog\/2017\/12\/11\/tormap-world-map-of-tor-nodes-5-years-later\/#listItem","name":"Tormap &#8211; World map of Tor nodes &#8211; 5 years later"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.void.gr\/kargig\/blog\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.void.gr\/kargig\/blog\/2017\/12\/11\/tormap-world-map-of-tor-nodes-5-years-later\/#listItem","position":3,"name":"Tormap &#8211; World map of Tor nodes &#8211; 5 years later","previousItem":{"@type":"ListItem","@id":"https:\/\/www.void.gr\/kargig\/blog\/category\/linux\/#listItem","name":"Linux"}}]},{"@type":"Organization","@id":"https:\/\/www.void.gr\/kargig\/blog\/#organization","name":"Into.the.Void.","description":"Into The Void","url":"https:\/\/www.void.gr\/kargig\/blog\/","sameAs":["https:\/\/x.com\/kargig"]},{"@type":"Person","@id":"https:\/\/www.void.gr\/kargig\/blog\/author\/site-admin\/#author","url":"https:\/\/www.void.gr\/kargig\/blog\/author\/site-admin\/","name":"kargig"},{"@type":"WebPage","@id":"https:\/\/www.void.gr\/kargig\/blog\/2017\/12\/11\/tormap-world-map-of-tor-nodes-5-years-later\/#webpage","url":"https:\/\/www.void.gr\/kargig\/blog\/2017\/12\/11\/tormap-world-map-of-tor-nodes-5-years-later\/","name":"Tormap \u2013 World map of Tor nodes \u2013 5 years later | Into.the.Void.","description":"5 years ago I forked Moritz's tormap project, updated it a bit and wrote about it. Tormap kept running for years until some changes in googlemaps broke it, not all KMLs were loading as they should. I later on figured out that googlemaps didn't like that some of the KML files were larger than 3Mb.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.void.gr\/kargig\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.void.gr\/kargig\/blog\/2017\/12\/11\/tormap-world-map-of-tor-nodes-5-years-later\/#breadcrumblist"},"author":{"@id":"https:\/\/www.void.gr\/kargig\/blog\/author\/site-admin\/#author"},"creator":{"@id":"https:\/\/www.void.gr\/kargig\/blog\/author\/site-admin\/#author"},"datePublished":"2017-12-11T11:56:20+02:00","dateModified":"2017-12-11T18:38:19+02:00"},{"@type":"WebSite","@id":"https:\/\/www.void.gr\/kargig\/blog\/#website","url":"https:\/\/www.void.gr\/kargig\/blog\/","name":"Into.the.Void.","description":"Into The Void","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.void.gr\/kargig\/blog\/#organization"}}]}},"aioseo_meta_data":{"post_id":"2110","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2022-01-04 11:54:34","updated":"2026-10-21 09:57:55","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.void.gr\/kargig\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.void.gr\/kargig\/blog\/category\/linux\/\" title=\"Linux\">Linux<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tTormap \u2013 World map of Tor nodes \u2013 5 years later\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.void.gr\/kargig\/blog\/"},{"label":"Linux","link":"https:\/\/www.void.gr\/kargig\/blog\/category\/linux\/"},{"label":"Tormap &#8211; World map of Tor nodes &#8211; 5 years later","link":"https:\/\/www.void.gr\/kargig\/blog\/2017\/12\/11\/tormap-world-map-of-tor-nodes-5-years-later\/"}],"views":12102,"_links":{"self":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts\/2110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/comments?post=2110"}],"version-history":[{"count":3,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts\/2110\/revisions"}],"predecessor-version":[{"id":2114,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts\/2110\/revisions\/2114"}],"wp:attachment":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/media?parent=2110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/categories?post=2110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/tags?post=2110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}