3.0.ipv8.messaging.anonymization.caches

Classes

Module Contents

class 3.0.ipv8.messaging.anonymization.caches.CreateRequestCache(community: 3.0.ipv8.messaging.anonymization.community.TunnelCommunity, identifier: int, to_circuit_id: int, from_circuit_id: int, peer: 3.0.ipv8.types.Peer, to_peer: 3.0.ipv8.types.Peer)

Bases: 3.0.ipv8.requestcache.RandomNumberCacheWithName

Used to track outstanding create messages.

name = 'create'
community
extend_identifier
to_circuit_id
from_circuit_id
peer
to_peer
on_timeout() None

We don’t need to do anything on timeout.

class 3.0.ipv8.messaging.anonymization.caches.CreatedRequestCache(community: 3.0.ipv8.messaging.anonymization.community.TunnelCommunity, circuit_id: int, candidate: 3.0.ipv8.types.Peer, candidates: dict[bytes, 3.0.ipv8.types.Peer], timeout: float)

Bases: 3.0.ipv8.requestcache.NumberCacheWithName

Used to track outstanding created messages.

name = 'created'
circuit_id
candidate
candidates
timeout
property timeout_delay: float

The configurable timeout that was set.

on_timeout() None

We don’t need to do anything on timeout.

class 3.0.ipv8.messaging.anonymization.caches.RetryRequestCache(community: 3.0.ipv8.messaging.anonymization.community.TunnelCommunity, circuit: 3.0.ipv8.messaging.anonymization.tunnel.Circuit, candidates: list[bytes] | list[3.0.ipv8.types.Peer], max_tries: int, retry_func: Callable[[3.0.ipv8.messaging.anonymization.tunnel.Circuit, list[bytes], int], None] | Callable[[3.0.ipv8.messaging.anonymization.tunnel.Circuit, list[3.0.ipv8.types.Peer], int], None], timeout: float)

Bases: 3.0.ipv8.requestcache.NumberCacheWithName

Used to track adding additional hops to the circuit.

name = 'retry'
community
circuit
packet_identifier
candidates
max_tries
retry_func
timeout
logger
property timeout_delay: float

The configurable timeout that was set.

on_timeout() None

Retry until we run out of candidates. Otherwise, remove the circuit.

class 3.0.ipv8.messaging.anonymization.caches.PingRequestCache(community: 3.0.ipv8.messaging.anonymization.community.TunnelCommunity)

Bases: 3.0.ipv8.requestcache.RandomNumberCacheWithName

Manage a ping to a peer.

name = 'ping'
on_timeout() None

We don’t need to do anything on timeout.

class 3.0.ipv8.messaging.anonymization.caches.IPRequestCache(community: 3.0.ipv8.messaging.anonymization.community.TunnelCommunity, circuit: 3.0.ipv8.messaging.anonymization.tunnel.Circuit)

Bases: 3.0.ipv8.requestcache.RandomNumberCacheWithName

Manage introduction point establishment.

name = 'establish-intro'
logger
circuit
community
on_timeout() None

We remove the circuit if we can’t establish an introduction point.

class 3.0.ipv8.messaging.anonymization.caches.RPRequestCache(community: 3.0.ipv8.messaging.anonymization.community.TunnelCommunity, rp: 3.0.ipv8.messaging.anonymization.tunnel.RendezvousPoint)

Bases: 3.0.ipv8.requestcache.RandomNumberCacheWithName

Manage rendezvous point establishment.

name = 'establish-rendezvous'
logger
community
rp
on_timeout() None

We remove the circuit if we can’t establish a rendezvous point.

class 3.0.ipv8.messaging.anonymization.caches.PeersRequestCache(community: 3.0.ipv8.messaging.anonymization.hidden_services.HiddenTunnelCommunity, circuit: 3.0.ipv8.messaging.anonymization.tunnel.Circuit, info_hash: bytes, target: 3.0.ipv8.messaging.anonymization.tunnel.IntroductionPoint | None)

Bases: 3.0.ipv8.requestcache.RandomNumberCacheWithName

Request peers for the given swarm (info hash).

name = 'peers-request'
community
circuit
info_hash
target
future: asyncio.Future[list[3.0.ipv8.messaging.anonymization.tunnel.IntroductionPoint]]
on_timeout() None

We remove the introduction point if we don’t get a response.

class 3.0.ipv8.messaging.anonymization.caches.E2ERequestCache(community: 3.0.ipv8.messaging.anonymization.community.TunnelCommunity, info_hash: bytes, hop: 3.0.ipv8.messaging.anonymization.tunnel.Hop, intro_point: 3.0.ipv8.messaging.anonymization.tunnel.IntroductionPoint)

Bases: 3.0.ipv8.requestcache.RandomNumberCacheWithName

Cache to track e2e circuit creation.

name = 'e2e-request'
info_hash
hop
intro_point
on_timeout() None

We don’t need to do anything on timeout.

class 3.0.ipv8.messaging.anonymization.caches.LinkRequestCache(community: 3.0.ipv8.messaging.anonymization.community.TunnelCommunity, circuit: 3.0.ipv8.messaging.anonymization.tunnel.Circuit, info_hash: bytes, hs_session_keys: 3.0.ipv8.messaging.anonymization.crypto.SessionKeys)

Bases: 3.0.ipv8.requestcache.RandomNumberCacheWithName

Cache to track circuit linking.

name = 'link-request'
circuit
info_hash
hs_session_keys
on_timeout() None

We don’t need to do anything on timeout.

class 3.0.ipv8.messaging.anonymization.caches.TestRequestCache(community: 3.0.ipv8.messaging.anonymization.community.TunnelCommunity, circuit: 3.0.ipv8.messaging.anonymization.tunnel.Circuit)

Bases: 3.0.ipv8.requestcache.RandomNumberCacheWithName

Cache to track circuit speed tests.

name = 'test-request'
circuit
ts
future: asyncio.Future[tuple[bytes, float]]
on_timeout() None

We don’t need to do anything on timeout.