Class 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.
    • Method Detail

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