diff --git a/docs/about/community.md b/docs/about/community.md index 23fdd8b..8d671a4 100644 --- a/docs/about/community.md +++ b/docs/about/community.md @@ -1,7 +1,9 @@ PurpleI2P team and community ============================ -Community IRC channel [i2pd-dev@libera.chat](https://web.libera.chat/?channels=i2pd-dev) +Community IRC channel on ILITA (irc.ilita.i2p): #dev ([webclient(I2P)](http://irc.acetone.i2p/web/)) + +Community IRC channel [i2pd-dev@libera.chat](https://web.libera.chat/?channels=i2pd-dev) (not active) Twitter hashtag [#i2pd](https://twitter.com/hashtag/i2pd) diff --git a/docs/about/history.md b/docs/about/history.md index e0766c3..eb622d5 100644 --- a/docs/about/history.md +++ b/docs/about/history.md @@ -1,3 +1,4 @@ History ======= +Empty for now. diff --git a/docs/devs/api/index.md b/docs/devs/api/index.md index c8b1f5c..16f26fb 100644 --- a/docs/devs/api/index.md +++ b/docs/devs/api/index.md @@ -1,3 +1,4 @@ Choosing API for your project ============================= +Empty for now. diff --git a/docs/devs/api/libi2pd.md b/docs/devs/api/libi2pd.md index 1ad28df..e241201 100644 --- a/docs/devs/api/libi2pd.md +++ b/docs/devs/api/libi2pd.md @@ -1,4 +1,5 @@ libi2pd ======= -i2pd can be built in any application with libi2pd +i2pd can be built in any application with libi2pd. +Join IRC #dev for more info. diff --git a/docs/user-guide/FAQ.md b/docs/user-guide/FAQ.md index 3e2e2eb..dc8d846 100644 --- a/docs/user-guide/FAQ.md +++ b/docs/user-guide/FAQ.md @@ -50,7 +50,7 @@ Contact developers with IRC or create an issue on GitHub. ## What is good tunnel creation success rate value? -Average values are 15% - 40%. Larger is better. +\>10%. Larger is better. ## Is there a place I can use to find running I2P websites? @@ -73,9 +73,8 @@ i2pd's socks proxy has an option to pass all non-I2P traffic to the Tor socks pr ## What is a floodfill mode? -Floodfill mode is a special mode, which contributes to the I2P network more. -You may want to enable floodfill mode if you have stable uptime and high bandwidth -to share. +Floodfill mode make your router a floodfill, that means what other routers will publish and get LeaseSets and RIs on your router. [Read more](http://geti2p.net/en/docs/how/network-database). +Floodfill mode require more bandwith, CPU time. If you sure, what you have stable uptime, you can enable floodfill: `floodfill = true` ## How is I2P different from Tor? @@ -92,5 +91,5 @@ Tor is highly centralized by design, while I2P is designed to be decentralized a ## Can use i2pd as a proxy for regular Internet? -Not out of the box. You better use [Tor](https://www.torproject.org/) for that. +Yes, but better use [Tor](https://www.torproject.org/) for that. diff --git a/docs/user-guide/configuration.md b/docs/user-guide/configuration.md index 0d07085..7d170a6 100644 --- a/docs/user-guide/configuration.md +++ b/docs/user-guide/configuration.md @@ -48,28 +48,27 @@ tunconf | Tunnels config file (default: ~/.i2pd/t pidfile | Where to write pidfile (default: i2pd.pid, not used in Windows) log | Logs destination: stdout, file, syslog (stdout if not set or invalid) (if daemon, stdout/unspecified are replaced by file in some cases) logfile | Path to logfile (default - autodetect) -loglevel | Log messages above this level (debug, info, warn, error, none; default - info) -logclftime | Write full CLF-formatted date and time to log (default: write only time) -datadir | Path to storage of i2pd data (RI, keys, peer profiles, ...) -host | Router external IP for incoming connections -port | Port to listen for incoming connections (default: auto) -daemon | Router will go to background after start -service | Router will use system folders like '/var/lib/i2pd' (on unix) or 'C:\ProgramData\i2pd' (on Windows). Ignored on MacOS and Android +loglevel | Log messages above this level (debug, info, warn, error, none; default - warn) +logclftime | Write full CLF-formatted date and time to log (default: false (write only time)) +datadir | Path to storage of i2pd data (RouterInfos, destinations keys, peer profiles, etc ...) +host | Router external IP for incoming connections (default: auto if SSU2 is enabled) +port | Port to listen for incoming connections (default: auto (random)) +daemon | Router will go to background after start (default: true) +service | Router will use system folders like '/var/lib/i2pd' (on unix) or 'C:\ProgramData\i2pd' (on Windows). Ignored on MacOS and Android (default: false) ifname | Network interface to bind to ifname4 | Network interface to bind to for IPv4 ifname6 | Network interface to bind to for IPv6 address4 | Local address to bind to for IPv4 address6 | Local address to bind to for clearnet IPv6 -nat | If true, assume we are behind NAT. true by default -ipv4 | Enable communication through IPv4. true by default -ipv6 | Enable communication through clearnet IPv6. false by default -notransit | Router will not accept transit tunnels, disabling transit traffic completely. false by default -floodfill | Router will be floodfill. false by default -bandwidth | Bandwidth limit: integer in KBps or letters: L (32), O (256), P (2048), X (>9000) -share | Max % of bandwidth limit for transit. 0-100. 100 by default +nat | If true, assume we are behind NAT (default: true) +ipv4 | Enable communication through IPv4 (default: true) +ipv6 | Enable communication through clearnet IPv6 (default: false) +notransit | Router will not accept transit tunnels, disabling transit traffic completely (default: false) +floodfill | Router will be floodfill (default: false) +bandwidth | Bandwidth limit: integer in KBps or letters: L (32), O (256), P (2048), X (unlimited). +share | Max % of bandwidth limit for transit. 0-100 (default: 100) family | Name of a family, router belongs to netid | Network ID, router belongs to. Main I2P is 2. -ssu | Enable SSU transport protocol (use UDP). true by default #### Notes @@ -79,9 +78,9 @@ ssu | Enable SSU transport protocol (use UDP) Option | Description -------------------------------------- | -------------------------------------- -ntcp2.enabled | Enable NTCP2. Enabled by default -ntcp2.published | Enable incoming NTCP2 connections. Enabled by default -ntcp2.port | Port to listen for incoming NTCP2 connections (default: auto) +ntcp2.enabled | Enable NTCP2 (default: true) +ntcp2.published | Enable incoming NTCP2 connections (default: true) +ntcp2.port | Port to listen for incoming NTCP2 connections (default: auto - port from general section) ntcp2.addressv6 | External IPv6 for incoming connections ntcp2.proxy | Specify proxy server for NTCP2. Should be http://address:port or socks://address:port @@ -89,12 +88,12 @@ ntcp2.proxy | Specify proxy server for NTCP2. Should Option | Description -------------------------------------- | -------------------------------------- -ssu2.enabled | Enable SSU2. Disabled by default on 2.43.0 -ssu2.published | Enable incoming SSU2 connections. Disabled by default on 2.43.0 -ssu2.port | Port to listen for incoming SSU2 connections (default: auto - 'port' from general section or 'port + 1' if SSU is enabled) +ssu2.enabled | Enable SSU2 (default: true) +ssu2.published | Enable incoming SSU2 connections. (default: true) +ssu2.port | Port to listen for incoming SSU2 connections (default: auto - 'port' from general section) ssu2.proxy | Specify UDP socks5 proxy server for NTCP2. Should be socks://address:port -ssu2.mtu4 | MTU for local ipv4. Auto-detect by default -ssu2.mtu6 | MTU for local ipv6. Auto-detect by default +ssu2.mtu4 | MTU for local ipv4. (default: auto) +ssu2.mtu6 | MTU for local ipv6. (default: auto) All options below still possible in cmdline, but better write it in config file: @@ -102,116 +101,116 @@ All options below still possible in cmdline, but better write it in config file: Option | Description -------------------------------------- | -------------------------------------- -http.enabled | If webconsole is enabled. true by default +http.enabled | If webconsole is enabled. (default: true) http.address | The address to listen on (HTTP server) -http.port | The port to listen on (HTTP server) 7070 by default -http.auth | Enable basic HTTP auth for webconsole +http.port | The port to listen on (HTTP server) (default: 7070) +http.auth | Enable basic HTTP auth for webconsole (default: false) http.user | Username for basic auth (default: i2pd) http.pass | Password for basic auth (default: random, see logs) -http.strictheaders | Enable strict host checking on WebUI. true by default +http.strictheaders | Enable strict host checking on WebUI. (default: true) http.hostname | Expected hostname for WebUI (default: localhost) ### HTTP proxy Option | Description -------------------------------------- | -------------------------------------- -httpproxy.enabled | If HTTP proxy is enabled. true by default +httpproxy.enabled | If HTTP proxy is enabled. (default: true) httpproxy.address | The address to listen on (HTTP Proxy) -httpproxy.port | The port to listen on (HTTP Proxy) 4444 by default -httpproxy.addresshelper | Enable address helper (jump). true by default +httpproxy.port | The port to listen on (HTTP Proxy) (default: 4444) +httpproxy.addresshelper | Enable address helper (jump). (default: true) httpproxy.keys | Optional keys file for HTTP proxy local destination -httpproxy.signaturetype | Signature type for new keys if keys file is set. 7 by default -httpproxy.inbound.length | Inbound tunnels length if keys is set. 3 by default -httpproxy.inbound.quantity | Inbound tunnels quantity if keys is set. 5 by default -httpproxy.inbound.lengthVariance | Inbound tunnels length variance if keys is set. 0 by default -httpproxy.outbound.length | Outbound tunnels length if keys is set. 3 by default -httpproxy.outbound.quantity | Outbound tunnels quantity if keys is set. 5 by default -httpproxy.outbound.lengthVariance | Outbound tunnels length variance if keys is set. 0 by default +httpproxy.signaturetype | Signature type for new keys if keys file is set. (default: 7) +httpproxy.inbound.length | Inbound tunnels length if keys is set. (default: 3) +httpproxy.inbound.quantity | Inbound tunnels quantity if keys is set. (default: 5) +httpproxy.inbound.lengthVariance | Inbound tunnels length variance if keys is set. (default: 0) +httpproxy.outbound.length | Outbound tunnels length if keys is set. (default: 3) +httpproxy.outbound.quantity | Outbound tunnels quantity if keys is set. (default: 5) +httpproxy.outbound.lengthVariance | Outbound tunnels length variance if keys is set. (default: 0) httpproxy.outproxy | HTTP proxy upstream out proxy url (like http://false.i2p) -httpproxy.i2cp.leaseSetType | Type of LeaseSet to be sent. 1, 3 or 5. 1 by default +httpproxy.i2cp.leaseSetType | Type of LeaseSet to be sent. 1, 3 or 5. (default: 3) httpproxy.i2cp.leaseSetEncType | Comma separated encryption types to be used in LeaseSet type 3 or 5 ### Socks proxy Option | Description -------------------------------------- | -------------------------------------- -socksproxy.enabled | If SOCKS proxy is enabled. true by default +socksproxy.enabled | If SOCKS proxy is enabled. (default: true) socksproxy.address | The address to listen on (SOCKS Proxy) -socksproxy.port | The port to listen on (SOCKS Proxy). 4447 by default +socksproxy.port | The port to listen on (SOCKS Proxy). (default: 4447) socksproxy.keys | Optional keys file for SOCKS proxy local destination -socksproxy.signaturetype | Signature type for new keys if keys file is set. 7 by default -socksproxy.inbound.length | Inbound tunnels length if keys is set. 3 by default -socksproxy.inbound.quantity | Inbound tunnels quantity if keys is set. 5 by default -socksproxy.inbound.lengthVariance | Inbound tunnels length variance if keys is set. 0 by default -socksproxy.outbound.length | Outbound tunnels length if keys is set. 3 by default -socksproxy.outbound.quantity | Outbound tunnels quantity if keys is set. 5 by default -socksproxy.outbound.lengthVariance | Outbound tunnels length variance if keys is set. 0 by default -socksproxy.outproxy.enabled | Enable or disable SOCKS outproxy. Disabled by default -socksproxy.outproxy | Address of outproxy. requests outside I2P will go there +socksproxy.signaturetype | Signature type for new keys if keys file is set. (default: 7) +socksproxy.inbound.length | Inbound tunnels length if keys is set. (default: 3) +socksproxy.inbound.quantity | Inbound tunnels quantity if keys is set. (default: 5) +socksproxy.inbound.lengthVariance | Inbound tunnels length variance if keys is set. (default: 0) +socksproxy.outbound.length | Outbound tunnels length if keys is set. (default: 3) +socksproxy.outbound.quantity | Outbound tunnels quantity if keys is set. (default: 5) +socksproxy.outbound.lengthVariance | Outbound tunnels length variance if keys is set. (default: 0) +socksproxy.outproxy.enabled | Enable or disable SOCKS outproxy. (default: false) +socksproxy.outproxy | Address of outproxy. Requests outside I2P will go there. socksproxy.outproxyport | Outproxy remote port -socksproxy.i2cp.leaseSetType | Type of LeaseSet to be sent. 1, 3 or 5. 1 by default +socksproxy.i2cp.leaseSetType | Type of LeaseSet to be sent. 1, 3 or 5. (default: 3) socksproxy.i2cp.leaseSetEncType | Comma separated encryption types to be used in LeaseSet type 3 or 5 ### SAM interface Option | Description -------------------------------------- | -------------------------------------- +sam.enabled | If SAM is enabled. (default: true) sam.address | The address to listen on (SAM bridge) sam.port | Port of SAM bridge. Usually 7656. SAM is off if not specified -sam.enabled | If SAM is enabled. true by default -sam.singlethread | If false every SAM session runs in own thread. true by default +sam.singlethread | If false every SAM session runs in own thread. (default: true) ### BOB interface Option | Description -------------------------------------- | -------------------------------------- +bob.enabled | If BOB is enabled. (default: false) bob.address | The address to listen on (BOB command channel) bob.port | Port of BOB command channel. Usually 2827. BOB is off if not specified -bob.enabled | If BOB is enabled. false by default ### I2CP interface Option | Description -------------------------------------- | -------------------------------------- +i2cp.enabled | If I2CP is enabled. (default: true) i2cp.address | The address to listen on or an abstract address for Android LocalSocket i2cp.port | Port of I2CP server. Usually 7654. Ignored for Andorid -i2cp.enabled | If I2CP is enabled. false by default. Other services don't require I2CP -i2cp.singlethread | If false every I2CP session runs in own thread. true by default +i2cp.singlethread | If false every I2CP session runs in own thread. (default: true) ### I2PControl interface Option | Description -------------------------------------- | -------------------------------------- +i2pcontrol.enabled | If I2P control is enabled. (default: false) i2pcontrol.address | The address to listen on (I2P control service) i2pcontrol.port | Port of I2P control service. Usually 7650. I2PControl is off if not specified -i2pcontrol.enabled | If I2P control is enabled. false by default -i2pcontrol.password | I2P control authentication password. itoopie by default -i2pcontrol.cert | I2P control HTTPS certificate file name. i2pcontrol.crt.pem by default -i2pcontrol.key | I2P control HTTPS certificate key file name. i2pcontrol.key.pem by default +i2pcontrol.password | I2P control authentication password. (default: itoopie) +i2pcontrol.cert | I2P control HTTPS certificate file name. (default: i2pcontrol.crt.pem) +i2pcontrol.key | I2P control HTTPS certificate key file name. (default: i2pcontrol.key.pem) ### UPNP Option | Description -------------------------------------- | -------------------------------------- upnp.enabled | Enable or disable UPnP, false by default for CLI and true for GUI (Windows, Android) -upnp.name | Name i2pd appears in UPnP forwardings list. I2Pd by default +upnp.name | Name i2pd appears in UPnP forwardings list. (default: I2Pd) ### Cryptography Option | Description -------------------------------------- | -------------------------------------- -precomputation.elgamal | Use ElGamal precomputated tables. false for x64 and true for other platforms by default +precomputation.elgamal | Use ElGamal precomputated tables. (default: false for x86-64 and true for other platforms) ### Reseeding Option | Description -------------------------------------- | -------------------------------------- -reseed.verify | Verify .su3 signature. false by default +reseed.verify | Verify .su3 signature. (default: false) reseed.urls | Reseed URLs, separated by comma reseed.yggurls | Reseed Yggdrasil's URLs, separated by comma reseed.file | Path to local .su3 file or HTTPS URL to reseed from reseed.zipfile | Path to local .zip file to reseed from -reseed.threshold | Minimum number of known routers before requesting reseed. 25 by default +reseed.threshold | Minimum number of known routers before requesting reseed. (default: 25) reseed.proxy | Url for https/socks reseed proxy ### Addressbook options @@ -226,46 +225,47 @@ addressbook.hostsfile | File to dump AddressesBook in hosts.txt Option | Description -------------------------------------- | -------------------------------------- -limits.transittunnels | Override maximum number of transit tunnels. 2500 by default -limits.openfiles | Limit number of open file descriptors (0 - use system limit) +limits.transittunnels | Override maximum number of transit tunnels. (default: 5000) +limits.openfiles | Limit number of open file descriptors (default: 0 - use system limit) +limits.coresize | Maximum size of corefile in Kb (default: 0 - use system limit) ### Trust options Option | Description -------------------------------------- | -------------------------------------- -trust.enabled | Enable explicit trust options. false by default +trust.enabled | Enable explicit trust options. (default: false) trust.family | Make direct I2P connections only to routers in specified Family. trust.routers | Make direct I2P connections only to routers specified here. Comma separated list of base64 identities. -trust.hidden | Should we hide our router from other routers? false by default +trust.hidden | Should we hide our router from other routers? (default: false) ### Exploratory tunnels Option | Description -------------------------------------- | -------------------------------------- -exploratory.inbound.length | Exploratory inbound tunnels length. 2 by default -exploratory.inbound.quantity | Exploratory inbound tunnels quantity. 3 by default -exploratory.outbound.length | Exploratory outbound tunnels length. 2 by default -exploratory.outbound.quantity | Exploratory outbound tunnels quantity. 3 by default +exploratory.inbound.length | Exploratory inbound tunnels length. (default: 2) +exploratory.inbound.quantity | Exploratory inbound tunnels quantity. (default: 3) +exploratory.outbound.length | Exploratory outbound tunnels length. (default: 2) +exploratory.outbound.quantity | Exploratory outbound tunnels quantity. (default: 3) ### Time sync Option | Description -------------------------------------- | -------------------------------------- -nettime.enabled | Enable NTP sync. Disabled by default -nettime.ntpservers | Comma-separated list of NTP server. pool.ntp.org by default -nettime.ntpsyncinterval | NTP time sync interval in hours. 72 by default +nettime.enabled | Enable NTP sync. (default: false) +nettime.ntpservers | Comma-separated list of NTP server. (default: pool.ntp.org) +nettime.ntpsyncinterval | NTP time sync interval in hours. (default: 72) ### Network information persist Option | Description -------------------------------------- | -------------------------------------- -persist.profiles | Enable peer profile persisting to disk. Enabled by default +persist.profiles | Enable peer profile persisting to disk. (default: true) ### Meshnets transports Option | Description -------------------------------------- | -------------------------------------- -meshnets.yggdrasil | Support transports through the Yggdrasil +meshnets.yggdrasil | Support transports through the Yggdrasil (default: false) meshnets.yggaddress | Local Yggdrasil's address to publish ### Windows-specific options @@ -279,7 +279,7 @@ close | Action on close: minimize, exit, ask Option | Description -------------------------------------- | -------------------------------------- -unix.handle_sigtstp | Handle SIGTSTP and SIGCONT signals. Disabled by default +unix.handle_sigtstp | Handle SIGTSTP and SIGCONT signals. (default: false) `handle_sigtstp` enables handling of SIGTSTP and SIGCONT signals (*since 2.43.0*). diff --git a/docs/user-guide/install.md b/docs/user-guide/install.md index 05b8d18..00a968e 100644 --- a/docs/user-guide/install.md +++ b/docs/user-guide/install.md @@ -92,12 +92,12 @@ run by PurpleI2P community member [villain](https://twitter.com/el_villano_loco) systemctl enable --now i2pd -## ArchLinux +## Arch -i2pd packages are available at Community repository for [release version](https://archlinux.org/packages/community/x86_64/i2pd/), and AUR for +i2pd packages are available at Arch's repository for [release version](https://archlinux.org/packages/community/x86_64/i2pd/), and AUR for [nightly builds](https://aur.archlinux.org/packages/i2pd-git/) -## Gentoo Linux +## Gentoo i2pd [has a working ebuild in the main gentoo repository](https://packages.gentoo.org/packages/net-vpn/i2pd). As of May 2018, the ebuild is still listed as "unstable", and thus will request an exception in your package.keywords if you are using gentoo under the "stable" branch. diff --git a/docs/user-guide/run.md b/docs/user-guide/run.md index 707fef9..b96a37b 100644 --- a/docs/user-guide/run.md +++ b/docs/user-guide/run.md @@ -4,7 +4,7 @@ Running i2pd Starting, stopping and reloading configuration ---------------------------------------------- -This chapter explains how to start and manage the i2pd daemon under \*nix operation systems. +This chapter explains how to start and manage the i2pd daemon under Unix-like operation systems. After you have built i2pd from source, just run the binary: diff --git a/docs/user-guide/tunnels.md b/docs/user-guide/tunnels.md index 30aecb7..d5d2951 100644 --- a/docs/user-guide/tunnels.md +++ b/docs/user-guide/tunnels.md @@ -56,8 +56,8 @@ Available LeaseSet **types** (parameter `i2cp.leaseSetType = ` in a tunnel Type | Code | Comment ----------- | ---- | ----------- -OLD | 1 | **Default** for server tunnels because encryption type for server is `0` -STANDARD | 3 | **Default** for client tunnels because encryption type can be `0` or `4` +OLD | 1 | Deprecated +STANDARD | 3 | **Default** ENCRYPTED | 5 | Encrypted LeaseSet. Hiding information from floodfill META | 7 | Not implemented @@ -67,11 +67,11 @@ Available LeaseSet **encryption** types (parameter `i2cp.leaseSetEncType =