Interface BandwidthFile

  • All Superinterfaces:
    Descriptor, java.io.Serializable

    public interface BandwidthFile
    extends Descriptor
    A bandwidth file contains information on relays' bandwidth capacities and is produced by bandwidth generators, previously known as bandwidth scanners.
    Since:
    2.6.0
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static interface  BandwidthFile.RelayLine  
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.util.Optional<java.lang.String[]> destinationsCountries()
      Country, as in political geolocation, or countries where the destination web server(s) are located.
      java.lang.String digestSha256Base64()
      Return the SHA-256 bandwidth file digest, encoded as 43 base64 characters without padding characters, that is used to reference this bandwidth file from a vote.
      java.util.Optional<java.lang.String> dirauthNickname()
      The dirauth's nickname which publishes this V3BandwidthsFile.
      java.util.Optional<java.time.LocalDateTime> earliestBandwidth()
      Timestamp in UTC time zone when the first relay bandwidth was obtained.
      java.util.Optional<java.time.LocalDateTime> fileCreated()
      Timestamp in UTC time zone when the file was created.
      java.util.Optional<java.time.LocalDateTime> generatorStarted()
      Timestamp in UTC time zone when the generator was started.
      java.util.Optional<java.time.LocalDateTime> latestBandwidth()
      Timestamp in UTC time zone of the most recent generator bandwidth result.
      java.util.Optional<java.lang.Integer> minimumNumberEligibleRelays()
      Minimum number of relays that should be included in the bandwidth file.
      java.util.Optional<java.lang.Integer> minimumPercentEligibleRelays()
      Percentage of relays in the consensus that should be included in every generated bandwidth file.
      java.util.Optional<java.lang.Integer> mu()
      The network stream bandwidth average calculated as explained in the bandwidth file specification.
      java.util.Optional<java.lang.Integer> muf()
      The network stream bandwidth average filtered calculated as explained in the bandwidth file specification.
      java.util.Optional<java.lang.Integer> numberConsensusRelays()
      Number of relays in the consensus.
      java.util.Optional<java.lang.Integer> numberEligibleRelays()
      Number of relays that have enough measurements to be included in the bandwidth file.
      java.util.Optional<java.lang.Integer> percentEligibleRelays()
      The number of eligible relays, as a percentage of the number of relays in the consensus.
      java.util.Optional<java.lang.Integer> recentConsensusCount()
      Number of the different consensuses seen in the last data period.
      java.util.Optional<java.lang.Integer> recentMeasurementAttemptCount()
      Number of times that any relay has been queued to be measured in the last data period.
      java.util.Optional<java.lang.Integer> recentMeasurementFailureCount()
      Number of times that the scanner attempted to measure a relay in the last data period, but the relay has not been measured because of system, network or implementation issues.
      java.util.Optional<java.lang.Integer> recentMeasurementsExcludedErrorCount()
      Number of relays that have no successful measurements in the last data period.
      java.util.Optional<java.lang.Integer> recentMeasurementsExcludedFewCount()
      Number of relays that don't have enough recent successful measurements.
      java.util.Optional<java.lang.Integer> recentMeasurementsExcludedNearCount()
      Number of relays that have some successful measurements in the last data period, but all those measurements were performed in a period of time that was too short.
      java.util.Optional<java.lang.Integer> recentMeasurementsExcludedOldCount()
      Number of relays that have some successful measurements, but all those measurements are too old.
      java.util.Optional<java.lang.Integer> recentPriorityListCount()
      Number of times that a list with a subset of relays prioritized to be measured has been created in the last data period.
      java.util.Optional<java.lang.Integer> recentPriorityRelayCount()
      Number of relays that has been in in the list of relays prioritized to be measured in the last data period.
      java.util.List<BandwidthFile.RelayLine> relayLines()
      List of zero or more BandwidthFile.RelayLines containing relay identities and bandwidths in the order as they are contained in the bandwidth file.
      java.util.Optional<java.lang.String> scannerCountry()
      Country, as in political geolocation, where the generator is run.
      java.lang.String software()
      Name of the software that created the document.
      java.util.Optional<java.lang.String> softwareVersion()
      Version of the software that created the document.
      java.time.LocalDateTime timestamp()
      Time of the most recent generator bandwidth result.
      java.util.Optional<java.time.Duration> timeToReportHalfNetwork()
      Time that it would take to report measurements about half of the network, given the number of eligible relays and the time it took in the last days.
      java.util.Optional<java.lang.String> torVersion()
      The Tor version of the Tor process controlled by the generator.
      java.lang.String version()
      Document format version.
    • Method Detail

      • digestSha256Base64

        java.lang.String digestSha256Base64()
        Return the SHA-256 bandwidth file digest, encoded as 43 base64 characters without padding characters, that is used to reference this bandwidth file from a vote.
        Since:
        2.11.0
      • timestamp

        java.time.LocalDateTime timestamp()
        Time of the most recent generator bandwidth result.
        Since:
        2.6.0
      • version

        java.lang.String version()
        Document format version.
        Since:
        2.6.0
      • software

        java.lang.String software()
        Name of the software that created the document.
        Since:
        2.6.0
      • softwareVersion

        java.util.Optional<java.lang.String> softwareVersion()
        Version of the software that created the document.
        Since:
        2.6.0
      • torVersion

        java.util.Optional<java.lang.String> torVersion()
        The Tor version of the Tor process controlled by the generator.
        Since:
        2.20.0
      • fileCreated

        java.util.Optional<java.time.LocalDateTime> fileCreated()
        Timestamp in UTC time zone when the file was created.
        Since:
        2.6.0
      • generatorStarted

        java.util.Optional<java.time.LocalDateTime> generatorStarted()
        Timestamp in UTC time zone when the generator was started.
        Since:
        2.6.0
      • earliestBandwidth

        java.util.Optional<java.time.LocalDateTime> earliestBandwidth()
        Timestamp in UTC time zone when the first relay bandwidth was obtained.
        Since:
        2.6.0
      • latestBandwidth

        java.util.Optional<java.time.LocalDateTime> latestBandwidth()
        Timestamp in UTC time zone of the most recent generator bandwidth result.
        Since:
        2.6.0
      • numberEligibleRelays

        java.util.Optional<java.lang.Integer> numberEligibleRelays()
        Number of relays that have enough measurements to be included in the bandwidth file.
        Since:
        2.6.0
      • minimumPercentEligibleRelays

        java.util.Optional<java.lang.Integer> minimumPercentEligibleRelays()
        Percentage of relays in the consensus that should be included in every generated bandwidth file.
        Since:
        2.6.0
      • numberConsensusRelays

        java.util.Optional<java.lang.Integer> numberConsensusRelays()
        Number of relays in the consensus.
        Since:
        2.6.0
      • percentEligibleRelays

        java.util.Optional<java.lang.Integer> percentEligibleRelays()
        The number of eligible relays, as a percentage of the number of relays in the consensus.
        Since:
        2.6.0
      • minimumNumberEligibleRelays

        java.util.Optional<java.lang.Integer> minimumNumberEligibleRelays()
        Minimum number of relays that should be included in the bandwidth file.
        Since:
        2.6.0
      • scannerCountry

        java.util.Optional<java.lang.String> scannerCountry()
        Country, as in political geolocation, where the generator is run.
        Since:
        2.6.0
      • destinationsCountries

        java.util.Optional<java.lang.String[]> destinationsCountries()
        Country, as in political geolocation, or countries where the destination web server(s) are located.
        Since:
        2.6.0
      • recentConsensusCount

        java.util.Optional<java.lang.Integer> recentConsensusCount()
        Number of the different consensuses seen in the last data period.
        Since:
        2.6.0
      • recentPriorityListCount

        java.util.Optional<java.lang.Integer> recentPriorityListCount()
        Number of times that a list with a subset of relays prioritized to be measured has been created in the last data period.
        Since:
        2.6.0
      • recentPriorityRelayCount

        java.util.Optional<java.lang.Integer> recentPriorityRelayCount()
        Number of relays that has been in in the list of relays prioritized to be measured in the last data period.
        Since:
        2.6.0
      • recentMeasurementAttemptCount

        java.util.Optional<java.lang.Integer> recentMeasurementAttemptCount()
        Number of times that any relay has been queued to be measured in the last data period.
        Since:
        2.6.0
      • recentMeasurementFailureCount

        java.util.Optional<java.lang.Integer> recentMeasurementFailureCount()
        Number of times that the scanner attempted to measure a relay in the last data period, but the relay has not been measured because of system, network or implementation issues.
        Since:
        2.6.0
      • recentMeasurementsExcludedErrorCount

        java.util.Optional<java.lang.Integer> recentMeasurementsExcludedErrorCount()
        Number of relays that have no successful measurements in the last data period.
        Since:
        2.6.0
      • recentMeasurementsExcludedNearCount

        java.util.Optional<java.lang.Integer> recentMeasurementsExcludedNearCount()
        Number of relays that have some successful measurements in the last data period, but all those measurements were performed in a period of time that was too short.
        Since:
        2.6.0
      • recentMeasurementsExcludedOldCount

        java.util.Optional<java.lang.Integer> recentMeasurementsExcludedOldCount()
        Number of relays that have some successful measurements, but all those measurements are too old.
        Since:
        2.6.0
      • recentMeasurementsExcludedFewCount

        java.util.Optional<java.lang.Integer> recentMeasurementsExcludedFewCount()
        Number of relays that don't have enough recent successful measurements.
        Since:
        2.6.0
      • timeToReportHalfNetwork

        java.util.Optional<java.time.Duration> timeToReportHalfNetwork()
        Time that it would take to report measurements about half of the network, given the number of eligible relays and the time it took in the last days.
        Since:
        2.6.0
      • mu

        java.util.Optional<java.lang.Integer> mu()
        The network stream bandwidth average calculated as explained in the bandwidth file specification. This Line was added in version 1.7.0 of the bandwidth file specification.
        Since:
        2.22.0
      • muf

        java.util.Optional<java.lang.Integer> muf()
        The network stream bandwidth average filtered calculated as explained in the bandwidth file specification. This Line was added in version 1.7.0 of the bandwidth file specification.
        Since:
        2.22.0
      • dirauthNickname

        java.util.Optional<java.lang.String> dirauthNickname()
        The dirauth's nickname which publishes this V3BandwidthsFile. This Line was added in version 1.8.0 of this specification.
        Since:
        2.24.0