Class PeerID

java.lang.Object
org.klomp.snark.PeerID
All Implemented Interfaces:
Comparable<PeerID>

public class PeerID
extends Object
implements Comparable<PeerID>
Store the address information about a peer. Prior to 0.8.1, an instantiation required a peer ID, and full Destination address. Starting with 0.8.1, to support compact tracker responses, a PeerID can be instantiated with a Destination Hash alone. The full destination lookup is deferred until getAddress() is called, and the PeerID is not required. Equality is now determined solely by the dest hash.
  • Constructor Summary

    Constructors 
    Constructor Description
    PeerID​(byte[] id, Destination address)  
    PeerID​(byte[] dest_hash, I2PSnarkUtil util)
    Creates a PeerID from a destHash
    PeerID​(Map<String,​BEValue> m)
    Creates a PeerID from a Map containing BEncoded peer id, ip and port.
    PeerID​(BDecoder be)
    Creates a PeerID from a BDecoder.
  • Method Summary

    Modifier and Type Method Description
    int compareTo​(PeerID pid)
    Deprecated.
    unused? and will NPE now that address can be null?
    boolean equals​(Object o)
    Two PeerIDs are equal when they have the same dest hash
    Destination getAddress()
    Get the destination.
    byte[] getDestHash()  
    byte[] getID()  
    int getPort()  
    int hashCode()
    The hash code of a PeerID is the hashcode of the desthash
    static String idencode​(byte[] bs)
    Encode an id as a hex encoded string and remove leading zeros.
    boolean sameID​(PeerID pid)
    Returns true if and only if this peerID and the given peerID have the same destination hash
    void setID​(byte[] xid)
    for connecting out to peer based on desthash @since 0.8.1
    String toString()
    Returns the String "id@address" where id is the first 4 chars of the base64 encoded id and address is the first 6 chars of the base64 dest (was the base64 hash of the dest) which should match what the bytemonsoon tracker reports on its web pages.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

  • Method Details

    • getID

      public byte[] getID()
    • setID

      public void setID​(byte[] xid)
      for connecting out to peer based on desthash @since 0.8.1
    • getAddress

      public Destination getAddress()
      Get the destination. If this PeerId was instantiated with a destHash, and we have not yet done so, lookup the full destination, which may take up to 10 seconds.
      Returns:
      Dest or null if unknown
    • getPort

      public int getPort()
    • getDestHash

      public byte[] getDestHash()
      Since:
      0.8.1
    • hashCode

      public int hashCode()
      The hash code of a PeerID is the hashcode of the desthash
      Overrides:
      hashCode in class Object
    • sameID

      public boolean sameID​(PeerID pid)
      Returns true if and only if this peerID and the given peerID have the same destination hash
    • equals

      public boolean equals​(Object o)
      Two PeerIDs are equal when they have the same dest hash
      Overrides:
      equals in class Object
    • compareTo

      @Deprecated public int compareTo​(PeerID pid)
      Deprecated.
      unused? and will NPE now that address can be null?
      Compares port, address and id.
      Specified by:
      compareTo in interface Comparable<PeerID>
    • toString

      public String toString()
      Returns the String "id@address" where id is the first 4 chars of the base64 encoded id and address is the first 6 chars of the base64 dest (was the base64 hash of the dest) which should match what the bytemonsoon tracker reports on its web pages.
      Overrides:
      toString in class Object
    • idencode

      public static String idencode​(byte[] bs)
      Encode an id as a hex encoded string and remove leading zeros.