Package org.klomp.snark
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 destHashPeerID(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
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 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 hashDestination
getAddress()
Get the destination.byte[]
getDestHash()
byte[]
getID()
int
getPort()
int
hashCode()
The hash code of a PeerID is the hashcode of the desthashstatic 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 hashvoid
setID(byte[] xid)
for connecting out to peer based on desthash @since 0.8.1String
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.
-
-
-
Constructor Detail
-
PeerID
public PeerID(byte[] id, Destination address)
-
PeerID
public PeerID(BDecoder be) throws IOException
Creates a PeerID from a BDecoder.- Throws:
IOException
-
PeerID
public PeerID(Map<String,BEValue> m) throws InvalidBEncodingException, UnknownHostException
Creates a PeerID from a Map containing BEncoded peer id, ip and port.
-
PeerID
public PeerID(byte[] dest_hash, I2PSnarkUtil util) throws InvalidBEncodingException
Creates a PeerID from a destHash- Parameters:
util
- for eventual destination lookup- Throws:
InvalidBEncodingException
- Since:
- 0.8.1
-
-
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
-
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
-
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 interfaceComparable<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.
-
idencode
public static String idencode(byte[] bs)
Encode an id as a hex encoded string and remove leading zeros.
-
-