Crate kitsune_p2p

Crate kitsune_p2p 

Source
Expand description

P2p / dht communication framework.

§TLS session key logging

To use a tool like wireshark to debug kitsune QUIC communications, enable keylogging via tuning_param:

tuning_params.danger_tls_keylog = "env_keylog".to_string();

The tuning param by itself will do nothing, you also must specify the file target via the environment variable SSLKEYLOGFILE, e.g.:

SSLKEYLOGFILE="$(pwd)/keylog" my-kitsune-executable

As QUIC support within wireshark is in-progress, you’ll need a newer version. This documentation was tested with version 3.6.2.

Tell wireshark about your keylog file at:

[Edit] -> [Preferences...] -> [Protocols] -> [TLS] -> [(Pre)-Master-Secret log filename]

Your capture should now include QUIC protocol packets, where the Protected Payload variants will be able to display internals, such as STREAM([id]) decrypted content.

Also see https://github.com/quiclog/pcap2qlog

Re-exports§

pub use gossip::sharded_gossip::KitsuneDiagnostics;
pub use kitsune_p2p_types::dht;
pub use kitsune_p2p_types::dht_arc;

Modules§

actor
Definitions related to the KitsuneP2p peer-to-peer / dht communications actor.
agent_store
Data structures to be stored in the agent/peer database.
dependencies
re-exported dependencies
event
Definitions for events emited from the KitsuneP2p actor.
gossip
Various gossip strategies for Kitsune.
metrics
metrics tracked by kitsune_p2p spaces
wire
KitsuneP2p Wire Protocol Encoding Decoding

Structs§

HostApiLegacy
A HostApi paired with a ghost_actor sender (legacy) When all legacy functions have been moved to the API, this type can be replaced by HostApi.
KitsuneAgent
Distinguish multiple agents within the same network module.
KitsuneBasis
The basis hash/coordinate when identifying a neighborhood.
KitsuneOpData
The op data with its location
KitsuneOpHash
Top-level “KitsuneDataHash” items are buckets of related meta-data. These metadata “Operations” each also have unique OpHashes.
KitsuneSignature
A cryptographic signature.
KitsuneSpace
Distinguish multiple categories of communication within the same network module.
NodeCert
A 32 byte cert identifying a peer
PreflightUserData
Host-defined data used to implement custom connection preflight checks.

Enums§

GossipModuleType
The type of gossip module running this gossip.
KitsuneP2pError
KitsuneP2p Error Type.

Constants§

KITSUNE_PROTOCOL_VERSION
This value determines protocol compatibility. Any time there is a protocol breaking change, this number must be incremented. This represents general compatibility between kitsune versions. Instances are compatible if and only if they share the same protocol version.

Traits§

KitsuneBinType
Kitsune hashes are expected to be 36 bytes. The first 32 bytes are the proper hash. The final 4 bytes are a hash-of-the-hash that can be treated like a u32 “location”.
KitsuneHost
The interface to be implemented by the host, which handles various requests for data

Functions§

spawn_kitsune_p2p
Spawn a new KitsuneP2p actor.

Type Aliases§

HostApi
Trait object for the host interface
KOp
Convenience type
KitsuneHostResult
A boxed future result with dynamic error type
KitsuneP2pResult
Result Type