5a07b73375
* removed mnemonic from gateway config struct scaffolding for common mixnet listener running verloc unconditionally in a nym-node remove filtering by mixnode extracted verloc to separate crate integrated nym-node-http-server more tightly with the binary most logic for handling forward packets running all mixnode-related tasks natively inside nymnode removed gateway storage trait in favour of the only concrete implementation most logic for handling final hop packets using nym-node owned socket listener for gateways utility for sending plain message through mixnet + gateway fix using common packet forwarding in both modes nifying nym-node metrics reproduce behaviour of the console logger cleaned up cli args redesigned gateway tasks startup procedure removing dead code scaffolding for old config v6 config migration implemented MixnetMetricsCleaner * clippy * require entry/exit for wireguard * removed dead code in migration code * updated config template * use custom user agent for verloc queries * fixed premature shutdown of gateway tasks * hidden nym-api flag to allow illegal node ips * experiment: final hop handing with wireguard * added additional startup logs * typo * fixed legacy stats endpoint data * additional logs * apply review comments * fixed local testnet manager
41 lines
1.1 KiB
Rust
41 lines
1.1 KiB
Rust
// Copyright 2023-2024 - Nym Technologies SA <contact@nymtech.net>
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
use crate::node::http::state::metrics::MetricsAppState;
|
|
use nym_node_metrics::NymNodeMetrics;
|
|
use nym_verloc::measurements::SharedVerlocStats;
|
|
use tokio::time::Instant;
|
|
|
|
pub mod metrics;
|
|
|
|
#[derive(Clone)]
|
|
pub struct AppState {
|
|
pub(crate) startup_time: Instant,
|
|
|
|
pub(crate) metrics: MetricsAppState,
|
|
}
|
|
|
|
impl AppState {
|
|
#[allow(clippy::new_without_default)]
|
|
pub fn new(metrics: NymNodeMetrics, verloc: SharedVerlocStats) -> Self {
|
|
AppState {
|
|
// is it 100% accurate?
|
|
// no.
|
|
// does it have to be?
|
|
// also no.
|
|
startup_time: Instant::now(),
|
|
metrics: MetricsAppState {
|
|
prometheus_access_token: None,
|
|
metrics,
|
|
verloc,
|
|
},
|
|
}
|
|
}
|
|
|
|
#[must_use]
|
|
pub fn with_metrics_key(mut self, bearer_token: impl Into<Option<String>>) -> Self {
|
|
self.metrics.prometheus_access_token = bearer_token.into();
|
|
self
|
|
}
|
|
}
|