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


pub use kitsune_p2p_types::dht_arc;


Definitions related to the KitsuneP2p peer-to-peer / dht communications actor.

Data structures to be stored in the agent/peer database.

re-exported dependencies

Definitions for events emited from the KitsuneP2p actor.

Fixturator definitions for kitsune_p2p.

Various gossip strategies for kitsune

metrics tracked by kitsune_p2p spaces

KitsuneP2p Wire Protocol Encoding Decoding


A simple wrapper around the AdaptorFactory to allow implementing Debug and PartialEq.

Distinguish multiple agents within the same network module.

The basis hash/coordinate when identifying a neighborhood.

The op data with its location

Top-level “KitsuneDataHash” items are buckets of related meta-data. These metadata “Operations” each also have unique OpHashes.

Configure the kitsune actor.

A cryptographic signature.

Distinguish multiple categories of communication within the same network module.


The type of gossip module running this gossip.

KitsuneP2p Error Type.

Method for connecting to other peers and broadcasting our AgentInfo

Whether we are willing to proxy on behalf of others

Proxy configuration options

Configure the network bindings for underlying kitsune transports.


The default production bootstrap service url.

The default development bootstrap service url.


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”.

The interface to be implemented by the host, which handles various requests for data


Spawn a new KitsuneP2p actor.

Spawn a new KitsuneP2p actor, using a closure to generate the HostApi. Used for some test cases where the HostApi requires some of the intermediate values created by this function.

Type Definitions

Trait object for the host interface

Convenience type

A boxed future result with dynamic error type

Result Type