each relay is in a microdesc consensus, cached at each node
each bridge descriptor is cached at each bridge client
We have other tickets for checking:
microdescriptors
cached bridge descriptors at the bridge authority
the bridge networkstatus
That just leaves onion services.
Onion services are tricky, because they post to some HSDirs in the network, but not all. And those HSDirs don't cache the onion service descriptors in a file.
So here is one possible design for this feature:
check each onion service log for a successful descriptor post to at least one HSDir
check v2 and v3 onion services
call it an extra 200% "bootstrap" stage (because it's a sender log check, not a receiver cached file check)
require 200% bootstrap for onion services
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items 0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items 0
Link issues together to show that they're related.
Learn more.
You could just search for both messages, and use whichever one is present. (Chutney doesn't configure v2 and v3 onion services on the same instance.)
Once you have "search for both" working, you can make this extra change:
Make a function that checks the length of hs_hostname, and returns the onion service version. (Onion services used to be called "hidden services", so lots of old code uses the "hs" acronym.)
call it an extra 200% "bootstrap" stage (because it's a sender log check, not a receiver cached file check)
There are two different ways to use getLastOnionServiceDescStatus() in the rest of the code:
At the end of getLastBootstrapStatus(), if the service has bootstrapped, check getLastOnionServiceDescStatus(), and if the onion service status is higher, return it instead
In isBootstrapped(), check getLastBootstrapStatus() and getLastOnionServiceDescStatus(). In wait_for_bootstrap(), print both getLastBootstrapStatus() and getLastOnionServiceDescStatus().
I think I prefer option 2, because chutney will give better diagnostic output in its logs. But either option is a good first step.