Package org.klomp.snark
Class PeerID
java.lang.Object
org.klomp.snark.PeerID
- All Implemented Interfaces:
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
ConstructorDescriptionPeerID
(byte[] id, Destination address) PeerID
(byte[] dest_hash, I2PSnarkUtil util) Creates a PeerID from a destHashCreates a PeerID from a Map containing BEncoded peer id, ip and port.Creates a PeerID from a BDecoder. -
Method Summary
Modifier and TypeMethodDescriptionint
Deprecated.unused? and will NPE now that address can be null?boolean
Two PeerIDs are equal when they have the same dest hashGet the destination.byte[]
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
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.1toString()
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 Details
-
PeerID
-
PeerID
Creates a PeerID from a BDecoder.- Throws:
IOException
-
PeerID
Creates a PeerID from a Map containing BEncoded peer id, ip and port. -
PeerID
Creates a PeerID from a destHash- Parameters:
util
- for eventual destination lookup- Throws:
InvalidBEncodingException
- Since:
- 0.8.1
-
-
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
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
Returns true if and only if this peerID and the given peerID have the same destination hash -
equals
Two PeerIDs are equal when they have the same dest hash -
compareTo
Deprecated.unused? and will NPE now that address can be null?Compares port, address and id.- Specified by:
compareTo
in interfaceComparable<PeerID>
-
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
Encode an id as a hex encoded string and remove leading zeros.
-