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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user