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

    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.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> 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.lang.String version()
    Document format version.
  • Method Details

    • 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
    • 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
    • relayLines

      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.
      Since:
      2.6.0