change to check authv2
This commit is contained in:
@@ -16,6 +16,9 @@ pub struct AuthenticateRequest {
|
||||
pub content: AuthenticateRequestContent,
|
||||
|
||||
pub request_signature: ed25519::Signature,
|
||||
|
||||
#[serde(default)]
|
||||
pub debug_trace_id: Option<String>,
|
||||
}
|
||||
|
||||
impl AuthenticateRequest {
|
||||
@@ -23,6 +26,7 @@ impl AuthenticateRequest {
|
||||
protocol_version: u8,
|
||||
shared_key: &SharedGatewayKey,
|
||||
identity_keys: &ed25519::KeyPair,
|
||||
debug_trace_id: Option<String>,
|
||||
) -> Result<AuthenticateRequest, GatewayRequestsError> {
|
||||
let content = AuthenticateRequestContent::new(
|
||||
protocol_version,
|
||||
@@ -35,6 +39,7 @@ impl AuthenticateRequest {
|
||||
Ok(AuthenticateRequest {
|
||||
content,
|
||||
request_signature,
|
||||
debug_trace_id,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,9 @@ use nym_sphinx::DestinationAddressBytes;
|
||||
use nym_statistics_common::types::SessionType;
|
||||
use opentelemetry::trace::TraceContextExt;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::panic;
|
||||
use std::str::FromStr;
|
||||
use tracing::{instrument, warn};
|
||||
use tungstenite::Message;
|
||||
|
||||
pub mod authenticate;
|
||||
@@ -77,7 +79,6 @@ pub enum ClientControlRequest {
|
||||
address: String,
|
||||
enc_address: String,
|
||||
iv: String,
|
||||
|
||||
/// this is a trace id that is used in testing and performance verification
|
||||
/// in mainnet, this will always be set to None
|
||||
#[serde(default)]
|
||||
@@ -134,9 +135,12 @@ impl ClientControlRequest {
|
||||
let ciphertext = shared_key.encrypt_naive(address.as_bytes_ref(), Some(&nonce))?;
|
||||
|
||||
let otel_context = opentelemetry::Context::current();
|
||||
warn!("OTEL CONTEXT: {:?}", otel_context);
|
||||
let span = otel_context.span();
|
||||
let context = span.span_context();
|
||||
let trace_id = context.trace_id();
|
||||
warn!("TRACE_ID: {:?}", trace_id);
|
||||
panic!();
|
||||
|
||||
Ok(ClientControlRequest::Authenticate {
|
||||
protocol_version,
|
||||
@@ -147,6 +151,7 @@ impl ClientControlRequest {
|
||||
})
|
||||
}
|
||||
|
||||
#[instrument]
|
||||
pub fn new_authenticate_v2(
|
||||
shared_key: &SharedGatewayKey,
|
||||
identity_keys: &ed25519::KeyPair,
|
||||
@@ -154,8 +159,21 @@ impl ClientControlRequest {
|
||||
// if we're using v2 authentication, we must announce at least that protocol version
|
||||
let protocol_version = AUTHENTICATE_V2_PROTOCOL_VERSION;
|
||||
|
||||
let otel_context = opentelemetry::Context::current();
|
||||
warn!("OTEL CONTEXT: {:?}", otel_context);
|
||||
let span = otel_context.span();
|
||||
let context = span.span_context();
|
||||
let trace_id = context.trace_id();
|
||||
warn!("TRACE_ID: {:?}", trace_id);
|
||||
// panic!();
|
||||
|
||||
Ok(ClientControlRequest::AuthenticateV2(Box::new(
|
||||
AuthenticateRequest::new(protocol_version, shared_key, identity_keys)?,
|
||||
AuthenticateRequest::new(
|
||||
protocol_version,
|
||||
shared_key,
|
||||
identity_keys,
|
||||
Some(trace_id.to_string()),
|
||||
)?,
|
||||
)))
|
||||
}
|
||||
|
||||
|
||||
@@ -889,40 +889,41 @@ impl<R, S> FreshHandler<R, S> {
|
||||
│ // All child spans inherit trace_id "abc123..." │
|
||||
└───────────────────────────────────────────────────────┘
|
||||
*/
|
||||
let span = if let ClientControlRequest::Authenticate {
|
||||
debug_trace_id: Some(ref trace_id),
|
||||
..
|
||||
} = request
|
||||
{
|
||||
warn!("RAW TRACE ID: {trace_id:?}");
|
||||
let trace_id = opentelemetry::trace::TraceId::from_hex(&trace_id)
|
||||
.expect("Invalid trace ID format");
|
||||
warn!("🫂TraceID: {trace_id}🫂");
|
||||
let span = if let ClientControlRequest::AuthenticateV2(ref auth_req) = request {
|
||||
if let Some(ref trace_id) = auth_req.debug_trace_id {
|
||||
warn!("RAW TRACE ID: {trace_id:?}");
|
||||
let trace_id = opentelemetry::trace::TraceId::from_hex(&trace_id)
|
||||
.expect("Invalid trace ID format");
|
||||
warn!("🫂TraceID: {trace_id}🫂");
|
||||
|
||||
// We don't need to try and preserve the SpanID, just the TraceID (right?) so
|
||||
// just making a new SpanID for the moment
|
||||
let id_generator = RandomIdGenerator::default();
|
||||
let span_id = id_generator.new_span_id();
|
||||
// We don't need to try and preserve the SpanID, just the TraceID (right?) so
|
||||
// just making a new SpanID for the moment
|
||||
let id_generator = RandomIdGenerator::default();
|
||||
let span_id = id_generator.new_span_id();
|
||||
|
||||
let span_context = opentelemetry::trace::SpanContext::new(
|
||||
trace_id,
|
||||
span_id,
|
||||
opentelemetry::trace::TraceFlags::SAMPLED,
|
||||
true, // is_remote = true since this comes from another service
|
||||
Default::default(),
|
||||
);
|
||||
let span_context = opentelemetry::trace::SpanContext::new(
|
||||
trace_id,
|
||||
span_id,
|
||||
opentelemetry::trace::TraceFlags::SAMPLED,
|
||||
true, // is_remote = true since this comes from another service
|
||||
Default::default(),
|
||||
);
|
||||
|
||||
use opentelemetry::trace::TraceContextExt;
|
||||
let remote_context =
|
||||
opentelemetry::Context::current().with_remote_span_context(span_context);
|
||||
use opentelemetry::trace::TraceContextExt;
|
||||
let remote_context =
|
||||
opentelemetry::Context::current().with_remote_span_context(span_context);
|
||||
|
||||
// Create span with remote context as parent
|
||||
use tracing_opentelemetry::OpenTelemetrySpanExt;
|
||||
let span = info_span!("authenticate_v1");
|
||||
span.set_parent(remote_context);
|
||||
Some(span)
|
||||
// Create span with remote context as parent
|
||||
use tracing_opentelemetry::OpenTelemetrySpanExt;
|
||||
let span = info_span!("authenticate_v2");
|
||||
span.set_parent(remote_context);
|
||||
Some(span)
|
||||
} else {
|
||||
warn!("AuthenticateV2 request but no trace_id provided");
|
||||
None
|
||||
}
|
||||
} else {
|
||||
warn!("COULDN'T FIND TRACE_ID");
|
||||
warn!("Not an AuthenticateV2 request");
|
||||
None
|
||||
};
|
||||
|
||||
|
||||
@@ -3,21 +3,26 @@ use nym_sdk::mixnet::{
|
||||
AnonymousSenderTag, MixnetClientBuilder, MixnetMessageSender, ReconstructedMessage,
|
||||
StoragePaths,
|
||||
};
|
||||
use std::path::PathBuf;
|
||||
use tempfile::TempDir;
|
||||
|
||||
use opentelemetry::trace::TraceContextExt;
|
||||
use opentelemetry::trace::Tracer;
|
||||
use opentelemetry::trace::TracerProvider;
|
||||
use opentelemetry::Context;
|
||||
use opentelemetry::{global, KeyValue};
|
||||
use opentelemetry_otlp::tonic_types::metadata::MetadataMap;
|
||||
use opentelemetry_otlp::tonic_types::transport::ClientTlsConfig;
|
||||
use opentelemetry_otlp::{WithExportConfig, WithTonicConfig};
|
||||
use opentelemetry_sdk::metrics::{MeterProviderBuilder, PeriodicReader, SdkMeterProvider};
|
||||
use opentelemetry_sdk::trace::IdGenerator;
|
||||
use opentelemetry_sdk::trace::{RandomIdGenerator, SdkTracerProvider};
|
||||
use opentelemetry_sdk::{trace::Sampler, Resource};
|
||||
use opentelemetry_semantic_conventions::{
|
||||
attribute::{DEPLOYMENT_ENVIRONMENT_NAME, SERVICE_VERSION},
|
||||
SCHEMA_URL,
|
||||
};
|
||||
use std::path::PathBuf;
|
||||
use tempfile::TempDir;
|
||||
use tracing::instrument;
|
||||
use tracing::{info, warn};
|
||||
use tracing_core::Level;
|
||||
use tracing_opentelemetry::{MetricsLayer, OpenTelemetryLayer};
|
||||
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
|
||||
@@ -64,6 +69,10 @@ fn init_tracer_provider(metadata: MetadataMap) -> anyhow::Result<SdkTracerProvid
|
||||
.with_batch_exporter(exporter)
|
||||
.build();
|
||||
|
||||
// We set this in meter provider but didn't in here
|
||||
// :facepalm:
|
||||
global::set_tracer_provider(tracer.clone());
|
||||
|
||||
Ok(tracer)
|
||||
}
|
||||
|
||||
@@ -138,6 +147,7 @@ impl Drop for OtelGuard {
|
||||
}
|
||||
|
||||
#[tokio::main]
|
||||
#[instrument]
|
||||
async fn main() -> anyhow::Result<()> {
|
||||
// nym_bin_common::logging::setup_tracing_logger();
|
||||
|
||||
@@ -149,6 +159,21 @@ async fn main() -> anyhow::Result<()> {
|
||||
metadata.insert("signoz-ingestion-key", key.parse()?);
|
||||
|
||||
let _guard = init_tracing_subscriber(metadata);
|
||||
let tracer = global::tracer("sdk-example-surb-reply");
|
||||
let span = tracer.start("test_span");
|
||||
let cx = Context::current_with_span(span);
|
||||
let _guard = cx.clone().attach();
|
||||
|
||||
let trace_id = cx.span().span_context().trace_id();
|
||||
warn!("Main TRACE_ID (should be valid): {:?}", trace_id);
|
||||
|
||||
let otel_context = opentelemetry::Context::current();
|
||||
warn!("OTEL CONTEXT: {:?}", otel_context);
|
||||
let span = otel_context.span();
|
||||
let context = span.span_context();
|
||||
let trace_id = context.trace_id();
|
||||
warn!("TRACE_ID: {:?}", trace_id);
|
||||
// panic!();
|
||||
|
||||
// Specify some config options
|
||||
// let config_dir: PathBuf = TempDir::new().unwrap().path().to_path_buf();
|
||||
|
||||
Reference in New Issue
Block a user