Class DHTControlImpl
java.lang.Object
com.biglybt.core.dht.control.impl.DHTControlImpl
- All Implemented Interfaces:
DHTControl, DHTTransportRequestHandler
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classprotected static classprotected static classprivate static classprotected classprotected static classprotected classprotected static classprotected static classprotected static class(package private) static classprotected static class -
Field Summary
FieldsModifier and TypeFieldDescription(package private) final List<DHTControlActivity> (package private) final AEMonitor(package private) final DHTControlAdapterprivate final intprivate final intprivate longprivate int(package private) final DHTDBprivate static final booleanprivate final booleanprivate final booleanprotected final AEMonitorstatic int(package private) final ThreadPoolprivate static final intprivate final ThreadPoolprivate static final intprivate final Map<HashWrapper, Object> private static final int(package private) final ThreadPool(package private) final ThreadPool(package private) final intprivate long(package private) longprivate long(package private) final ListenerManager<DHTControlListener> (package private) DHTTransportContactprivate longprivate static final intprivate final Map<HashWrapper, Long> (package private) final DHTLoggerprivate final intprivate final intprivate byte[]private final intprivate static final intprivate byte[]private longprivate static final int(package private) DHTRouterprivate intprivate long(package private) final int(package private) booleanprivate boolean(package private) MessageDigestprivate final Map<InetAddress, Integer> private static final intprivate final Map<HashWrapper, byte[]> private static final int(package private) byte[]protected final AEMonitorprivate final DHTControlStatsImplprivate booleanprivate final DHTTransport -
Constructor Summary
ConstructorsConstructorDescriptionDHTControlImpl(DHTControlAdapter _adapter, DHTTransport _transport, int _K, int _B, int _max_rep_per_node, int _search_concurrency, int _lookup_concurrency, int _original_republish_interval, int _cache_republish_interval, int _cache_at_closest_n, boolean _encode_keys, boolean _enable_random_poking, DHTLogger _logger) DHTControlImpl(DHTControlAdapter _adapter, DHTTransport _transport, DHTRouter _router, DHTDB _database, int _K, int _B, int _max_rep_per_node, int _search_concurrency, int _lookup_concurrency, int _original_republish_interval, int _cache_republish_interval, int _cache_at_closest_n, boolean _encode_keys, boolean _enable_random_poking, DHTLogger _logger) -
Method Summary
Modifier and TypeMethodDescriptionvoidintcompareDistances(byte[] n1, byte[] n2) -ve -> n1 invalid input: '<' n2protected static intcompareDistances2(byte[] n1, byte[] n2) intcomputeAndCompareDistances(byte[] t1, byte[] t2, byte[] pivot) protected static intcomputeAndCompareDistances2(byte[] t1, byte[] t2, byte[] pivot) byte[]computeDistance(byte[] n1, byte[] n2) protected static byte[]computeDistance2(byte[] n1, byte[] n2) voidcontactImported(DHTTransportContact contact, boolean is_bootstrap) Mechanism for reporting that a contact has been importedvoidcontactRemoved(DHTTransportContact contact) protected voidcreateRouter(DHTTransportContact _local_contact) voiddestroy()protected byte[]encodeKey(byte[] key) protected voidestimateDHTSize(byte[] id, List<DHTTransportContact> contacts, int contacts_to_use) voidexportState(DataOutputStream daos, int max) findNodeRequest(DHTTransportContact originating_contact, byte[] id) private DHTTransportContact[]findNodeRequest(DHTTransportContact originating_contact, byte[] id, boolean already_logged) findValueRequest(DHTTransportContact originating_contact, byte[] key, int max_values, short flags) private intgenerateSpoofID(DHTTransportContact contact) private byte[]generateSpoofID2(DHTTransportContact contact) voidget(byte[] unencoded_key, String description, short flags, int max_values, long timeout, boolean exhaustive, boolean high_priority, DHTOperationListener get_listener) getClosestContactsList(byte[] id, int num_to_return, boolean live_only) protected Set<DHTTransportContact> getClosestContactsSet(byte[] id, int num_to_return, boolean live_only) getClosestKContactsList(byte[] id, boolean live_only) intgetLocalValue(byte[] unencoded_key) protected intbyte[]getObfuscatedKey(byte[] plain_key) protected byte[]getObfuscatedValue(byte[] plain_key) protected DHTTransportValuegetObfuscatedValue(DHTTransportValue basis, byte[] plain_key) intlonggetStats()getStoredValues(byte[] unencoded_key) protected DHTControlImpl.DhtTaskSetgetSupport(byte[] initial_encoded_key, String description, short flags, int max_values, long timeout, boolean exhaustive, boolean high_priority, DHTControlImpl.DHTOperationListenerDemuxer get_listener) intprotected BigIntegerIDToBigInteger(byte[] data) voidimportState(DataInputStream dais) booleanisDiversified(byte[] unencoded_key) protected booleanisIDInClosestContacts(byte[] test_id, byte[] target_id, int num_to_consider, boolean live_only) booleanisSeeded()voidkeyBlockRequest(DHTTransportContact originating_contact, byte[] request, byte[] sig) protected voidlogDiversification(DHTTransportContact contact, byte[][] keys, byte[][] div) booleanlookup(byte[] unencoded_key, String description, long timeout, DHTOperationListener lookup_listener) protected DHTControlImpl.DhtTasklookup(ThreadPool thread_pool, boolean high_priority, byte[] _lookup_id, String description, short flags, boolean value_search, long timeout, int concurrency, int max_values, int search_accuracy, DHTControlImpl.lookupResultHandler handler) The lookup method returns up to K closest nodes to the targetbooleanlookupEncoded(byte[] encoded_key, String description, long timeout, boolean high_priority, DHTOperationListener lookup_listener) protected voidnodeAddedToRouter(DHTRouterContact new_contact) voidpingAll()voidpingRequest(DHTTransportContact originating_contact) protected voidpoke()voidprint(boolean full) voidput(byte[] _unencoded_key, String _description, byte[] _value, short _flags, byte _life_hours, byte _replication_control, boolean _high_priority, DHTOperationListener _listener) protected voidput(ThreadPool thread_pool, boolean high_priority, byte[][] initial_encoded_keys, String description, DHTTransportValue[][] initial_value_sets, short flags, List<DHTTransportContact> contacts, long timeout, DHTControlImpl.DHTOperationListenerDemuxer listener, boolean consider_diversification, Set things_written, int put_level, boolean immediate) protected voidput(ThreadPool thread_pool, boolean high_priority, byte[] initial_encoded_key, String description, DHTTransportValue[] values, short flags, long timeout, boolean original_mappings, Set things_written, int put_level, DHTControlImpl.DHTOperationListenerDemuxer listener) protected voidput(ThreadPool thread_pool, boolean high_priority, byte[] initial_encoded_key, String description, DHTTransportValue value, short flags, long timeout, boolean original_mappings, Set things_written, int put_level, DHTControlImpl.DHTOperationListenerDemuxer listener) voidputDirectEncodedKeys(byte[][] encoded_keys, String description, DHTTransportValue[][] value_sets, DHTTransportContact contact, DHTOperationListener listener) voidputDirectEncodedKeys(byte[][] encoded_keys, String description, DHTTransportValue[][] value_sets, List<DHTTransportContact> contacts) voidputEncodedKey(byte[] encoded_key, String description, DHTTransportValue value, long timeout, boolean original_mappings) queryStoreRequest(DHTTransportContact originating_contact, int header_len, List<Object[]> keys) byte[]remove(byte[] unencoded_key, String description, short flags, DHTOperationListener listener) byte[]remove(byte[] unencoded_key, String description, DHTOperationListener listener) byte[]remove(DHTTransportContact[] contacts, byte[] unencoded_key, String description, DHTOperationListener listener) voidprotected voidrequestPing(DHTRouterContact contact) voidseed(boolean full_wait) voidManually mark things as seededvoidsetSleeping(boolean asleep) voidsetSuspended(boolean susp) voidsetTransportEstimatedDHTSize(int size) statsRequest(DHTTransportContact contact) storeRequest(DHTTransportContact originating_contact, byte[][] keys, DHTTransportValue[][] value_sets) booleanverifyContact(DHTTransportContact c, boolean direct)
-
Field Details
-
DISABLE_REPLICATE_ON_JOIN
private static final boolean DISABLE_REPLICATE_ON_JOIN- See Also:
-
EXTERNAL_LOOKUP_CONCURRENCY
public static int EXTERNAL_LOOKUP_CONCURRENCY -
EXTERNAL_PUT_CONCURRENCY
private static final int EXTERNAL_PUT_CONCURRENCY- See Also:
-
EXTERNAL_SLEEPING_PUT_CONCURRENCY
private static final int EXTERNAL_SLEEPING_PUT_CONCURRENCY- See Also:
-
RANDOM_QUERY_PERIOD
private static final int RANDOM_QUERY_PERIOD- See Also:
-
INTEGRATION_TIME_MAX
private static final int INTEGRATION_TIME_MAX- See Also:
-
adapter
-
transport
-
local_contact
DHTTransportContact local_contact -
router
DHTRouter router -
database
-
stats
-
logger
-
node_id_byte_count
private final int node_id_byte_count -
search_concurrency
final int search_concurrency -
lookup_concurrency
private final int lookup_concurrency -
cache_at_closest_n
private final int cache_at_closest_n -
K
final int K -
B
private final int B -
max_rep_per_node
private final int max_rep_per_node -
encode_keys
private final boolean encode_keys -
enable_random_poking
private final boolean enable_random_poking -
router_start_time
private long router_start_time -
router_count
private int router_count -
internal_lookup_pool
-
external_lookup_pool
-
internal_put_pool
-
external_put_pool
-
imported_state
-
seeded
volatile boolean seeded -
last_lookup
long last_lookup -
listeners
-
activities
-
activity_mon
-
estimate_mon
-
last_dht_estimate_time
private long last_dht_estimate_time -
local_dht_estimate
private long local_dht_estimate -
combined_dht_estimate
private long combined_dht_estimate -
combined_dht_estimate_mag
private int combined_dht_estimate_mag -
LOCAL_ESTIMATE_HISTORY
private static final int LOCAL_ESTIMATE_HISTORY- See Also:
-
local_estimate_values
-
REMOTE_ESTIMATE_HISTORY
private static final int REMOTE_ESTIMATE_HISTORY- See Also:
-
remote_estimate_values
-
spoof_mon
-
spoof_digest
MessageDigest spoof_digest -
spoof_key
byte[] spoof_key -
SPOOF_GEN_HISTORY_SIZE
private static final int SPOOF_GEN_HISTORY_SIZE- See Also:
-
spoof_gen_history
-
spoof_gen_history2
-
SPOOF_ID2_SIZE
private static final int SPOOF_ID2_SIZE- See Also:
-
last_node_add_check
private long last_node_add_check -
node_add_check_uninteresting_limit
private byte[] node_add_check_uninteresting_limit -
rbs_time
private long rbs_time -
rbs_id
private byte[] rbs_id -
sleeping
private boolean sleeping -
suspended
private boolean suspended
-
-
Constructor Details
-
DHTControlImpl
public DHTControlImpl(DHTControlAdapter _adapter, DHTTransport _transport, int _K, int _B, int _max_rep_per_node, int _search_concurrency, int _lookup_concurrency, int _original_republish_interval, int _cache_republish_interval, int _cache_at_closest_n, boolean _encode_keys, boolean _enable_random_poking, DHTLogger _logger) -
DHTControlImpl
public DHTControlImpl(DHTControlAdapter _adapter, DHTTransport _transport, DHTRouter _router, DHTDB _database, int _K, int _B, int _max_rep_per_node, int _search_concurrency, int _lookup_concurrency, int _original_republish_interval, int _cache_republish_interval, int _cache_at_closest_n, boolean _encode_keys, boolean _enable_random_poking, DHTLogger _logger)
-
-
Method Details
-
createRouter
-
getRouterUptime
public long getRouterUptime() -
getRouterCount
public int getRouterCount() -
setSleeping
public void setSleeping(boolean asleep) - Specified by:
setSleepingin interfaceDHTControl
-
setSuspended
public void setSuspended(boolean susp) - Specified by:
setSuspendedin interfaceDHTControl
-
getStats
- Specified by:
getStatsin interfaceDHTControl
-
getTransport
- Specified by:
getTransportin interfaceDHTControl
-
getRouter
- Specified by:
getRouterin interfaceDHTControl
-
getDataBase
- Specified by:
getDataBasein interfaceDHTControl
-
contactImported
Description copied from interface:DHTTransportRequestHandlerMechanism for reporting that a contact has been imported- Specified by:
contactImportedin interfaceDHTTransportRequestHandler- Parameters:
contact-
-
contactRemoved
- Specified by:
contactRemovedin interfaceDHTTransportRequestHandler
-
exportState
- Specified by:
exportStatein interfaceDHTControl- Throws:
IOException
-
importState
- Specified by:
importStatein interfaceDHTControl- Throws:
IOException
-
seed
public void seed(boolean full_wait) - Specified by:
seedin interfaceDHTControl
-
isSeeded
public boolean isSeeded()- Specified by:
isSeededin interfaceDHTControl
-
setSeeded
public void setSeeded()Description copied from interface:DHTControlManually mark things as seeded- Specified by:
setSeededin interfaceDHTControl
-
poke
protected void poke() -
put
public void put(byte[] _unencoded_key, String _description, byte[] _value, short _flags, byte _life_hours, byte _replication_control, boolean _high_priority, DHTOperationListener _listener) - Specified by:
putin interfaceDHTControl
-
putEncodedKey
public void putEncodedKey(byte[] encoded_key, String description, DHTTransportValue value, long timeout, boolean original_mappings) - Specified by:
putEncodedKeyin interfaceDHTControl
-
put
protected void put(ThreadPool thread_pool, boolean high_priority, byte[] initial_encoded_key, String description, DHTTransportValue value, short flags, long timeout, boolean original_mappings, Set things_written, int put_level, DHTControlImpl.DHTOperationListenerDemuxer listener) -
put
protected void put(ThreadPool thread_pool, boolean high_priority, byte[] initial_encoded_key, String description, DHTTransportValue[] values, short flags, long timeout, boolean original_mappings, Set things_written, int put_level, DHTControlImpl.DHTOperationListenerDemuxer listener) -
putDirectEncodedKeys
public void putDirectEncodedKeys(byte[][] encoded_keys, String description, DHTTransportValue[][] value_sets, List<DHTTransportContact> contacts) - Specified by:
putDirectEncodedKeysin interfaceDHTControl
-
putDirectEncodedKeys
public void putDirectEncodedKeys(byte[][] encoded_keys, String description, DHTTransportValue[][] value_sets, DHTTransportContact contact, DHTOperationListener listener) - Specified by:
putDirectEncodedKeysin interfaceDHTControl
-
getObfuscatedKey
public byte[] getObfuscatedKey(byte[] plain_key) - Specified by:
getObfuscatedKeyin interfaceDHTControl
-
getObfuscatedValue
protected byte[] getObfuscatedValue(byte[] plain_key) -
getObfuscatedValue
-
put
protected void put(ThreadPool thread_pool, boolean high_priority, byte[][] initial_encoded_keys, String description, DHTTransportValue[][] initial_value_sets, short flags, List<DHTTransportContact> contacts, long timeout, DHTControlImpl.DHTOperationListenerDemuxer listener, boolean consider_diversification, Set things_written, int put_level, boolean immediate) -
getMaxDivDepth
protected int getMaxDivDepth() -
logDiversification
-
getLocalValue
- Specified by:
getLocalValuein interfaceDHTControl
-
getStoredValues
- Specified by:
getStoredValuesin interfaceDHTControl
-
get
public void get(byte[] unencoded_key, String description, short flags, int max_values, long timeout, boolean exhaustive, boolean high_priority, DHTOperationListener get_listener) - Specified by:
getin interfaceDHTControl
-
isDiversified
public boolean isDiversified(byte[] unencoded_key) - Specified by:
isDiversifiedin interfaceDHTControl
-
lookup
public boolean lookup(byte[] unencoded_key, String description, long timeout, DHTOperationListener lookup_listener) - Specified by:
lookupin interfaceDHTControl
-
lookupEncoded
public boolean lookupEncoded(byte[] encoded_key, String description, long timeout, boolean high_priority, DHTOperationListener lookup_listener) - Specified by:
lookupEncodedin interfaceDHTControl
-
getSupport
protected DHTControlImpl.DhtTaskSet getSupport(byte[] initial_encoded_key, String description, short flags, int max_values, long timeout, boolean exhaustive, boolean high_priority, DHTControlImpl.DHTOperationListenerDemuxer get_listener) -
remove
- Specified by:
removein interfaceDHTControl
-
remove
public byte[] remove(byte[] unencoded_key, String description, short flags, DHTOperationListener listener) - Specified by:
removein interfaceDHTControl
-
remove
public byte[] remove(DHTTransportContact[] contacts, byte[] unencoded_key, String description, DHTOperationListener listener) - Specified by:
removein interfaceDHTControl
-
lookup
protected DHTControlImpl.DhtTask lookup(ThreadPool thread_pool, boolean high_priority, byte[] _lookup_id, String description, short flags, boolean value_search, long timeout, int concurrency, int max_values, int search_accuracy, DHTControlImpl.lookupResultHandler handler) The lookup method returns up to K closest nodes to the target -
pingRequest
- Specified by:
pingRequestin interfaceDHTTransportRequestHandler
-
keyBlockRequest
- Specified by:
keyBlockRequestin interfaceDHTTransportRequestHandler
-
storeRequest
public DHTTransportStoreReply storeRequest(DHTTransportContact originating_contact, byte[][] keys, DHTTransportValue[][] value_sets) - Specified by:
storeRequestin interfaceDHTTransportRequestHandler
-
queryStoreRequest
public DHTTransportQueryStoreReply queryStoreRequest(DHTTransportContact originating_contact, int header_len, List<Object[]> keys) - Specified by:
queryStoreRequestin interfaceDHTTransportRequestHandler
-
findNodeRequest
- Specified by:
findNodeRequestin interfaceDHTTransportRequestHandler
-
findNodeRequest
private DHTTransportContact[] findNodeRequest(DHTTransportContact originating_contact, byte[] id, boolean already_logged) -
findValueRequest
public DHTTransportFindValueReply findValueRequest(DHTTransportContact originating_contact, byte[] key, int max_values, short flags) - Specified by:
findValueRequestin interfaceDHTTransportRequestHandler
-
statsRequest
- Specified by:
statsRequestin interfaceDHTTransportRequestHandler
-
requestPing
-
nodeAddedToRouter
-
getClosestContactsSet
protected Set<DHTTransportContact> getClosestContactsSet(byte[] id, int num_to_return, boolean live_only) -
getClosestKContactsList
- Specified by:
getClosestKContactsListin interfaceDHTControl
-
getClosestContactsList
public List<DHTTransportContact> getClosestContactsList(byte[] id, int num_to_return, boolean live_only) - Specified by:
getClosestContactsListin interfaceDHTControl
-
isIDInClosestContacts
protected boolean isIDInClosestContacts(byte[] test_id, byte[] target_id, int num_to_consider, boolean live_only) -
encodeKey
protected byte[] encodeKey(byte[] key) -
computeAndCompareDistances
public int computeAndCompareDistances(byte[] t1, byte[] t2, byte[] pivot) - Specified by:
computeAndCompareDistancesin interfaceDHTControl
-
computeAndCompareDistances2
protected static int computeAndCompareDistances2(byte[] t1, byte[] t2, byte[] pivot) -
computeDistance
public byte[] computeDistance(byte[] n1, byte[] n2) - Specified by:
computeDistancein interfaceDHTControl
-
computeDistance2
protected static byte[] computeDistance2(byte[] n1, byte[] n2) -
compareDistances
public int compareDistances(byte[] n1, byte[] n2) -ve -> n1 invalid input: '<' n2- Specified by:
compareDistancesin interfaceDHTControl
-
compareDistances2
protected static int compareDistances2(byte[] n1, byte[] n2) -
addListener
- Specified by:
addListenerin interfaceDHTControl
-
removeListener
- Specified by:
removeListenerin interfaceDHTControl
-
getActivities
- Specified by:
getActivitiesin interfaceDHTControl
-
setTransportEstimatedDHTSize
public void setTransportEstimatedDHTSize(int size) - Specified by:
setTransportEstimatedDHTSizein interfaceDHTTransportRequestHandler
-
getTransportEstimatedDHTSize
public int getTransportEstimatedDHTSize()- Specified by:
getTransportEstimatedDHTSizein interfaceDHTTransportRequestHandler
-
getEstimatedDHTSize
public int getEstimatedDHTSize() -
estimateDHTSize
-
IDToBigInteger
-
generateSpoofID
-
generateSpoofID2
-
verifyContact
- Specified by:
verifyContactin interfaceDHTControl
-
getContacts
- Specified by:
getContactsin interfaceDHTControl
-
pingAll
public void pingAll()- Specified by:
pingAllin interfaceDHTControl
-
destroy
public void destroy()- Specified by:
destroyin interfaceDHTControl
-
print
public void print(boolean full) - Specified by:
printin interfaceDHTControl
-