Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ANON_PREFIX |
private static java.lang.String |
BDATE
Birthday - first startup
|
private long |
birthdate |
(package private) Bitfield |
bitfield |
static java.lang.String |
CCOUNT
the number of clients that the peer connects (connects/hour as double)
|
static java.lang.String |
DCT |
static java.lang.String |
DFLT_NETWORK_GROUP |
static java.lang.String |
DFLT_NETWORK_UNIT |
private java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.String> |
dna
a set of identity founding values, eg.
|
private static int |
FLAG_ACCEPT_REMOTE_CRAWL |
private static int |
FLAG_ACCEPT_REMOTE_INDEX |
private static int |
FLAG_DIRECT_CONNECT |
private static int |
FLAG_ROOT_NODE |
private static int |
FLAG_SSL_AVAILABLE |
private static java.lang.String |
FLAGS |
static java.lang.String |
FLAGSZERO |
java.lang.String |
hash
the peer-hash
|
static java.lang.String |
HASH |
static java.lang.String |
ICOUNT
the number of different words the peer has indexed
|
static java.lang.String |
INDEX_IN
substance "rI" (received index/words)
|
static java.lang.String |
INDEX_OUT
substance "sI" (send index/words)
|
static java.lang.String |
IP
the public IP of this peer (old field, will be used to carry the IPv4)
|
static java.lang.String |
IP6
more public IPs of this peer, containing only IPv6 addresses.
|
private static java.lang.String |
IPTYPE
static/dynamic (if the IP changes often for any reason)
|
static java.lang.String |
ISPEED
the speed of indexing (pages/minute) of the peer
|
static java.lang.String |
LASTSEEN |
static java.lang.String |
LCOUNT
the number of links that the peer has stored (LURL's)
|
static int |
maxsize |
static java.lang.String |
NAME
the name of the peer (user-set)
|
static java.lang.String |
NCOUNT
the number of links that the peer has noticed, but not loaded (NURL's)
|
static java.lang.String |
NEWS |
private static java.lang.String |
PEERTAGS |
static java.lang.String |
PEERTYPE
substance "PeerType"
|
static java.lang.String |
PEERTYPE_JUNIOR
substance "junior", this is a peer which cannot be reached from the outside
|
static java.lang.String |
PEERTYPE_MENTEE
substance "mentee", this is a junior peer with an mentor peer attached as 'remote' server port
|
static java.lang.String |
PEERTYPE_MENTOR
substance "mentor", this is a senior peer which hosts server ports for mentee peers
|
static java.lang.String |
PEERTYPE_PRINCIPAL
substance "principal", a senior peer which distributes the seed list to an outside hoster (i.e.
|
static java.lang.String |
PEERTYPE_SENIOR
substance "senior", this is a peer with an open port to the public
|
static java.lang.String |
PEERTYPE_VIRGIN
substance "virgin", a peer which cannot reach any other peers
|
static java.lang.String |
PORT |
static java.lang.String |
PORTSSL |
private static java.util.Random |
random |
static java.lang.String |
RCOUNT
the number of links that the peer provides for remote crawls (ZURL's)
|
static java.lang.String |
RSPEED
the speed of retrieval (queries/minute) of the peer
|
static java.lang.String |
SCOUNT
the number of seeds that the peer has stored
|
static java.lang.String |
SEEDLISTURL |
static java.lang.String |
SOLRAVAILABLE |
private static java.util.regex.Pattern |
tp
check the peer name: protect against usage as XSS hack
|
static java.lang.String |
UPTIME
the number of minutes that the peer is up in minutes/day (moving average MA30)
|
static java.lang.String |
URL_IN
substance "rU" (received URLs)
|
static java.lang.String |
URL_OUT
substance "sU" (send URLs)
|
private static java.lang.String |
USPEED |
static java.lang.String |
UTC
UTC-Offset
|
static java.lang.String |
VERSION
the applications version
|
static java.lang.String |
YOURTYPE |
private static java.lang.String |
ZERO
zero-value
|
Modifier | Constructor and Description |
---|---|
private |
Seed(java.lang.String theHash) |
|
Seed(java.lang.String theHash,
java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.String> theDna) |
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
b64Hash2hexHash(java.lang.String b64Hash)
12 * 6 bit = 72 bit = 18 characters hex-hash |
static java.lang.String |
b64Hash2octalHash(java.lang.String b64Hash)
12 * 6 bit = 72 bit = 24 characters octal-hash |
private static byte[] |
bestGap(SeedDB seedDB) |
static java.lang.String |
checkPeerName(java.lang.String name) |
boolean |
clash(java.util.Set<java.lang.String> ips)
clash tests if any of the given ips are also contained in the Seeds ip set
|
Seed |
clone() |
int |
compare(Seed o1,
Seed o2) |
int |
compareTo(Seed arg0) |
int |
countIPs()
count the number of IPs assgined to that peer
|
private static java.lang.String |
defaultPeerName()
generate a default peer name
|
boolean |
equals(java.lang.Object other) |
static Seed |
genLocalSeed(SeedDB db) |
static Seed |
genRemoteSeed(java.lang.String seedStr,
boolean ownSeed,
java.lang.String patchIP) |
java.lang.String |
genSeedStr(java.lang.String key) |
java.lang.String |
get(java.lang.String key,
java.lang.String dflt)
Get a value from the peer's DNA (its set of peer defining values, e.g.
|
int |
getAge() |
long |
getBirthdate() |
private boolean |
getFlag(int flag) |
boolean |
getFlagAcceptRemoteCrawl() |
boolean |
getFlagAcceptRemoteIndex() |
boolean |
getFlagDirectConnect() |
boolean |
getFlagRootNode() |
boolean |
getFlagSolrAvailable()
gets the last set result for remote solr status
|
boolean |
getFlagSSLAvailable() |
float |
getFloat(java.lang.String key,
float dflt) |
java.lang.String |
getHexHash() |
java.lang.String |
getIP()
Deprecated.
|
java.util.Set<java.lang.String> |
getIPs()
Get all my public IPs.
|
private java.util.Set<java.lang.String> |
getIPv6Entries() |
long |
getLastSeenUTC() |
long |
getLinkCount() |
long |
getLong(java.lang.String key,
long dflt) |
java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.String> |
getMap() |
java.lang.String |
getName() |
java.util.Set<java.lang.String> |
getPeerTags() |
java.lang.String |
getPeerType()
try to get the peertype
|
int |
getPort() |
int |
getPPM() |
java.lang.String |
getPublicAddress(java.net.InetAddress ip)
generate a public address using a given ip.
|
java.lang.String |
getPublicAddress(java.lang.String ip)
generate a public address using a given ip.
|
float |
getQPM() |
int |
getRevision()
get the SVN version of the peer
|
java.lang.Double |
getVersion()
The returned version follows this pattern:
MAJORVERSION . |
long |
getWordCount() |
int |
hashCode() |
private static java.util.TreeMap<java.lang.Long,java.lang.String> |
hashGaps(SeedDB seedDB) |
static java.lang.String |
hexHash2b64Hash(java.lang.String hexHash) |
void |
incRI(int count) |
void |
incRU(int count) |
void |
incSI(int count) |
void |
incSU(int count) |
boolean |
isActive() |
static boolean |
isDefaultPeerName(java.lang.String name)
Checks for the static fragments of a generated default peer name, such as the string 'dpn'
|
boolean |
isJunior() |
boolean |
isLastSeenTimeout(long milliseconds)
test if the lastSeen time of the seed has a time-out
|
boolean |
isOnline() |
boolean |
isOnline(java.lang.String type) |
boolean |
isPotential() |
boolean |
isPrincipal() |
java.lang.String |
isProper(boolean checkOwnIP) |
static boolean |
isProperIP(java.lang.String ipString)
check if the given string containing an IP is proper.
|
boolean |
isSenior() |
boolean |
isType(java.lang.String type) |
boolean |
isVirgin() |
static Seed |
load(java.io.File f) |
static void |
main(java.lang.String[] args) |
boolean |
matchPeerTags(HandleSet searchHashes) |
long |
nextLong(java.util.Random random,
long n) |
java.lang.String |
orJunior()
try to get the peertype
|
java.lang.String |
orPrincipal()
try to get the peertype
|
java.lang.String |
orSenior()
try to get the peertype
|
java.lang.String |
orVirgin()
try to get the peertype
|
void |
put(java.lang.String key,
java.lang.String value) |
static byte[] |
randomHash() |
boolean |
removeIP(java.lang.String ip)
remove the given IP from the seed.
|
void |
resetCounters() |
void |
save(java.io.File f) |
private void |
setFlag(int flag,
boolean value) |
void |
setFlagAcceptRemoteCrawl(boolean value) |
void |
setFlagAcceptRemoteIndex(boolean value) |
void |
setFlagDirectConnect(boolean value) |
void |
setFlagRootNode(boolean value) |
void |
setFlagSolrAvailable(boolean value)
remembers status of remote Solr interface dynamicly
should not be used for the local peer
|
void |
setFlagSSLAvailable(boolean value) |
void |
setIP(java.lang.String ip)
set the Peer ip.
|
void |
setIPs(java.util.Set<java.lang.String> ips)
Set several local IPs which are good to access this peer.
|
void |
setJunior() |
void |
setLastSeenUTC()
puts the current time into the lastseen field and cares about the time differential to UTC
|
void |
setName(java.lang.String name) |
void |
setPeerTags(java.util.Set<java.lang.String> keys) |
void |
setPort(java.lang.String port) |
void |
setPrincipal() |
void |
setSenior() |
void |
setType(java.lang.String type) |
void |
setUnusedFlags()
set unused flags to zero
currently last used flag is FLAG_SSL_AVAILABLE=4 (2015-10-24)
|
java.lang.String |
toString() |
public static java.lang.String ANON_PREFIX
public static final int maxsize
public static final java.lang.String INDEX_OUT
public static final java.lang.String INDEX_IN
public static final java.lang.String URL_OUT
public static final java.lang.String URL_IN
public static final java.lang.String PEERTYPE_VIRGIN
public static final java.lang.String PEERTYPE_JUNIOR
public static final java.lang.String PEERTYPE_MENTEE
public static final java.lang.String PEERTYPE_SENIOR
public static final java.lang.String PEERTYPE_MENTOR
public static final java.lang.String PEERTYPE_PRINCIPAL
public static final java.lang.String PEERTYPE
private static final java.lang.String IPTYPE
private static final java.lang.String FLAGS
public static final java.lang.String FLAGSZERO
public static final java.lang.String VERSION
public static final java.lang.String YOURTYPE
public static final java.lang.String LASTSEEN
private static final java.lang.String USPEED
public static final java.lang.String NAME
public static final java.lang.String HASH
private static final java.lang.String BDATE
public static final java.lang.String UTC
private static final java.lang.String PEERTAGS
public static final java.lang.String ISPEED
public static final java.lang.String RSPEED
public static final java.lang.String UPTIME
public static final java.lang.String LCOUNT
public static final java.lang.String NCOUNT
public static final java.lang.String RCOUNT
public static final java.lang.String ICOUNT
public static final java.lang.String SCOUNT
public static final java.lang.String CCOUNT
public static final java.lang.String IP
public static final java.lang.String IP6
public static final java.lang.String PORT
public static final java.lang.String PORTSSL
public static final java.lang.String SEEDLISTURL
public static final java.lang.String NEWS
public static final java.lang.String DCT
public static final java.lang.String SOLRAVAILABLE
private static final java.lang.String ZERO
private static final int FLAG_DIRECT_CONNECT
private static final int FLAG_ACCEPT_REMOTE_CRAWL
private static final int FLAG_ACCEPT_REMOTE_INDEX
private static final int FLAG_ROOT_NODE
private static final int FLAG_SSL_AVAILABLE
public static final java.lang.String DFLT_NETWORK_UNIT
public static final java.lang.String DFLT_NETWORK_GROUP
private static final java.util.Random random
public final java.lang.String hash
private final java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.String> dna
private long birthdate
Bitfield bitfield
private static final java.util.regex.Pattern tp
public Seed(java.lang.String theHash, java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.String> theDna)
private Seed(java.lang.String theHash)
public static java.lang.String checkPeerName(java.lang.String name)
private static java.lang.String defaultPeerName()
public static boolean isDefaultPeerName(java.lang.String name)
name
- the peer name to check for default peer name compliance#makeDefaultPeerName()
private java.util.Set<java.lang.String> getIPv6Entries()
@Deprecated public final java.lang.String getIP()
public final java.util.Set<java.lang.String> getIPs()
public final int countIPs()
public final boolean removeIP(java.lang.String ip)
ip
- public boolean clash(java.util.Set<java.lang.String> ips)
ips
- public final java.lang.String getPeerType()
public final java.lang.String orVirgin()
public final java.lang.String orJunior()
public final java.lang.String orSenior()
public final java.lang.String orPrincipal()
public final java.lang.String get(java.lang.String key, java.lang.String dflt)
key
- the key for the value to fetchdflt
- the default valuepublic final float getFloat(java.lang.String key, float dflt)
public final long getLong(java.lang.String key, long dflt)
public final void setIP(java.lang.String ip)
ip
- public final void setIPs(java.util.Set<java.lang.String> ips)
ips
- list of IPspublic final void setPort(java.lang.String port)
public final void setType(java.lang.String type)
public final void setJunior()
public final void setSenior()
public final void setPrincipal()
public final void put(java.lang.String key, java.lang.String value)
public final java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.String> getMap()
public final void setName(java.lang.String name)
public final java.lang.String getName()
public final java.lang.String getHexHash()
public final void incSI(int count)
public final void incRI(int count)
public final void incSU(int count)
public final void incRU(int count)
public final void resetCounters()
public static java.lang.String b64Hash2octalHash(java.lang.String b64Hash)
12 * 6 bit = 72 bit = 24
characters octal-hash
Octal hashes are used for cache-dumps that are DHT-ready
Cause: the natural order of octal hashes are the same as the b64-order of b64Hashes. a hexhash cannot be used in such cases, and b64Hashes are not appropriate for file names
b64Hash
- a base64 hashpublic static java.lang.String b64Hash2hexHash(java.lang.String b64Hash)
12 * 6 bit = 72 bit = 18
characters hex-hashb64Hash
- a base64 hashpublic static java.lang.String hexHash2b64Hash(java.lang.String hexHash)
hexHash
- a hexadecimal hashpublic final java.lang.Double getVersion()
MAJORVERSION . MINORVERSION 0 SVN REVISION
0
if no valid value could be retrieved
from this yacySeed objectpublic final int getRevision()
public final java.lang.String getPublicAddress(java.net.InetAddress ip)
ip
- public final java.lang.String getPublicAddress(java.lang.String ip)
ip
- public final int getPort()
-1
if not presentpublic final void setLastSeenUTC()
public final long getLastSeenUTC()
public final boolean isLastSeenTimeout(long milliseconds)
milliseconds
- the maximum age of the last-seen valuepublic final long getBirthdate()
public final int getAge()
public void setPeerTags(java.util.Set<java.lang.String> keys)
public java.util.Set<java.lang.String> getPeerTags()
public boolean matchPeerTags(HandleSet searchHashes)
public int getPPM()
public float getQPM()
public final long getLinkCount()
public final long getWordCount()
private boolean getFlag(int flag)
private void setFlag(int flag, boolean value)
public final void setFlagDirectConnect(boolean value)
public final boolean getFlagDirectConnect()
public final void setFlagAcceptRemoteCrawl(boolean value)
public final boolean getFlagAcceptRemoteCrawl()
public final void setFlagAcceptRemoteIndex(boolean value)
public final boolean getFlagAcceptRemoteIndex()
public final void setFlagRootNode(boolean value)
public final boolean getFlagRootNode()
public final void setFlagSSLAvailable(boolean value)
public final boolean getFlagSSLAvailable()
public final void setFlagSolrAvailable(boolean value)
value
- public final boolean getFlagSolrAvailable()
public final void setUnusedFlags()
public final boolean isType(java.lang.String type)
public final boolean isVirgin()
public final boolean isJunior()
public final boolean isSenior()
public final boolean isPrincipal()
public final boolean isPotential()
public final boolean isActive()
public final boolean isOnline()
public final boolean isOnline(java.lang.String type)
public long nextLong(java.util.Random random, long n)
private static byte[] bestGap(SeedDB seedDB)
private static java.util.TreeMap<java.lang.Long,java.lang.String> hashGaps(SeedDB seedDB)
public static byte[] randomHash()
public static Seed genRemoteSeed(java.lang.String seedStr, boolean ownSeed, java.lang.String patchIP) throws java.io.IOException
java.io.IOException
public final java.lang.String isProper(boolean checkOwnIP)
public static final boolean isProperIP(java.lang.String ipString)
ipString
- public final java.lang.String toString()
toString
in class java.lang.Object
public final java.lang.String genSeedStr(java.lang.String key)
public final void save(java.io.File f) throws java.io.IOException
java.io.IOException
public static Seed load(java.io.File f) throws java.io.IOException
java.io.IOException
public final Seed clone()
clone
in class java.lang.Object
public int compareTo(Seed arg0)
compareTo
in interface java.lang.Comparable<Seed>
public int hashCode()
hashCode
in class java.lang.Object
public int compare(Seed o1, Seed o2)
compare
in interface java.util.Comparator<Seed>
public boolean equals(java.lang.Object other)
equals
in interface java.util.Comparator<Seed>
equals
in class java.lang.Object
public static void main(java.lang.String[] args)