You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: concepts/holepunching.mdx
+2-4Lines changed: 2 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,16 +10,14 @@ Imagine you're trying to video call a friend. Both of you are behind routers at
10
10
home. When you try to connect directly to each other, your routers' firewalls
11
11
block the incoming connection because they don't recognize it as a response to
12
12
something you requested. The combination of NAT (which translates addresses) and
13
-
firewall rules (which filter traffic) makes direct peer-to-peer connections
13
+
firewall rules (which filter traffic) makes direct connections
14
14
challenging.
15
15
16
16
Traditionally, this problem was solved by:
17
17
-**Port forwarding**: Manually configuring your router to allow specific connections (tedious and requires technical knowledge)
18
18
-**Relay servers**: Routing all traffic through a third-party server (slow and expensive)
19
19
20
-
Neither solution is ideal for peer-to-peer applications.
21
-
22
-
## The Solution: Holepunching
20
+
## The Innovation: Holepunching
23
21
24
22
**Holepunching** is a clever technique that works around NAT and firewall restrictions to allow direct connections between peers without manual configuration or relying entirely on relay servers.
Copy file name to clipboardExpand all lines: concepts/protocols.mdx
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,12 +7,14 @@ behavior. Once you've established an iroh connection, protocols determine what
7
7
happens next: transferring files, syncing documents, broadcasting messages, or
8
8
whatever your application needs.
9
9
10
-
iroh provides the encrypted, peer-to-peer connections - protocols define what to
10
+
iroh provides the pool of encrypted QUIC connections - protocols define what to
11
11
do with them.
12
12
13
13
## Peer-to-peer protocols
14
14
15
-
Unlike HTTP's client/server model where one side only sends requests and the other only responds, peer-to-peer protocols typically support **both** initiating and accepting connections on the same endpoint.
15
+
Unlike HTTP's client/server model where one side only sends requests and the
16
+
other only responds, peer-to-peer protocols typically support **both**
17
+
initiating and accepting connections on the same endpoint.
Copy file name to clipboardExpand all lines: concepts/tickets.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -62,7 +62,7 @@ The postcard encoding keeps tickets compact despite containing multiple pieces o
62
62
63
63
## Security considerations
64
64
65
-
**Tickets contain IP addresses**: When you create a ticket, it embeds the IP addresses you're currently reachable at. Sharing a ticket means sharing your IP address with whoever receives it. This is intentional - it enables direct peer-to-peer connections without a central server.
65
+
**Tickets contain IP addresses**: When you create a ticket, it embeds the IP addresses you're currently reachable at. Sharing a ticket means sharing your IP address with whoever receives it. This is intentional - it enables direct connections without a central server.
66
66
67
67
This is actually *better* than many P2P systems that broadcast your IP to all peers. With tickets, you form a "cozy network" between peers you explicitly choose to connect with.
Copy file name to clipboardExpand all lines: deployment/wasm-browser-support.mdx
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,8 +28,10 @@ This is because we can't port our hole-punching logic in iroh to browsers: They
28
28
Keep in mind that *connections are end-to-end encrypted*, as always with iroh.
29
29
So even though traffic from browsers is always relayed, it can't be decrypted by the relay.
30
30
31
-
There are other ways of getting peer-to-peer connections going, such as WebTransport with `serverCertificateHashes`, or WebRTC.
32
-
We may expand iroh's browser support to make use of these to try to generate fully peer-to-peer connections even when a browser node is involved in the connection.
31
+
There are other ways of getting direct connections going, such as WebTransport
32
+
with `serverCertificateHashes`, or WebRTC. We may expand iroh's browser support
33
+
to make use of these to try to generate direct connections even when a browser
0 commit comments