Also track all relays and their v2 status

This commit is contained in:
HackerNCoder 2021-12-01 17:34:05 +00:00
parent 61fc851da2
commit 7e4b2a235d
2 changed files with 39 additions and 4 deletions

19
plotter4.py Normal file
View file

@ -0,0 +1,19 @@
import pandas as pd
import datetime
import csv
import os
import matplotlib.pyplot as plt
from shutil import copyfile
x_axis='datetime'
y_axes=['v2','nonv2']
df = pd.read_csv("trackingv2relays.csv")
filter = [x_axis] + y_axes
title = "Tracking how many Tor relays run a version that is non-v2"
df[filter].plot.line(x=x_axis, title=title, grid=True, rot=20, figsize=(6,5))
plt.savefig("/var/www/data/relays_plot.png")
copyfile("/home/trackingv2/trackingv2relays.csv", "/var/www/data/relaysv2.csv")
print("plotted "+title)

View file

@ -7,10 +7,13 @@ import datetime
dt = datetime.datetime.utcnow().strftime("%m-%d-%H") dt = datetime.datetime.utcnow().strftime("%m-%d-%H")
numberOfHSDir = 0 numberOfHSDir = 0
numberOfNonv2HSDir = 0
numberOfv2HSDir = 0
numberOfNonv2 = 0 numberOfNonv2 = 0
numberOfv2 = 0 numberOfv2 = 0
consensus = "/home/trackingv2/consensus" consensus = "consensus"
url = "https://collector.torproject.org/recent/relay-descriptors/consensuses/2021-{}-00-00-consensus".format(dt) url = "https://collector.torproject.org/recent/relay-descriptors/consensuses/2021-{}-00-00-consensus".format(dt)
print(url) print(url)
@ -28,19 +31,32 @@ while True:
if not line1: break if not line1: break
if re.search("^s", line1, re.IGNORECASE):
isHSDir = False
if re.search("^s.*HSDir", line1, re.IGNORECASE): if re.search("^s.*HSDir", line1, re.IGNORECASE):
line2 = file.readline()
numberOfHSDir += 1 numberOfHSDir += 1
isHSDir = True
line2 = file.readline()
if re.search("^v.*Tor (0.4.[6-9]|0.3.5.17|0.4.5.11)", line2, re.IGNORECASE): if re.search("^v.*Tor (0.4.[6-9]|0.3.5.17|0.4.5.11)", line2, re.IGNORECASE):
if isHSDir:
numberOfNonv2HSDir += 1
numberOfNonv2 += 1 numberOfNonv2 += 1
else: else:
if isHSDir:
numberOfv2HSDir += 1
numberOfv2 += 1 numberOfv2 += 1
dt = datetime.datetime.utcnow().strftime("%Y/%m/%d %H") dt = datetime.datetime.utcnow().strftime("%Y/%m/%d %H")
with open("/home/trackingv2/trackingv2.csv", "a") as csvFile: with open("/home/trackingv2/trackingv2.csv", "a") as csvFile:
csvFile.write("{},{},{},{}\n".format(numberOfv2, numberOfNonv2, numberOfHSDir, dt)) csvFile.write("{},{},{},{}\n".format(numberOfv2HSDir, numberOfNonv2HSDir, numberOfHSDir, dt))
with open("trackingv2relays.csv", "a") as relaysCsv:
relaysCsv.write("{},{},{}\n".format(numberOfv2, numberOfNonv2, dt))
#print("Num HSDir: {}".format(numberOfHSDir)) #print("Num HSDir: {}".format(numberOfHSDir))
#print("< 0.4.6: {}".format(numberOfv2HSDir))
#print(">= 0.4.6: {}".format(numberOfNonv2HSDir))
#print()
#print("< 0.4.6: {}".format(numberOfv2)) #print("< 0.4.6: {}".format(numberOfv2))
#print(">= 0.4.6: {}".format(numberOfNonv2)) #print(">= 0.4.6: {}".format(numberOfNonv2))
#print("DT: {}".format(dt)) #print("DT: {}".format(dt))