d8c84cc4d6
* wip * wip: wrap node's sphinx key with a manager * wip: choosing correct key for packet processing * further propagation of key rotation information * attaching key rotation information to reply surbs * added basic key rotation information to mixnet contract * wip: introducing cached queries for key rotation info from nym api * unified nym-api contract cache refreshing * finish packet decoding * multi api client + retrieving rotation id * rotating sphinx key files * logic for migrating config file * wip: putting new sphinx keys to self described endpoints * processing loop of KeyRotationController * fixed sphinx key loading * rotating bloomfilters * wired up KeyRotationController * flushing bloomfilters to disk and loading * most of nym-node changes * post rebase fixes * fixes due to backwards compatible hostkeys * split http state.rs file * dont use deprecated fields * fixed backwards compatible deserialisation of host information * split up node describe cache * added a dedicated CacheRefresher listener to perform full refresh outside the set interval * controlling announced sphinx keys within nym-api * retrieving rotation id when pulling topology * split nym-nodes http handlers * v2 nym-api endpoints to retrieve nodes with additional metadata information * bug fixes... * additional bugfixes and guards against stuck epoch * testnet manager: set first nym-api as the rewarder * fixed host information deserialisation * fixed panic during first key rotation * post rebase fixes * clippy * more guards against stuck epochs * added helper method to reset node's sphinx key * instantiate mixnet contract with custom key rotation validity * additional bugfixes and debugging nym-api deadlock * passing shutdown to nym apis client * remove dead test * post rebasing fixes * missing MixnetQueryClient variants * remove usage of deprecated methods in sdk example * fix: incorrect method signature * post rebasing fixes * attempt to retrieve key rotation id before doing any config migration work * ignore tests relying on networking behaviour * allow networking failures in certain tests
49 lines
1.3 KiB
Rust
49 lines
1.3 KiB
Rust
// Copyright 2020-2023 - Nym Technologies SA <contact@nymtech.net>
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
#![warn(clippy::todo)]
|
|
#![warn(clippy::dbg_macro)]
|
|
|
|
use crate::epoch_operations::EpochAdvancer;
|
|
use crate::support::cli;
|
|
use crate::support::storage;
|
|
use ::nym_config::defaults::setup_env;
|
|
use clap::Parser;
|
|
use node_status_api::NodeStatusCache;
|
|
use nym_bin_common::logging::setup_tracing_logger;
|
|
use nym_contract_cache::cache::NymContractCache;
|
|
use support::nyxd;
|
|
use tracing::{info, trace};
|
|
|
|
mod circulating_supply_api;
|
|
mod ecash;
|
|
mod epoch_operations;
|
|
mod key_rotation;
|
|
pub(crate) mod network;
|
|
mod network_monitor;
|
|
pub(crate) mod node_describe_cache;
|
|
pub(crate) mod node_status_api;
|
|
pub(crate) mod nym_contract_cache;
|
|
pub(crate) mod nym_nodes;
|
|
mod status;
|
|
pub(crate) mod support;
|
|
mod unstable_routes;
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<(), anyhow::Error> {
|
|
cfg_if::cfg_if! {if #[cfg(feature = "console-subscriber")] {
|
|
// instrument tokio console subscriber needs RUSTFLAGS="--cfg tokio_unstable" at build time
|
|
console_subscriber::init();
|
|
}}
|
|
|
|
setup_tracing_logger();
|
|
|
|
info!("Starting nym api...");
|
|
|
|
let args = cli::Cli::parse();
|
|
trace!("args: {:#?}", args);
|
|
|
|
setup_env(args.config_env_file.as_ref());
|
|
args.execute().await
|
|
}
|