mirror of
https://github.com/markqvist/Reticulum.git
synced 2024-10-01 03:15:44 -04:00
First draft of internet bridge section
Open to any and all criticism here, writing documentation isn't my strong suit. But here is a decent start at explaining the differences between the transports. Also I believe there should be a way to "compile" this markdown to html, not exactly sure how to accomplish that, will try to look into this further in the weekend.
This commit is contained in:
parent
a4a9a1dd53
commit
02f9c32da7
@ -71,6 +71,61 @@ you want more information, you can read the :ref:`Building Networks<networks-mai
|
||||
and :ref:`Interfaces<interfaces-main>` chapters of this manual.
|
||||
|
||||
|
||||
Bridging Over the Internet
|
||||
=============================================
|
||||
Reticulum currently offers two interfaces for connecting nodes over the internet:
|
||||
`TCP <https://markqvist.github.io/Reticulum/manual/interfaces.html#tcp-server-interface>`_ and `I2P <https://markqvist.github.io/Reticulum/manual/interfaces.html#i2p-interface>`_. Each interface offers a different set of features, and Reticulum
|
||||
users should carefully choose the interface which best suites their needs.
|
||||
|
||||
The ``TCPServerInterface`` allows users to host a node accessible over TCP/IP. This
|
||||
method is generally faster, lower latency, and more energy efficient than using ``I2PInterface``, however it leaks considerable
|
||||
metadata about the server host.
|
||||
|
||||
Direct TCP client connections are able to see your node's IP address and may be able
|
||||
to use this information to determine your location or identity. Adversaries
|
||||
inspecting your network's internet packets may be able to record packet metadata
|
||||
like time of transmission and packet size. By default TCP does not encrypt traffic,
|
||||
so unencrypted Reticulum packets will be transmitted in clear text. Hosting a
|
||||
node via TCP server also requires a static IP address.
|
||||
|
||||
The ``I2PInterface`` routes messages through the `Invisible Internet Protocol
|
||||
(I2P) <https://geti2p.net/en/>`_. To properly use this interface, users must also run an I2P daemon in
|
||||
parallel to ``rnsd``. For always-on nodes it is recommended to use `i2pd <https://i2pd.website/>`_ because it
|
||||
generally runs more efficiently.
|
||||
|
||||
By default, I2P will fully encrypt all traffic sent over the network, and
|
||||
obfuscate both the sender's and receiver's IP addresses. Running an I2P node
|
||||
will also relay other I2P user's encrypted packets, which will use extra
|
||||
bandwidth and compute power, but also makes timing attacks and other forms of
|
||||
deep-packet-inspection much more difficult. Similar to RNS, I2P uses cryptographic
|
||||
public keys as destination addresses, which allows users to host nodes on non-static IPs.
|
||||
|
||||
In general it is recommended to use an I2P node if you are hosting your node
|
||||
publicly.
|
||||
|
||||
There is a experimental public testnet you can join by adding the following
|
||||
interfaces to your ``.reticulum/config`` file:
|
||||
|
||||
.. code::
|
||||
|
||||
# For connecting over TCP/IP:
|
||||
|
||||
[[RNS Testnet Frankfurt]]
|
||||
type = TCPClientInterface
|
||||
interface_enabled = yes
|
||||
outgoing = True
|
||||
target_host = frankfurt.rns.unsigned.io
|
||||
target_port = 4965
|
||||
|
||||
|
||||
# For connecting over I2P:
|
||||
|
||||
[[RNS Testnet I2P Node A]]
|
||||
type = I2PInterface
|
||||
interface_enabled = yes
|
||||
peers = ykzlw5ujbaqc2xkec4cpvgyxj257wcrmmgkuxqmqcur7cq3w3lha.b32.i2p
|
||||
|
||||
|
||||
Develop a Program with Reticulum
|
||||
===========================================
|
||||
If you want to develop programs that use Reticulum, the easiest way to get
|
||||
|
Loading…
Reference in New Issue
Block a user