TorBEL is based on torflow, a set of Python libraries and scripts developed by Mike Perry and Nick Matthewson of the Tor project. Debugging ========= In config.py, the following options are quite useful for debugging: - torctl_debug = True This will instruct TorCtl to dump its communications with the running Tor instance to file. This is useful if you believe the problem lies with TorCtl or that TorBEL is not considering information that should be available in TorCtl. - log_level = DEBUG This is an appropriate log level for most development purposes. VERBOSE1 and VERBOSE2 are much more noisy and should only be used if you suspect something rather strange going on in TorBEL. - torctl_log_level = INFO or NOTICE Only increase the TorCtl log verbosity to DEBUG if you suspect something wrong in TorCtl or with TorBEL's handling of TorCtl errors. Disabling Active Testing ======================== To run TorBEL simply as a glorified ConsensusTracker, run torbel with the "notests" option: $ ./torbel notests This is useful to verify its handling of NEWCONSENSUS or to track down non-testing-related bugs. Running the Watchdog ==================== To run TorBEL with the watchdog thread checking for deadlock, run torbel with the "watchdog" option: $ ./torbel watchdog The watchdog checks every few seconds to see if it is fed, otherwise it prints out a log message telling you it has expired and what locks are currently held. This is only useful at the moment for checking for deadlocks in the codebase.