any KeyValue that is based on the last bandwidth file adds more code complexity, because it would mean to read and parse the last bandwidth file
fetch consensus every hour (instead of every 5min) so that we can assume every consensus fetched is new
store the number of times a relay is in the consensus
created a KeyValue to report the number of time a reported relay was in the consensus
a header KeyValue with the total number of consensus could be calculated as the the maximum number of consensuses in a bandwidth line (maybe missing some?)
it can't be know the relays that were not in any consensus, since they won't be reported
it'd be possible to report the number relays that were not in any consensus
a header KeyValue with the total number of consensus could be calculated as the the maximum number of consensuses in a bandwidth line (maybe missing some?)
Hi! I've made some small suggestions throughout the code. It's a little tricky to follow, but I think documenting functions will fix that. Also, I'd strongly suggest documenting what exactly each new field should contain. Once that's done you should feel free to merge.