Skip to content

Distribuerad hashtabell (DHT)

Hur IPFS-noder hittar varandra och upptäcker vem som har innehållet du söker efter.

Vad är en DHT?

En distribuerad hashtabell är ett decentraliserat uppslagssystem. Tänk på det som en telefonkatalog som ingen enskild person har — istället har varje deltagare några sidor, och de vet vem de ska fråga om sidorna de inte har.

I IPFS mappar DHT:n CID:er till nätverksadresser för noder som har motsvarande innehåll. När du begär en fil via CID hjälper DHT:n dig att hitta vilka noder som kan servera den.

Hur det fungerar i IPFS

IPFS använder en variant av Kademlia DHT. Varje nod upprätthåller en routingtabell med närliggande noder (i termer av XOR-avstånd mellan nod-ID:n). När en nod vill hitta innehåll:

  1. Den beräknar XOR-avståndet mellan CID:n och kända nod-ID:n
  2. Den frågar de närmaste noderna den känner till: "vem har denna CID?"
  3. Dessa noder har antingen innehållet eller pekar på noder som är närmare
  4. Sökningen konvergerar — varje hopp kommer närmare en nod som har filen
  5. Innehållet hämtas direkt från den tillhandahållande noden

TIP

Denna uppslagning tar vanligtvis bara några hopp — även i ett nätverk med miljontals noder kan en fil lokaliseras på 20-30 steg.

Leverantörsposter

När en nod fäster innehåll publicerar den en leverantörspost till DHT:n som meddelar: "Jag har CID X, och min adress är Y." Dessa poster förfaller efter ~24 timmar och måste uppdateras regelbundet. Därför är aktiv fästning viktig — utan den förfaller leverantörsposterna och innehållet blir oupptäckbart.

Varför du inte behöver tänka på DHT:n

IPFS.NINJA hanterar alla DHT-interaktioner åt dig. När du laddar upp en fil:

  • Vårt kluster fäster filen och publicerar leverantörsposter automatiskt
  • Leverantörsposter uppdateras kontinuerligt — ditt innehåll förblir upptäckbart
  • Vår gateway löser CID:er via DHT:n när den serverar begäranden
  • Du använder bara CID:er och gateway-URL:er — DHT:n är osynlig