- knownnodes.cleanupKnownNodes() should set knownNodesActual = False
if there are no nodes in stream 1 (repeated bootstrapping)
- set socksproxytype before _initiate_bootstrap()
- wait 5 sec in _initiate_bootstrap() to be sure all connections are closed
- plugins do not work on travis - use socksproxytype = SOCKS5,
check tor presence by trying to bind on port 9050
- successfull connection to 3 onion nodes in 6 minutes is not guaranteed -
check that bitmessage doesn't try non-onion nodes
-test case for testing old knownnodes pickle
-fixed CQ for tests.core module
-implemented shutil.copyfile feature and use small size knownnodes.dat file in test_pattern dir
-remove unnecessary code
-Fixed CQ of tests.core module
- attempt to fix#1598
- seems to work
- addresses won't be uploaded/announced anymore other than after connecting,
Later I need to find out how to announce them without causing problems, but
for the time disabling this seems an acceptable drawback
- addrthread is supposed to spread addresses as they appear. This was never
finished during migration to asyncore
- conservative to prevent flood and loops
- randomises order
- move protocol constants into a separate file
- move addr packet creation into a separate file
- see #1575
Logic borrowed from bitcoin, see CNetAddr::GetGroup() in src/netaddress.cpp
Simplified, so may not work fully identically but for our purposes it's good
enough. Won't connect to more than one host from a /16 subnet on IPv4 and a /32
subnet on IPv6.
and use logging without risk of circular import. Only subpackage
that imports from debug is bitmessageqt - because it also uses
debug.resetLogging().
Instead of from debug import logger is now recommended to use:
import logging
logger = logging.getLogger('default')
All subclasses of StoppableThread now have a logger attribute.
All threading related stuff except for set_thread_name()
was moved from helper_threading to network.threads.
Fixed two my mistakes from previous edit of debug in a1a8d3a:
- logger.handlers is not dict but iterable
- sys.excepthook should be set unconditionally