weave-dht · route_v1
Source declarations, signatures and documentation for route_v1.
Source: sigil/weave/network/weave-dht/src/route_v1.rs. SHA-256: ff9516473dd9c99207754349f893a592f0caf360500a5567e3f5eb4e6cdab02d.
This reference follows declared source modules, retains conditional attributes, and includes public declarations and implementation methods. Private-module re-exports and trait resolution require the compiler; this is a source reference, not a claim that every listed item is a root import. Function bodies and constant values are omitted.
route_v1::ROUTE_SET_VERSION
pub const ROUTE_SET_VERSION: u64;Source line: 15.
route_v1::MAX_ROUTE_SET_BYTES
pub const MAX_ROUTE_SET_BYTES: usize;Source line: 16.
route_v1::MAX_PRIVATE_INNER_ROUTE_SET_BYTES
pub const MAX_PRIVATE_INNER_ROUTE_SET_BYTES: usize;Source line: 17.
route_v1::MAX_ROUTE_CANDIDATES
pub const MAX_ROUTE_CANDIDATES: usize;Source line: 18.
route_v1::MAX_SUPPORTED_PROTOCOLS
pub const MAX_SUPPORTED_PROTOCOLS: usize;Source line: 19.
route_v1::MAX_TRANSPORT_PEER_ID_BYTES
pub const MAX_TRANSPORT_PEER_ID_BYTES: usize;Source line: 20.
route_v1::MAX_MULTIADDR_BYTES
pub const MAX_MULTIADDR_BYTES: usize;Source line: 21.
route_v1::MAX_OPERATOR_DOMAIN_BYTES
pub const MAX_OPERATOR_DOMAIN_BYTES: usize;Source line: 22.
route_v1::MAX_PROTOCOL_ID_BYTES
pub const MAX_PROTOCOL_ID_BYTES: usize;Source line: 23.
route_v1::MAX_ROUTE_LIFETIME_MS
pub const MAX_ROUTE_LIFETIME_MS: u64;Source line: 24.
route_v1::ALLOCATED_FEATURES_MASK
pub const ALLOCATED_FEATURES_MASK: u64;Source line: 25.
route_v1::ALLOCATED_SERVICE_ROLES_MASK
pub const ALLOCATED_SERVICE_ROLES_MASK: u16;Source line: 26.
route_v1::ROUTE_SIGNATURE_DOMAIN
pub const ROUTE_SIGNATURE_DOMAIN: &[u8];Source line: 27.
route_v1::ROUTE_SET_DIGEST_DOMAIN
pub const ROUTE_SET_DIGEST_DOMAIN: &[u8];Source line: 28.
route_v1::Protocol1CodecError
#[derive(Debug, Clone, Copy, PartialEq, Eq, Error)]
pub enum Protocol1CodecError {
#[error("malformed Protocol 1.0 data")]
Malformed,
#[error("noncanonical Protocol 1.0 data")]
NonCanonical,
#[error("unknown or missing fixed-schema field")]
UnknownOrMissingField,
#[error("Protocol 1.0 resource bound exceeded")]
ResourceLimitExceeded,
#[error("route signature or transport identity is invalid")]
TransportAuthenticationFailed,
#[error("route record is expired, future-issued, or has an invalid lifetime")]
InvalidLifetime,
#[error("route sequence is stale, rolled back, or equivocates")]
Rollback,
#[error("route contains an unsafe address")]
AddressPolicyDenied,
#[error("route requires an unsupported Protocol 1.0 feature")]
UnsupportedCriticalFeature,
#[error("private discovery rejected")]
PrivateDiscoveryRejected,
}Source line: 31.
route_v1::Protocol1CodecError::public_error_family
Frozen externally visible error family for this codec slice.
Diagnostic enum variants remain local. Callers must not serialize their display text to an unauthorized peer.
pub fn public_error_family(self) -> &'static str;Source line: 59.
route_v1::EndpointProfile
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum EndpointProfile {
NativeFull = 0,
NativeRestricted = 1,
PortableMacosAlpha = 2,
OfflineLan = 3,
BrowserReserved = 4,
}Source line: 77.
route_v1::PrivacyProfile
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum PrivacyProfile {
Public = 0,
PrivateStandard = 1,
PrivateMetadata = 2,
}Source line: 102.
route_v1::RouteTransport
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum RouteTransport {
TcpNoiseYamux = 0,
QuicV1 = 1,
CircuitRelayV2 = 2,
Tcp443Relay = 3,
ExplicitOverlay = 4,
WebTransportReserved = 5,
WebRtcReserved = 6,
}Source line: 123.
route_v1::CandidateScope
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum CandidateScope {
Public = 0,
AuthenticatedLan = 1,
ObservedPublic = 2,
VerifiedMapping = 3,
ExplicitOverlay = 4,
}Source line: 152.
route_v1::DirectCandidateV1
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct DirectCandidateV1 {
pub multiaddr: Vec<u8>,
pub transport: RouteTransport,
pub scope: CandidateScope,
pub expires_at_ms: u64,
pub required_features: u64
}Source line: 176.
route_v1::RelayCandidateV1
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct RelayCandidateV1 {
pub relay_peer_id: Vec<u8>,
pub destination_multiaddr: Vec<u8>,
pub transport: RouteTransport,
pub reservation_expires_at_ms: u64,
pub operator_domain: Option<String>,
pub relay_ad_digest: [u8; 32]
}Source line: 185.
route_v1::SupportedProtocolV1
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct SupportedProtocolV1 {
pub protocol_id: String,
pub supported_features: u64,
pub required_features: u64
}Source line: 195.
route_v1::PeerRouteSetUnsignedV1
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct PeerRouteSetUnsignedV1 {
pub transport_peer_id: Vec<u8>,
pub route_generation: u64,
pub sequence: u64,
pub issued_at_ms: u64,
pub expires_at_ms: u64,
pub direct_candidates: Vec<DirectCandidateV1>,
pub relay_candidates: Vec<RelayCandidateV1>,
pub supported_protocols: Vec<SupportedProtocolV1>,
pub endpoint_profile: EndpointProfile,
pub service_roles: u16,
pub privacy_profile: PrivacyProfile,
pub critical_features: u64
}Source line: 202.
route_v1::PeerRouteSetV1
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct PeerRouteSetV1 {
pub unsigned: PeerRouteSetUnsignedV1,
pub signature: [u8; 64]
}Source line: 218.
route_v1::RouteSequence
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
pub struct RouteSequence {
pub route_generation: u64,
pub sequence: u64
}Source line: 224.
route_v1::ProtocolRegistryV1
#[derive(Debug, Clone, Default)]
pub struct ProtocolRegistryV1 {
}Source line: 230.
route_v1::ProtocolRegistryV1::empty
pub fn empty() -> Self;Source line: 235.
route_v1::ProtocolRegistryV1::with_application_major
Returns a new immutable registry containing one application protocol name/major pair. Registration is separate from route parsing so a peer cannot self-declare support for an unknown major.
pub fn with_application_major(
mut self,
name: &str,
major: u64,
) -> Result<Self, Protocol1CodecError>;Source line: 242.
route_v1::RouteValidationContext
#[derive(Debug, Clone)]
pub struct RouteValidationContext {
}Source line: 273.
route_v1::RouteValidationContext::alpha
pub fn alpha(now_ms: u64) -> Self;Source line: 282.
route_v1::RouteValidationContext::try_new
pub fn try_new(
now_ms: u64,
maximum_future_skew_ms: u64,
last_accepted: Option<RouteSequence>,
supported_features: u64,
protocol_registry: ProtocolRegistryV1,
) -> Result<Self, Protocol1CodecError>;Source line: 292.
route_v1::PeerRouteSetV1::sign
pub fn sign(
unsigned: PeerRouteSetUnsignedV1,
identity: &libp2p::identity::Keypair,
context: &RouteValidationContext,
) -> Result<Self, Protocol1CodecError>;Source line: 313.
route_v1::PeerRouteSetV1::encode
pub fn encode(&self) -> Result<Vec<u8>, Protocol1CodecError>;Source line: 344.
route_v1::PeerRouteSetV1::decode_and_validate
pub fn decode_and_validate(
bytes: &[u8],
context: &RouteValidationContext,
) -> Result<Self, Protocol1CodecError>;Source line: 358.
route_v1::PeerRouteSetV1::validate
pub fn validate(&self, context: &RouteValidationContext) -> Result<(), Protocol1CodecError>;Source line: 382.
route_v1::PeerRouteSetV1::digest
pub fn digest(&self) -> Result<[u8; 32], Protocol1CodecError>;Source line: 440.
route_v1::PeerRouteSetUnsignedV1::encode
pub fn encode(&self) -> Result<Vec<u8>, Protocol1CodecError>;Source line: 452.