P2p / dht communication framework.
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
As QUIC support within wireshark is in-progress, you’ll need a newer
version. This documentation was tested with version
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,
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.
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
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.