i2p_tpt

package module
v0.0.0-...-bc1c8af Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 22, 2024 License: MIT Imports: 19 Imported by: 0

README

I2P Libp2p transport

It allows to use the I2P network as a privacy transport for libp2p.

This code is experimental and unstable and might have all kinds of bugs. The rest of the stack above such as go-libp2p and applications built on it also need to be reviewed to make sure they do not have IP Leaks.

It uses SAM3 library to connect to a local I2P router over the SAM3 protocol which takes care of tunnelling the traffic using garlic routing.

The on wire format is using I2P datagrams tunnels with quic-go responsible for implementing libp2p's encryption, reliability, muxing and streams.

Quic-go does it's own end-to-end encryption which is using libp2p TLS extensions, I2P then add it's own end-to-end encryption which is slightly useful to hide the TLS handshake and QUIC pattern. I2P also then layer encryptions to do garlic routing properly (each hop will remove one encryption layer).

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrAlreadyListening = errors.New("Pin argenté only support listening once at a time")
View Source
var ErrNotPinArgentéMaddr = errors.New("non Pin argenté maddr passed in")
View Source
var ErrPrivateNetworkNotSupported = errors.New("i2p transport doesn't support private networks")

Functions

func New

func New(samAddr string, tunnelOptions []string) func(priv crypto.PrivKey, id peer.ID, psk pnet.PSK, rcmgr network.ResourceManager) (transport.Transport, error)

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL