/// This is only read by the PowManagerGeneric, and is written to by the [`RendRequestReceiver`].
/// Depth of the queue used to signal the publisher that it needs to update a given time period.
"Couldn't construct verifier (key not available?). We will continue without this key, but this may prevent clients from connecting..."
"Error constructing replay log. We will continue without the log, but be aware that this may allow attackers to bypass PoW defenses..."
/// Wrapper around [`RendRequest`] that implements [`std::cmp::Ord`] to sort by [`Effort`] and time.
/// Implements [`Stream`] for incoming [`RendRequest`]s, using a priority queue system to dequeue
/// This is implemented on top of a [`mpsc::Receiver`]. There is a thread that dequeues from the
/// This is not particularly optimized — queueing and dequeuing use a [`Mutex`], so there may be
/// priority queue that we could use, but we should properly benchmark things before trying to make
let counter_rendrequest_error_total = metrics::counter!("arti_hss_pow_rendrequest_error_total", "nickname" => nickname.clone());
let counter_rendrequest_verification_failure = metrics::counter!("arti_hss_pow_rendrequest_verification_failure_total", "nickname" => nickname.clone());
let counter_rend_queue_overflow = metrics::counter!("arti_hss_pow_rend_queue_overflow_total", "nickname" => nickname.clone());
let counter_rendrequest_enqueued = metrics::counter!("arti_hss_pow_rendrequest_enqueued_total", "nickname" => nickname.clone());
let histogram_rendrequest_effort = metrics::histogram!("arti_hss_pow_rendrequest_effort_hist", "nickname" => nickname.clone());
"PoW total_effort would overflow. The total effort has been capped, but this is not expected to happen - please file a bug report with logs and information about the circumstances under which this occured."
let counter_rendrequest_expired = metrics::counter!("arti_hss_pow_rendrequest_expired_total", "nickname" => nickname.clone());