This ports commit 3e60ccdaaba598cabb7281d45f9a415299b8e3e3 from
metrics-lib over, originally written by Jens-Michael Hoffmann
<jmho@jmho.de>, with minor tweaks by Karsten Loesing.
The local lib directory is not used anymore and respective references
were removed. The java dependencies are now specified in the build.xml
and taken from their installed locations.
In addition to git, openjdk-6-jdk and ant the following java packages
have to be installed:
- libcommons-codec-java
- libcommons-compress-java
Slighty tweaked by Sebastian Hahn to remove references to unused junit.
Apparently, it happens quite often that 0.1% of extra-info descriptors
are missing that are referenced from a vote. Raising the threshold to
0.5% to reduce frequent warnings. Anything between 0.1% and 0.5% still
does not indicate a problem.
We currently look at the downloaded consensus to decide which votes to
download. This approach fails when we're missing a consensus. Instead,
download votes published by all known authorities, not just the ones
contained in the consensus. Implements #5812.
Each module now writes to its own subdirectory in rsync/ in parallel to
writing to its output directory for making tarballs. This should be more
efficient than going over the output directories and copying files to
rsync/.
- Bridge network statuses contain a "published" line containing the
publication timestamp, so that parsers don't have to learn that
timestamp from the file name anymore.
- Bridge network status entries are ordered by hex-encoded
fingerprint, not by base64-encoded fingerprint, which is mostly a
cosmetic change.
- Server descriptors and extra-info descriptors are stored under the
SHA1 hashes of the descriptor identifiers of their non-scrubbed
forms. Previously, descriptors were (supposed to be; see #5607)
stored under the digests of their scrubbed forms. The reason for
hashing digests is to prevent looking up an existing descriptor
from the bridge authority by its non-scrubbed descriptor digest.
With this change, we don't have to repair references between
statuses, server descriptors, and extra-info descriptors anymore
which turned out to be error-prone (#5608). Server descriptors and
extra-info descriptors contain a new "router-digest" line with the
hex-formatted descriptor identifier. These lines are necessary,
because we cannot calculate the identifier anymore and because we
don't want to rely on the file name.
- Stop sanitizing bridge nicknames (#5684).
- Stop sanitizing *-stats lines (#5807).
- All sanitized bridge descriptors contain @type annotations (#5651).