Class PersistSybil

java.lang.Object
net.i2p.router.sybil.PersistSybil

public class PersistSybil extends Object
Store and retrieve analysis files from disk. Each file is named with a timestamp.
Since:
0.9.38
  • Constructor Details

    • PersistSybil

      PersistSybil(I2PAppContext ctx)
      access via Analysis.getPersister()
  • Method Details

    • store

      public void store(long date, Map<Hash,Points> entries) throws IOException
      Store each entry.
      Parameters:
      entries - each one should be "entry" at the root
      Throws:
      IOException
    • load

      public List<Long> load()
      The list of stored analysis sets, as a time stamp.
      Returns:
      non-null, sorted by updated date, newest first
    • load

      public Map<Hash,Points> load(long date) throws IOException
      Load the analysis for a certain date.
      Returns:
      non-null, unsorted
      Throws:
      IOException
    • load

      public Map<Long,Points> load(Hash h) throws IOException
      Load all the analysis for a certain hash.
      Returns:
      non-null, unsorted
      Throws:
      IOException
    • removeOld

      public void removeOld()
      Remove all files older than configured threshold Inline for now, thread later if necessary
      Since:
      0.9.41
    • delete

      public boolean delete(long date)
      Delete the file for a particular date
      Returns:
      success
    • readBlocklist

      Map<String,Long> readBlocklist()
      Read the blocklist
      Returns:
      map of ip or hash to expiration (ms), or null on failure
      Since:
      0.9.50
    • storeBlocklist

      void storeBlocklist(Set<String> blocks, long blockUntil)
      Write the blocklist. The format is different than other blocklists because we include an expiration. Format: One per line: ip or hash,expiration time (ms)
      Parameters:
      blocks - non-empty, will be merged with existing entries
      Since:
      0.9.50