Skip to content

Commit 038d07a

Browse files
authored
Amino DHT info (#1725)
1 parent 706389e commit 038d07a

File tree

6 files changed

+14
-10
lines changed

6 files changed

+14
-10
lines changed

docs/concepts/dht.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ IPFS exposes a _rate-limited_ AutoNAT service on all IPFS nodes that have discov
4141

4242
## Dual DHT
4343

44-
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.
44+
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.
4545

46-
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:
46+
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:
4747

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

7070
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.
71-
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`
71+
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`
7272

7373
### Peer buckets
7474

docs/concepts/glossary.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ In computer security, an access-control list (ACL) is a list of permissions asso
2222

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

25+
### Amino
26+
27+
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`. See the [blog post](https://blog.ipfs.tech/2023-09-amino-refactoring/) for more info.
28+
2529
### Announcing
2630

2731
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.

docs/concepts/measuring.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ The ProbeLab team is developing tools to continuously monitor the performance of
6565

6666
### Parsec
6767

68-
[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/).
68+
[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/).
6969

7070
### Tiros
7171

docs/concepts/nodes.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,12 @@ Both Kubo and Helia _nodes_ use bootstrap _nodes_ to initially enter the DHT.
5757

5858
#### Features of a bootstrap node:
5959

60-
- All default bootstrap _nodes_ are part of the public DHT.
60+
- All default bootstrap _nodes_ are part of the Amino DHT.
6161
- 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).
6262

6363
#### Limitations of a bootstrap node:
6464

65-
- 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.
65+
- 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.
6666
- 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.
6767

6868
[More about Bootstrapping](../how-to/modify-bootstrap-list.md)

docs/how-to/privacy-best-practices.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Changing your reprovider settings to "pinned" or "roots" will keep your node fro
2323

2424
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.
2525

26-
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.
26+
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.
2727

2828
## Use Tor
2929

@@ -33,6 +33,6 @@ If you're a developer building on IPFS, it's worth noting that the global IPFS c
3333

3434
## Create a private network
3535

36-
[Private IPFS networks](https://github.com/ipfs/kubo/blob/release-v0.9.0/docs/experimental-features.md#private-networks) provide full protection from public monitoring but can lack the scale benefits provided by the public IPFS network. A private network operates identically to the public one, but with one critical difference: it can only be accessed by nodes that have been given access, and it will only ever scale to those nodes. This means that the benefits of the public IPFS network's massive scale, such as geographic resiliency and speedy retrieval of high-demand content, won't be realized unless the private network is explicitly designed and scaled with this in mind.
36+
Private IPFS networks provide full protection from public monitoring but can lack the scale benefits provided by the public IPFS network. A private network operates identically to the public one, but with one critical difference: it can only be accessed by nodes that have been given access, and it will only ever scale to those nodes. This means that the benefits of the public IPFS network's massive scale, such as geographic resiliency and speedy retrieval of high-demand content, won't be realized unless the private network is explicitly designed and scaled with this in mind.
3737

3838
Running a private network can be a great option for corporate implementations of IPFS — for one example, see [this case study on Morpheus.Network](../case-studies/morpheus.md) — because the network's topology can be specified and built exactly as desired.

docs/reference/diagnostic-tools.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ Here are several tools you can use to investigate and diagnose common issues wit
2121
[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:
2222

2323
- **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.
24-
- **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.
25-
- **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).
24+
- **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.
25+
- **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).
2626
- **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.
2727

2828
## CID inspector

0 commit comments

Comments
 (0)