From ffcc4e8fa564608fd125373e6a8fbe650315620a Mon Sep 17 00:00:00 2001 From: mfahampshire Date: Thu, 2 Jan 2025 19:13:23 +0100 Subject: [PATCH] first pass tester --- .../mixnet-check-all-gateways/Cargo.toml | 3 + .../mixnet-check-all-gateways/src/main.rs | 181 ++++++++++++++---- ...W3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh.json | 1 + ...KqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2.json | 1 + ...BpaTsy3Xd7BE2ZAEKiaQZFsXEZPf9ZKrQtxgS.json | 0 ...dQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF.json | 1 + ...QgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW.json | 1 + .../mixnet-check-all-gateways/src/scratch | 35 ++++ .../mixnet-check-all-gateways/src/utils.rs | 54 ++++++ 9 files changed, 244 insertions(+), 33 deletions(-) create mode 100644 tools/internal/mixnet-check-all-gateways/src/results/2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh.json create mode 100644 tools/internal/mixnet-check-all-gateways/src/results/4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2.json create mode 100644 tools/internal/mixnet-check-all-gateways/src/results/6vtDnxeBpaTsy3Xd7BE2ZAEKiaQZFsXEZPf9ZKrQtxgS.json create mode 100644 tools/internal/mixnet-check-all-gateways/src/results/98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF.json create mode 100644 tools/internal/mixnet-check-all-gateways/src/results/Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW.json create mode 100644 tools/internal/mixnet-check-all-gateways/src/scratch create mode 100644 tools/internal/mixnet-check-all-gateways/src/utils.rs diff --git a/tools/internal/mixnet-check-all-gateways/Cargo.toml b/tools/internal/mixnet-check-all-gateways/Cargo.toml index 7e35bfc914..16b4540983 100644 --- a/tools/internal/mixnet-check-all-gateways/Cargo.toml +++ b/tools/internal/mixnet-check-all-gateways/Cargo.toml @@ -27,3 +27,6 @@ tokio = { workspace = true, features = ["full"] } reqwest = { workspace = true, features = ["json"] } serde_json.workspace = true futures = { workspace = true } +uuid = { version = "1", features = ["v4", "serde"] } +bincode = "1.0" +dirs.workspace = true diff --git a/tools/internal/mixnet-check-all-gateways/src/main.rs b/tools/internal/mixnet-check-all-gateways/src/main.rs index feaa562304..0ea4bea331 100644 --- a/tools/internal/mixnet-check-all-gateways/src/main.rs +++ b/tools/internal/mixnet-check-all-gateways/src/main.rs @@ -1,22 +1,49 @@ // Copyright 2024 - Nym Technologies SA // SPDX-License-Identifier: GPL-3.0-only -use anyhow::Result; +use anyhow::{anyhow, Result}; use echo_server::NymEchoServer; use futures::stream::StreamExt; use nym_bin_common::logging::setup_logging; use nym_crypto::asymmetric::ed25519; use nym_sdk::mixnet; -use nym_sdk::mixnet::{AnonymousSenderTag, MixnetMessageSender, ReconstructedMessage}; +use nym_sdk::mixnet::{ + AnonymousSenderTag, IncludedSurbs, MixnetMessageSender, ReconstructedMessage, +}; use reqwest::{self, Url}; -use serde_json::Value; +use serde::{Deserialize, Serialize}; +use serde_json::{json, Value}; +use std::fs::OpenOptions; +use std::io::Write; use std::time::Duration; -use tokio::time; use tokio::time::timeout; +use tokio::time::{self, Timeout}; +#[path = "utils.rs"] +// TODO make these exportable from tcp_proxy module and then import from there, ditto with echo server lib +mod utils; +use utils::{Payload, ProxiedMessage}; + +const TIMEOUT: u64 = 10; // message ping timeout + +#[derive(Serialize, Deserialize, Debug)] +struct TestResult { + entry_gw: String, + exit_gw: String, + error: TestError, +} + +#[derive(Serialize, Deserialize, Debug)] +enum TestError { + Timeout, + NoMessage, + None, + CouldNotCreateEchoServer(String), + Other(String), +} #[tokio::main] async fn main() -> Result<()> { - setup_logging(); + // setup_logging(); // TODO think about parsing and noise here, could just parse on errors from all libs and then have info from here? let entry_gw_keys = reqwest_and_parse( Url::parse("https://validator.nymtech.net/api/v1/unstable/nym-nodes/skimmed/entry-gateways/all?no_legacy=true").unwrap(), "EntryGateway", @@ -44,18 +71,50 @@ async fn main() -> Result<()> { // ); println!("got {} exit gws", exit_gw_keys.len(),); - for gw in exit_gw_keys.clone() { - println!("{}", gw); + let mut port_range: u64 = 9000; // port that we start iterating upwards from, will go from port_range to (port_range + exit_gws.len()) by the end of the run - let mut echo_server = NymEchoServer::new( - Some(ed25519::PublicKey::from_base58_string( - exit_gw_keys[0].clone(), - )?), - None, + for exit_gw in exit_gw_keys.clone() { + println!("creating echo server connecting to {}", exit_gw); + + let filepath = format!("./src/results/{}.json", exit_gw.clone()); + let mut results = OpenOptions::new() + .read(true) + .write(true) // .append(true) + .create(true) + .open(filepath)?; + + let mut results_vec: Vec = Vec::new(); + let home_dir = dirs::home_dir().expect("Unable to get home directory"); + let mut echo_server = match NymEchoServer::new( + Some(ed25519::PublicKey::from_base58_string(&exit_gw)?), + Some( + format!( + "{}/tmp/nym-proxy-server-config-{}", + home_dir.display(), + &exit_gw + ) + .as_str(), + ), "../../../envs/mainnet.env".to_string(), // make const - "9000", // when you run concurrently you can iterate through a port range here + port_range.to_string().as_str(), ) - .await?; + .await + { + Ok(echo_server) => echo_server, + Err(err) => { + let res = TestResult { + entry_gw: "".to_string(), + exit_gw: exit_gw.clone(), + error: TestError::CouldNotCreateEchoServer(err.to_string()), + }; + results_vec.push(json!(res)); + let json_array = json!(results_vec); + println!("{json_array}"); + results.write_all(json_array.to_string().as_bytes())?; + continue; + } + }; + port_range += 1; let echo_addr = echo_server.nym_address().await; println!("echo addr: {echo_addr}"); @@ -68,43 +127,97 @@ async fn main() -> Result<()> { // dumb sleep to let it startup time::sleep(Duration::from_secs(5)).await; - for gw in entry_gw_keys.clone() { + for entry_gw in entry_gw_keys.clone() { let builder = mixnet::MixnetClientBuilder::new_ephemeral() - .request_gateway(gw) + .request_gateway(entry_gw.clone()) .build()?; let mut client = match builder.connect_to_mixnet().await { Ok(client) => client, Err(err) => { - println!("failed to connect: {err}"); - return Err(err.into()); + let res = TestResult { + entry_gw: entry_gw.clone(), + exit_gw: exit_gw.clone(), + error: TestError::Other(err.to_string()), + }; + println!("{res:#?}"); + results_vec.push(json!(res)); + // println!("failed to connect: {err}"); + continue; } }; - let our_address = client.nym_address(); - println!("{our_address}"); - client.send_plain_message(echo_addr, "ping").await.unwrap(); - match timeout(Duration::from_secs(5), client.next()).await { + let test_address = client.nym_address(); + println!("currently testing entry gateway: {test_address}"); + + // Has to be ProxiedMessage for the moment which is slightly annoying until I + // modify the ProxyServer to just stupidly echo back whatever it gets in a + // ReconstructedMessage format if it can't deseralise it to a ProxiedMessage + let session_id = uuid::Uuid::new_v4(); + let message_id = 0; + let outgoing = ProxiedMessage::new( + Payload::Data("echo test".as_bytes().to_vec()), + session_id, + message_id, + ); + let coded_message = bincode::serialize(&outgoing).unwrap(); + + match client + .send_message(echo_addr, &coded_message, IncludedSurbs::Amount(10)) + .await + { + Ok(_) => { + println!("Message sent"); + } + Err(err) => { + let res = TestResult { + entry_gw: entry_gw.clone(), + exit_gw: exit_gw.clone(), + error: TestError::Other(err.to_string()), + }; + println!("{res:#?}"); + results_vec.push(json!(res)); + continue; + } + }; + + let res = match timeout(Duration::from_secs(TIMEOUT), client.next()).await { Err(_timeout) => { println!("timed out"); + TestResult { + entry_gw, + exit_gw: exit_gw.clone(), + error: TestError::Timeout, + } } - Ok(Some(received)) => match String::from_utf8(received.message) { - Ok(message) => { - println!("received '{message}' back!"); + Ok(Some(received)) => { + let incoming: ProxiedMessage = bincode::deserialize(&received.message).unwrap(); + println!("\ngot echo: {incoming}\n"); + // TODO check incoming is same as outgoing else make a MangledReply err type + TestResult { + entry_gw, + exit_gw: exit_gw.clone(), + error: TestError::None, } - Err(err) => { - println!("the received message got malformed on the way to us: {err}"); - } - }, + } Ok(None) => { println!("failed to receive any message back..."); + TestResult { + entry_gw, + exit_gw: exit_gw.clone(), + error: TestError::NoMessage, + } } - } + }; + println!("{res:#?}"); + results_vec.push(json!(res)); println!("disconnecting the client before shutting down..."); client.disconnect().await; } + let json_array = json!(results_vec); + println!("{json_array}"); + results.write_all(json_array.to_string().as_bytes())?; } - Ok(()) } @@ -121,7 +234,7 @@ fn filter_gateway_keys(json: &Value, key: &str) -> Result> { if let Some(nodes) = json["nodes"]["data"].as_array() { for node in nodes { if let Some(performance) = node.get("performance").and_then(|v| v.as_str()) { - let performance_value: f64 = performance.parse().unwrap_or(0.0); + let performance_value: f64 = performance.parse().unwrap_or(0.0); // TODO could make this a const @ top? let inactive = node.get("role").and_then(|v| v.as_str()) == Some("Inactive"); @@ -141,7 +254,9 @@ fn filter_gateway_keys(json: &Value, key: &str) -> Result> { } } } else { - println!("No nodes found "); + // TODO make error and return / break + // println!("No nodes found "); + return Err(anyhow!("Could not parse any gateways")); } Ok(filtered_keys) } diff --git a/tools/internal/mixnet-check-all-gateways/src/results/2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh.json b/tools/internal/mixnet-check-all-gateways/src/results/2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh.json new file mode 100644 index 0000000000..154bdcd3bb --- /dev/null +++ b/tools/internal/mixnet-check-all-gateways/src/results/2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh.json @@ -0,0 +1 @@ +[{"entry_gw":"63ctaex57EvjJZu92jT2ve2ULgmjVYAQph83qNjMpFDZ","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"4S4FPLrQ3ZncmGtFXrpgWLtYRn4hcDmb7CTLwk6dkJ7A","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"C7J8SwZQqjWqhBryyjJxLt7FacVuPTwAmR2otGy53ayi","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"EsQEJhuxeNGJXzXA6R51wLCPFKWP322dHnBGXUgmvPJH","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"AkUa1476EZfpBRfWSEWvkXrUp6AGaFwV67ZpSPvDKTQ7","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"EDEtSQ6dVEE6JQqQLZFMdLETCx9NNgqoxkbvoyvfQR48","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"E3Zyogy3C7X1yNpQKwhsaveGbfgFwPpobHZ8DrPEUwyM","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"Ca4bbfxVGtuGuiYvH7V5jSnj9Jp4VJa4Sznu2doZD5np","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"3B7PsbXFuqq6rerYFLw5HPbQb4UmBqAhfWURRovMmWoj","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"H7rDKAXAjJjtkJAgz3paB95zUowH5pHVMBQBdxrx6Yzg","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"4WgKhJdmUffz4e1o1ftVAGS3HnG56LiNAxA9dmaekrVd","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"DLxLKsd3LTnfudSSmHanPaZACsh1x4MGEzfJS4jQibir","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"DfNMqQRy6pPkU8Z5rBsxRwzDUzAMXHPFwMhjF16ScZqn","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"2zHiExNRKiCXVKS35SNKtK4apGfZELMpA1jJ2gVevJoz","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"9PG6vqoVniK7bWD7esueje9pD3P3iU3Md1T8FAuNQipW","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"DgD7K1RHn7kMPC3ibg6HkJFkDqaFstxpEFHgronRdCqj","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"6CTSR2KbwhwHJ2kA3xqA9KLBw1dXcfSyPRKaXBB7Sh1C","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"2hg8pU5fG6WxygEx1pqrwUDkJ8gu6GAe1LysNTfrF4jX","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"7mperTohH5oNonkZH7EJkuZaa5WMowdgYY7ah6UFgPxJ","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"38zcSsvjXsAX7C28ko2H3Lt55X4TYxfZYkPADxKXZHUj","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"7fiZtNL1RACQTwGrKLBT9nbY77bfwZnX9rqcWqc53qgv","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"9xJM74FwwHhEKKJHihD21QSZnHM2QBRMoFx9Wst6qNBS","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"6ftUpAtiNRxPb793eg9vKhHhBJcgm8wRcToF3UbJJyWn","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"DiciBkjHovXzTDE2EFJKPNj3TGw2oQjr7HPSas2YQPiQ","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"ADjpymCgjFsE5m7YvnZFxLMscg85dCUUesR5g8yN3Mzz","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"J22ULbeW3rXvkHseBS5UuQnZ5c8uQyFQD1eLxm9ULz3H","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"BeT6Hyt1cSvtC5rYZeabZ5E3FWqRXHqUxb62DTLh564K","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"FmbUngD26tUGvJN8QqL78iK96bZYV2bWkjWZU7fDwBN1","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"Hs463Wh5LtWZUNyAmt4trcCbNVsuUhry1wpEXpVnAAfn","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"7SnUJy4rWH9hXCitpgwx7XoK5PGRBNjaiz7BWeaqRfXx","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"8ShVhzs9fpKyZPgdtTTRT8yviU2tqk3i5Hnk7rMfLbML","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"HMbxs892i1thjXtPhtz9TGU41ghZCiyC8HhYWkQZs4Cn","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"8R9CjJsfWbAmisHcarJYLrvTdkW1D4CLyy3iAY89j5QF","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"A2dvg4E4SYFqaziJdGPv9hWF7Yh1Po11YSp9p7eEv1xm","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"Fottgyv51kxDKTcVmqP5VfkaXbuTZtCuPWikksTNBRVQ","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"Hm7Jn79ztfvXcQjTpUdyx2jqcv4UgBAHcgChhH6b5P4Q","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"7WWGub1zjX5KxYHzqiUHsCd12He5hcwfi97GWXLuwnrZ","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"HNw9Z6HqwuhUXrqx6CDWMLK2bGGhCaPTSsRRevLWGPXw","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"FfdYC39U4qREoUZSrdNzGLQNug6Ac1PdxkZrUifR4jBR","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"CcYinhLeFU8n6xs78FG6Rz3wvosGTCU2hLB1CZyfkMVe","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"4cdgnckjRBAaaP4ds68YEJPRc78paC4YWMGBDUS8G57C","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"58ceEFaLJh6zAo3cirzT1BDQm7D3L5acnQrxGH1D6TAY","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"2DFyK19kUDGdZYkAUE5pTwot6Hvf7uRhnjs5rKP8PDSk","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"98uf1hyzmWTinkyc5PGyCxDo3E9QQK5XhWQ8B8z8aFoX","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"7VJQ4FGRmLESkmjTeTpF6o3VFLVZ5xe9CoJSR38bZawQ","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"AY4uHZFYVxwT6NiEXGLmdp9mxVZpW33ViUUqPgzWcF59","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"DAGQxdxwAkwjaLjTw1B9vndia4YyFD15qRgcTQxrmkom","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"GwPzj3VXALYZJKjbEaveL8CD9wp4eDU4DXxUjMTRxFn6","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"7ntzmDZRvG4a1pnDBU4Bg1RiAmLwmqXV5sZGNw68Ce14","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"},{"entry_gw":"ELjxhHLX1ZxfnJgQhtBTUiVUzLbfZs9Y6bSTpLLkAkR7","error":"None","exit_gw":"2BuMSfMW3zpeAjKXyKLhmY4QW1DXurrtSPEJ6CjX3SEh"}] \ No newline at end of file diff --git a/tools/internal/mixnet-check-all-gateways/src/results/4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2.json b/tools/internal/mixnet-check-all-gateways/src/results/4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2.json new file mode 100644 index 0000000000..884d1948bc --- /dev/null +++ b/tools/internal/mixnet-check-all-gateways/src/results/4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2.json @@ -0,0 +1 @@ +[{"entry_gw":"63ctaex57EvjJZu92jT2ve2ULgmjVYAQph83qNjMpFDZ","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"4S4FPLrQ3ZncmGtFXrpgWLtYRn4hcDmb7CTLwk6dkJ7A","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"C7J8SwZQqjWqhBryyjJxLt7FacVuPTwAmR2otGy53ayi","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"EsQEJhuxeNGJXzXA6R51wLCPFKWP322dHnBGXUgmvPJH","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"AkUa1476EZfpBRfWSEWvkXrUp6AGaFwV67ZpSPvDKTQ7","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"EDEtSQ6dVEE6JQqQLZFMdLETCx9NNgqoxkbvoyvfQR48","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"E3Zyogy3C7X1yNpQKwhsaveGbfgFwPpobHZ8DrPEUwyM","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"Ca4bbfxVGtuGuiYvH7V5jSnj9Jp4VJa4Sznu2doZD5np","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"3B7PsbXFuqq6rerYFLw5HPbQb4UmBqAhfWURRovMmWoj","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"H7rDKAXAjJjtkJAgz3paB95zUowH5pHVMBQBdxrx6Yzg","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"4WgKhJdmUffz4e1o1ftVAGS3HnG56LiNAxA9dmaekrVd","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"DLxLKsd3LTnfudSSmHanPaZACsh1x4MGEzfJS4jQibir","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"DfNMqQRy6pPkU8Z5rBsxRwzDUzAMXHPFwMhjF16ScZqn","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"2zHiExNRKiCXVKS35SNKtK4apGfZELMpA1jJ2gVevJoz","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"9PG6vqoVniK7bWD7esueje9pD3P3iU3Md1T8FAuNQipW","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"DgD7K1RHn7kMPC3ibg6HkJFkDqaFstxpEFHgronRdCqj","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"6CTSR2KbwhwHJ2kA3xqA9KLBw1dXcfSyPRKaXBB7Sh1C","error":"Timeout","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"2hg8pU5fG6WxygEx1pqrwUDkJ8gu6GAe1LysNTfrF4jX","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"7mperTohH5oNonkZH7EJkuZaa5WMowdgYY7ah6UFgPxJ","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"38zcSsvjXsAX7C28ko2H3Lt55X4TYxfZYkPADxKXZHUj","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"7fiZtNL1RACQTwGrKLBT9nbY77bfwZnX9rqcWqc53qgv","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"9xJM74FwwHhEKKJHihD21QSZnHM2QBRMoFx9Wst6qNBS","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"6ftUpAtiNRxPb793eg9vKhHhBJcgm8wRcToF3UbJJyWn","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"DiciBkjHovXzTDE2EFJKPNj3TGw2oQjr7HPSas2YQPiQ","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"ADjpymCgjFsE5m7YvnZFxLMscg85dCUUesR5g8yN3Mzz","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"J22ULbeW3rXvkHseBS5UuQnZ5c8uQyFQD1eLxm9ULz3H","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"BeT6Hyt1cSvtC5rYZeabZ5E3FWqRXHqUxb62DTLh564K","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"FmbUngD26tUGvJN8QqL78iK96bZYV2bWkjWZU7fDwBN1","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"Hs463Wh5LtWZUNyAmt4trcCbNVsuUhry1wpEXpVnAAfn","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"7SnUJy4rWH9hXCitpgwx7XoK5PGRBNjaiz7BWeaqRfXx","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"8ShVhzs9fpKyZPgdtTTRT8yviU2tqk3i5Hnk7rMfLbML","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"HMbxs892i1thjXtPhtz9TGU41ghZCiyC8HhYWkQZs4Cn","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"8R9CjJsfWbAmisHcarJYLrvTdkW1D4CLyy3iAY89j5QF","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"A2dvg4E4SYFqaziJdGPv9hWF7Yh1Po11YSp9p7eEv1xm","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"Fottgyv51kxDKTcVmqP5VfkaXbuTZtCuPWikksTNBRVQ","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"Hm7Jn79ztfvXcQjTpUdyx2jqcv4UgBAHcgChhH6b5P4Q","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"7WWGub1zjX5KxYHzqiUHsCd12He5hcwfi97GWXLuwnrZ","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"HNw9Z6HqwuhUXrqx6CDWMLK2bGGhCaPTSsRRevLWGPXw","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"FfdYC39U4qREoUZSrdNzGLQNug6Ac1PdxkZrUifR4jBR","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"CcYinhLeFU8n6xs78FG6Rz3wvosGTCU2hLB1CZyfkMVe","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"4cdgnckjRBAaaP4ds68YEJPRc78paC4YWMGBDUS8G57C","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"58ceEFaLJh6zAo3cirzT1BDQm7D3L5acnQrxGH1D6TAY","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"2DFyK19kUDGdZYkAUE5pTwot6Hvf7uRhnjs5rKP8PDSk","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"98uf1hyzmWTinkyc5PGyCxDo3E9QQK5XhWQ8B8z8aFoX","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"7VJQ4FGRmLESkmjTeTpF6o3VFLVZ5xe9CoJSR38bZawQ","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"AY4uHZFYVxwT6NiEXGLmdp9mxVZpW33ViUUqPgzWcF59","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"DAGQxdxwAkwjaLjTw1B9vndia4YyFD15qRgcTQxrmkom","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"GwPzj3VXALYZJKjbEaveL8CD9wp4eDU4DXxUjMTRxFn6","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"7ntzmDZRvG4a1pnDBU4Bg1RiAmLwmqXV5sZGNw68Ce14","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"},{"entry_gw":"ELjxhHLX1ZxfnJgQhtBTUiVUzLbfZs9Y6bSTpLLkAkR7","error":"None","exit_gw":"4h283ohKqPRq7dakfXgVgWYidXoSatvy4fXXJdZpfhA2"}] \ No newline at end of file diff --git a/tools/internal/mixnet-check-all-gateways/src/results/6vtDnxeBpaTsy3Xd7BE2ZAEKiaQZFsXEZPf9ZKrQtxgS.json b/tools/internal/mixnet-check-all-gateways/src/results/6vtDnxeBpaTsy3Xd7BE2ZAEKiaQZFsXEZPf9ZKrQtxgS.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/internal/mixnet-check-all-gateways/src/results/98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF.json b/tools/internal/mixnet-check-all-gateways/src/results/98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF.json new file mode 100644 index 0000000000..615079aa96 --- /dev/null +++ b/tools/internal/mixnet-check-all-gateways/src/results/98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF.json @@ -0,0 +1 @@ +[{"entry_gw":"63ctaex57EvjJZu92jT2ve2ULgmjVYAQph83qNjMpFDZ","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"4S4FPLrQ3ZncmGtFXrpgWLtYRn4hcDmb7CTLwk6dkJ7A","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"C7J8SwZQqjWqhBryyjJxLt7FacVuPTwAmR2otGy53ayi","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"EsQEJhuxeNGJXzXA6R51wLCPFKWP322dHnBGXUgmvPJH","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"AkUa1476EZfpBRfWSEWvkXrUp6AGaFwV67ZpSPvDKTQ7","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"EDEtSQ6dVEE6JQqQLZFMdLETCx9NNgqoxkbvoyvfQR48","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"E3Zyogy3C7X1yNpQKwhsaveGbfgFwPpobHZ8DrPEUwyM","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"Ca4bbfxVGtuGuiYvH7V5jSnj9Jp4VJa4Sznu2doZD5np","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"3B7PsbXFuqq6rerYFLw5HPbQb4UmBqAhfWURRovMmWoj","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"H7rDKAXAjJjtkJAgz3paB95zUowH5pHVMBQBdxrx6Yzg","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"4WgKhJdmUffz4e1o1ftVAGS3HnG56LiNAxA9dmaekrVd","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"DLxLKsd3LTnfudSSmHanPaZACsh1x4MGEzfJS4jQibir","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"DfNMqQRy6pPkU8Z5rBsxRwzDUzAMXHPFwMhjF16ScZqn","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"2zHiExNRKiCXVKS35SNKtK4apGfZELMpA1jJ2gVevJoz","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"9PG6vqoVniK7bWD7esueje9pD3P3iU3Md1T8FAuNQipW","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"DgD7K1RHn7kMPC3ibg6HkJFkDqaFstxpEFHgronRdCqj","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"6CTSR2KbwhwHJ2kA3xqA9KLBw1dXcfSyPRKaXBB7Sh1C","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"2hg8pU5fG6WxygEx1pqrwUDkJ8gu6GAe1LysNTfrF4jX","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"7mperTohH5oNonkZH7EJkuZaa5WMowdgYY7ah6UFgPxJ","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"38zcSsvjXsAX7C28ko2H3Lt55X4TYxfZYkPADxKXZHUj","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"7fiZtNL1RACQTwGrKLBT9nbY77bfwZnX9rqcWqc53qgv","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"9xJM74FwwHhEKKJHihD21QSZnHM2QBRMoFx9Wst6qNBS","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"6ftUpAtiNRxPb793eg9vKhHhBJcgm8wRcToF3UbJJyWn","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"DiciBkjHovXzTDE2EFJKPNj3TGw2oQjr7HPSas2YQPiQ","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"ADjpymCgjFsE5m7YvnZFxLMscg85dCUUesR5g8yN3Mzz","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"J22ULbeW3rXvkHseBS5UuQnZ5c8uQyFQD1eLxm9ULz3H","error":"Timeout","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"BeT6Hyt1cSvtC5rYZeabZ5E3FWqRXHqUxb62DTLh564K","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"FmbUngD26tUGvJN8QqL78iK96bZYV2bWkjWZU7fDwBN1","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"Hs463Wh5LtWZUNyAmt4trcCbNVsuUhry1wpEXpVnAAfn","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"7SnUJy4rWH9hXCitpgwx7XoK5PGRBNjaiz7BWeaqRfXx","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"8ShVhzs9fpKyZPgdtTTRT8yviU2tqk3i5Hnk7rMfLbML","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"HMbxs892i1thjXtPhtz9TGU41ghZCiyC8HhYWkQZs4Cn","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"8R9CjJsfWbAmisHcarJYLrvTdkW1D4CLyy3iAY89j5QF","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"A2dvg4E4SYFqaziJdGPv9hWF7Yh1Po11YSp9p7eEv1xm","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"Fottgyv51kxDKTcVmqP5VfkaXbuTZtCuPWikksTNBRVQ","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"Hm7Jn79ztfvXcQjTpUdyx2jqcv4UgBAHcgChhH6b5P4Q","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"7WWGub1zjX5KxYHzqiUHsCd12He5hcwfi97GWXLuwnrZ","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"HNw9Z6HqwuhUXrqx6CDWMLK2bGGhCaPTSsRRevLWGPXw","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"FfdYC39U4qREoUZSrdNzGLQNug6Ac1PdxkZrUifR4jBR","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"CcYinhLeFU8n6xs78FG6Rz3wvosGTCU2hLB1CZyfkMVe","error":"Timeout","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"4cdgnckjRBAaaP4ds68YEJPRc78paC4YWMGBDUS8G57C","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"58ceEFaLJh6zAo3cirzT1BDQm7D3L5acnQrxGH1D6TAY","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"2DFyK19kUDGdZYkAUE5pTwot6Hvf7uRhnjs5rKP8PDSk","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"98uf1hyzmWTinkyc5PGyCxDo3E9QQK5XhWQ8B8z8aFoX","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"7VJQ4FGRmLESkmjTeTpF6o3VFLVZ5xe9CoJSR38bZawQ","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"AY4uHZFYVxwT6NiEXGLmdp9mxVZpW33ViUUqPgzWcF59","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"DAGQxdxwAkwjaLjTw1B9vndia4YyFD15qRgcTQxrmkom","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"GwPzj3VXALYZJKjbEaveL8CD9wp4eDU4DXxUjMTRxFn6","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"7ntzmDZRvG4a1pnDBU4Bg1RiAmLwmqXV5sZGNw68Ce14","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"},{"entry_gw":"ELjxhHLX1ZxfnJgQhtBTUiVUzLbfZs9Y6bSTpLLkAkR7","error":"None","exit_gw":"98FmUvDdQYEeV1ioi5NpFK7DoeHphVECndaG7fkRUsaF"}] \ No newline at end of file diff --git a/tools/internal/mixnet-check-all-gateways/src/results/Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW.json b/tools/internal/mixnet-check-all-gateways/src/results/Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW.json new file mode 100644 index 0000000000..67eea3fdaa --- /dev/null +++ b/tools/internal/mixnet-check-all-gateways/src/results/Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW.json @@ -0,0 +1 @@ +[{"entry_gw":"63ctaex57EvjJZu92jT2ve2ULgmjVYAQph83qNjMpFDZ","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"4S4FPLrQ3ZncmGtFXrpgWLtYRn4hcDmb7CTLwk6dkJ7A","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"C7J8SwZQqjWqhBryyjJxLt7FacVuPTwAmR2otGy53ayi","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"EsQEJhuxeNGJXzXA6R51wLCPFKWP322dHnBGXUgmvPJH","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"AkUa1476EZfpBRfWSEWvkXrUp6AGaFwV67ZpSPvDKTQ7","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"EDEtSQ6dVEE6JQqQLZFMdLETCx9NNgqoxkbvoyvfQR48","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"E3Zyogy3C7X1yNpQKwhsaveGbfgFwPpobHZ8DrPEUwyM","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"Ca4bbfxVGtuGuiYvH7V5jSnj9Jp4VJa4Sznu2doZD5np","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"3B7PsbXFuqq6rerYFLw5HPbQb4UmBqAhfWURRovMmWoj","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"H7rDKAXAjJjtkJAgz3paB95zUowH5pHVMBQBdxrx6Yzg","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"4WgKhJdmUffz4e1o1ftVAGS3HnG56LiNAxA9dmaekrVd","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"DLxLKsd3LTnfudSSmHanPaZACsh1x4MGEzfJS4jQibir","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"DfNMqQRy6pPkU8Z5rBsxRwzDUzAMXHPFwMhjF16ScZqn","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"2zHiExNRKiCXVKS35SNKtK4apGfZELMpA1jJ2gVevJoz","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"9PG6vqoVniK7bWD7esueje9pD3P3iU3Md1T8FAuNQipW","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"DgD7K1RHn7kMPC3ibg6HkJFkDqaFstxpEFHgronRdCqj","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"6CTSR2KbwhwHJ2kA3xqA9KLBw1dXcfSyPRKaXBB7Sh1C","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"2hg8pU5fG6WxygEx1pqrwUDkJ8gu6GAe1LysNTfrF4jX","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"7mperTohH5oNonkZH7EJkuZaa5WMowdgYY7ah6UFgPxJ","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"38zcSsvjXsAX7C28ko2H3Lt55X4TYxfZYkPADxKXZHUj","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"7fiZtNL1RACQTwGrKLBT9nbY77bfwZnX9rqcWqc53qgv","error":"Timeout","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"9xJM74FwwHhEKKJHihD21QSZnHM2QBRMoFx9Wst6qNBS","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"6ftUpAtiNRxPb793eg9vKhHhBJcgm8wRcToF3UbJJyWn","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"DiciBkjHovXzTDE2EFJKPNj3TGw2oQjr7HPSas2YQPiQ","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"ADjpymCgjFsE5m7YvnZFxLMscg85dCUUesR5g8yN3Mzz","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"J22ULbeW3rXvkHseBS5UuQnZ5c8uQyFQD1eLxm9ULz3H","error":"Timeout","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"BeT6Hyt1cSvtC5rYZeabZ5E3FWqRXHqUxb62DTLh564K","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"FmbUngD26tUGvJN8QqL78iK96bZYV2bWkjWZU7fDwBN1","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"Hs463Wh5LtWZUNyAmt4trcCbNVsuUhry1wpEXpVnAAfn","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"7SnUJy4rWH9hXCitpgwx7XoK5PGRBNjaiz7BWeaqRfXx","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"8ShVhzs9fpKyZPgdtTTRT8yviU2tqk3i5Hnk7rMfLbML","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"HMbxs892i1thjXtPhtz9TGU41ghZCiyC8HhYWkQZs4Cn","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"8R9CjJsfWbAmisHcarJYLrvTdkW1D4CLyy3iAY89j5QF","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"A2dvg4E4SYFqaziJdGPv9hWF7Yh1Po11YSp9p7eEv1xm","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"Fottgyv51kxDKTcVmqP5VfkaXbuTZtCuPWikksTNBRVQ","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"Hm7Jn79ztfvXcQjTpUdyx2jqcv4UgBAHcgChhH6b5P4Q","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"7WWGub1zjX5KxYHzqiUHsCd12He5hcwfi97GWXLuwnrZ","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"HNw9Z6HqwuhUXrqx6CDWMLK2bGGhCaPTSsRRevLWGPXw","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"FfdYC39U4qREoUZSrdNzGLQNug6Ac1PdxkZrUifR4jBR","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"CcYinhLeFU8n6xs78FG6Rz3wvosGTCU2hLB1CZyfkMVe","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"4cdgnckjRBAaaP4ds68YEJPRc78paC4YWMGBDUS8G57C","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"58ceEFaLJh6zAo3cirzT1BDQm7D3L5acnQrxGH1D6TAY","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"2DFyK19kUDGdZYkAUE5pTwot6Hvf7uRhnjs5rKP8PDSk","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"98uf1hyzmWTinkyc5PGyCxDo3E9QQK5XhWQ8B8z8aFoX","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"7VJQ4FGRmLESkmjTeTpF6o3VFLVZ5xe9CoJSR38bZawQ","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"AY4uHZFYVxwT6NiEXGLmdp9mxVZpW33ViUUqPgzWcF59","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"DAGQxdxwAkwjaLjTw1B9vndia4YyFD15qRgcTQxrmkom","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"GwPzj3VXALYZJKjbEaveL8CD9wp4eDU4DXxUjMTRxFn6","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"7ntzmDZRvG4a1pnDBU4Bg1RiAmLwmqXV5sZGNw68Ce14","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"},{"entry_gw":"ELjxhHLX1ZxfnJgQhtBTUiVUzLbfZs9Y6bSTpLLkAkR7","error":"None","exit_gw":"Eb15FTXQgnenwLmqdfCQNj6PmKjMszrmHhtXqKKRafMW"}] \ No newline at end of file diff --git a/tools/internal/mixnet-check-all-gateways/src/scratch b/tools/internal/mixnet-check-all-gateways/src/scratch new file mode 100644 index 0000000000..d3ac6b9d01 --- /dev/null +++ b/tools/internal/mixnet-check-all-gateways/src/scratch @@ -0,0 +1,35 @@ + + // let echo = mixnet::MixnetClientBuilder::new_ephemeral() + // .request_gateway(gw) + // .build()?; + // let mut client = echo.connect_to_mixnet().await?; + // let echo_addr = client.nym_address().clone(); + + // tokio::task::spawn(async move { + // loop { + // println!("Waiting for message\n"); + // let mut message: Vec = Vec::new(); + // while let Some(new_message) = client.wait_for_messages().await { + // if new_message.is_empty() { + // continue; + // } + // message = new_message; + // break; + // } + + // let mut parsed = String::new(); + // if let Some(r) = message.first() { + // parsed = String::from_utf8(r.message.clone()).unwrap(); + // } + // let return_recipient: AnonymousSenderTag = message[0].sender_tag.unwrap(); + // println!("\nReceived: {} from {}", parsed, return_recipient); + + // println!("Replying using SURBs"); + // client + // .send_reply(return_recipient, parsed.to_string()) + // .await + // .unwrap(); + + // tokio::time::sleep(tokio::time::Duration::from_secs(1)).await; + // } + // }); diff --git a/tools/internal/mixnet-check-all-gateways/src/utils.rs b/tools/internal/mixnet-check-all-gateways/src/utils.rs new file mode 100644 index 0000000000..0735b009db --- /dev/null +++ b/tools/internal/mixnet-check-all-gateways/src/utils.rs @@ -0,0 +1,54 @@ +use serde::{Deserialize, Serialize}; +use std::fmt; +use uuid::Uuid; + +#[derive(Serialize, Deserialize, Clone, Debug)] +pub struct ProxiedMessage { + pub message: Payload, + session_id: Uuid, + message_id: u16, +} + +impl ProxiedMessage { + pub fn new(message: Payload, session_id: Uuid, message_id: u16) -> Self { + ProxiedMessage { + message, + session_id, + message_id, + } + } + + pub fn message(&self) -> &Payload { + &self.message + } + + pub fn session_id(&self) -> Uuid { + self.session_id + } + + pub fn message_id(&self) -> u16 { + self.message_id + } +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] +pub enum Payload { + Data(Vec), + Close, +} + +impl fmt::Display for ProxiedMessage { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + let message = match self.message() { + Payload::Data(ref data) => format!("Data({})", data.len()), + Payload::Close => "Close".to_string(), + }; + write!( + f, + "ProxiedMessage {{ message: {}, session_id: {}, message_id: {} }}", + message, + self.session_id(), + self.message_id() + ) + } +}