Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementations catalog upgrade: explain usage #1721

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,6 @@ module.exports = {
'/concepts/merkle-dag'
]
},
'/concepts/ipfs-implementations',
'/concepts/comparisons',
'/concepts/usage-ideas-examples',
['/concepts/measuring', 'Measuring the network'],
Expand Down Expand Up @@ -307,6 +306,7 @@ module.exports = {
],
'/reference/': [
'/reference/diagnostic-tools',
'/reference/ipfs-implementations',
'/reference/http/gateway',
'/reference/js/api',
'/reference/go/api',
Expand Down
6 changes: 3 additions & 3 deletions docs/concepts/dht.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ IPFS exposes a _rate-limited_ AutoNAT service on all IPFS nodes that have discov

## Dual DHT

Many IPFS nodes utilize the publicly shared DHT to discover and advertise content. However, some nodes operate in segregated networks such as local networks or isolated VPNs. For these users, having a DHT where all non-publicly dialable nodes are clients is very problematic since none of them are publicly dialable.
Many IPFS nodes utilize the public [Amino DHT](../concepts/glossary.md#amino) to discover and advertise content. However, some nodes operate in segregated networks such as local networks or isolated VPNs. For these users, having a DHT where all non-publicly dialable nodes are clients is very problematic since none of them are publicly dialable.

A separate DHT is available to nodes that are not part of the public network called _LAN DHT_. This is completely separate from the public _WAN DHT_. These two DHTs are separated by utilizing different DHT protocol names:
A separate DHT is available to nodes that are not part of the public network called _LAN DHT_. This is completely separate from the public Amino _WAN DHT_. These two DHTs are separated by utilizing different DHT protocol names:

| DHT | Path |
| --- | --------------------- |
Expand All @@ -68,7 +68,7 @@ There are three properties of note here: [qualification](#qualification), [bucke
Qualifying peers that can be added into a routing table fit these two criteria:

1. Ensure the peer is a DHT server that is advertising the DHT protocol ID, `/ipfs/kad/1.0.0` for the WAN DHT, and `/ipfs/lan/kad/1.0.0` for the LAN DHT.
1. Ensure the peer has IP addresses that match the ranges we expect. For example, members of the public DHT having at least one public range IP address as opposed to only addresses like `192.168.X.Y`
1. Ensure the peer has IP addresses that match the ranges we expect. For example, members of the Amino DHT having at least one public range IP address as opposed to only addresses like `192.168.X.Y`

### Peer buckets

Expand Down
4 changes: 4 additions & 0 deletions docs/concepts/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ In computer security, an access-control list (ACL) is a list of permissions asso

ADL is short for _Advanced Data Layout_, a concept in [IPLD](#ipld). See [IPLD docs](https://ipld.io/glossary/#adl).

### Amino

Formerly referred to as the "public DHT", Amino is the public Kademlia-based [DHT](#dht) that [Kubo](#kubo) and other implementations default to bootstrapping into with the [libp2p](#libp2p) protocol `/ipfs/kad/1.0.0`.

### Announcing

Announcing is a function of the IPFS networking layer in [libp2p](#libp2p), wherein a peer can tell other peers that it has data blocks available.
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/measuring.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ The ProbeLab team is developing tools to continuously monitor the performance of

### Parsec

[Parsec](https://github.com/dennis-tra/nebula) is a tool for measuring [DHT lookup performance](#dht-lookup-performance), specifically focusing on the PUT and GET performance of the IPFS public DHT. It can also be adapted to assess other [libp2p-kad-dht](https://github.com/libp2p/specs/blob/master/kad-dht/README.md) networks. The configuration is divided into a scheduler and a server. Learn more about Parsec at [probelab.io/tools/parsec/](https://probelab.io/tools/parsec/).
[Parsec](https://github.com/dennis-tra/nebula) is a tool for measuring [DHT lookup performance](#dht-lookup-performance), specifically focusing on the PUT and GET performance of the Amino DHT. It can also be adapted to assess other [libp2p-kad-dht](https://github.com/libp2p/specs/blob/master/kad-dht/README.md) networks. The configuration is divided into a scheduler and a server. Learn more about Parsec at [probelab.io/tools/parsec/](https://probelab.io/tools/parsec/).

### Tiros

Expand Down
4 changes: 2 additions & 2 deletions docs/concepts/nodes.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,12 @@ Both Kubo and Helia _nodes_ use bootstrap _nodes_ to initially enter the DHT.

#### Features of a bootstrap node:

- All default bootstrap _nodes_ are part of the public DHT.
- All default bootstrap _nodes_ are part of the Amino DHT.
- The list of bootstrap _nodes_ a Helia _node_ connects to is controlled by configuring [libp2p's peerDiscovery option](https://github.com/libp2p/js-libp2p/blob/master/doc/CONFIGURATION.md#peer-discovery).

#### Limitations of a bootstrap node:

- If an IPFS _node_ only has one bootstrap _node_ listed in that configuration and that bootstrap node goes offline, the IPFS node will lose access to the public DHT if it were to restart.
- If an IPFS _node_ only has one bootstrap _node_ listed in that configuration and that bootstrap node goes offline, the IPFS node will lose access to the Amino DHT if it were to restart.
- You can configure your _peer_ store in your implementation to cache healthy connectable _peers_ so that you can connect to them again after a restart, instead of bootstrap _nodes_. [Issue 8856 in the Kubo repository](https://github.com/ipfs/kubo/pull/8856), which addressed this, provides further information and context.

[More about Bootstrapping](../how-to/modify-bootstrap-list.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/how-to/privacy-best-practices.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Changing your reprovider settings to "pinned" or "roots" will keep your node fro

Using a public [IPFS gateway](../how-to/address-ipfs-on-web.md#http-gateways) is one way to request IPFS-hosted content without revealing any information about your local node — because you aren't using a local node! However, this method does keep you from enjoying all the benefits of being a full participant in the IPFS network.

Public IPFS gateways are primarily intended as a "bridge" between the legacy web and the distributed web; they allow ordinary web clients to request IPFS-hosted content via HTTP. That's great for backward compatibility, but if you only request content through public gateways rather than directly over IPFS, you're not actually part of the IPFS network; that gateway is the network participant acting on your behalf. It's also important to remember that gateway operators could be collecting their own private metrics, which could include tracking the IP addresses that use a gateway and correlating those with what CIDs are requested. Additionally, content requested through a gateway is visible on the public DHT, although it's not possible to know _who_ requested it.
Public IPFS gateways are primarily intended as a "bridge" between the legacy web and the distributed web; they allow ordinary web clients to request IPFS-hosted content via HTTP. That's great for backward compatibility, but if you only request content through public gateways rather than directly over IPFS, you're not actually part of the IPFS network; that gateway is the network participant acting on your behalf. It's also important to remember that gateway operators could be collecting their own private metrics, which could include tracking the IP addresses that use a gateway and correlating those with what CIDs are requested. Additionally, content requested through a gateway is visible on the Amino DHT, although it's not possible to know _who_ requested it.

## Use Tor

Expand Down
4 changes: 2 additions & 2 deletions docs/reference/diagnostic-tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ Here are several tools you can use to investigate and diagnose common issues wit
[IPFS check](https://check.ipfs.network/) determines the retrievability of a given CID from an IPFS node given its multiaddress. Each error type output by the tool can indicate a solution to your problem:

- **Could not connect to the multiaddr** indicates that machines on the internet cannot talk to your machine. Fix your firewall, add port forwarding, or use a relay.
- **Could not find address in the dht** indicates that your machine is either not connected to the IPFS Public DHT (even as a client), or it is not advertising the address that you are using to test.
- **Multihash not advertised in the dht** indicates that your machine has not advertised that it has the requested content in the IPFS Public DHT. If you're using kubo, enable the [Accelerated DHT Client](https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#accelerated-dht-client).
- **Could not find address in the dht** indicates that your machine is either not connected to the Amino DHT (even as a client), or it is not advertising the address that you are using to test.
- **Multihash not advertised in the dht** indicates that your machine has not advertised that it has the requested content in the Amino DHT. If you're using Kubo, enable the [Accelerated DHT Client](https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#accelerated-dht-client).
- **Peer has not responded that it has the CID** indicates that your node cannot find the data that you believe it has, or that there may be some other sort of network latency.

## CID inspector
Expand Down
Loading