Expose and collect bootstrap status information from tor-chanmgr and tor-dirmgr
This branch adds functionality, based on postage::watch
, to export bootstrap status information from tor-dirmgr and tor-chanmgr. I expect that the content of the information will change in the future, so I've made the interfaces somewhat opaque.
Implements a first cut of #96 (closed), though we will need to refine it in the future.
Some of the information that we collect in this branch is more than strictly needed for the bootstrap data that we expose right now. I hope this isn't confusing: I think that in the future we'll probably move to collect less, or use the data that we collect in a more sophisticated way, or some of each.
I've done a trick in tor-chanmgr to avoid creating events too frequently, since otherwise it would lead to many spurious changes. If we decide to make that change elsewhere too, I think we can safely do so in a later commit.
As it stands, this branch isn't completely useful on its own, since there is no way currently to get an un-bootstrapped TorClient
. It will require #293 (closed) for that. (@eta, please let me know if the changes this makes to TorClient
will conflict with your plans there.)
NOTE: Please see the individual commit messages for more information about design rationale, tradeoffs, and future work.