Skip to content

Distribueret hashtabel (DHT)

Hvordan IPFS-noder finder hinanden og opdager, hvem der har det indhold, du leder efter.

Hvad er en DHT?

En distribueret hashtabel er et decentraliseret opslagssystem. Tænk på det som en telefonbog, som ingen enkelt person har — i stedet har hver deltager et par sider, og de ved, hvem de skal spørge om de sider, de ikke har.

I IPFS mapper DHT'en CID'er til netværksadresserne for noder, der har det tilsvarende indhold. Når du anmoder om en fil via CID, hjælper DHT'en dig med at finde, hvilke noder der kan servere den.

Hvordan det fungerer i IPFS

IPFS bruger en variant af Kademlia DHT. Hver node vedligeholder en routingtabel over nærliggende noder (i form af XOR-afstand mellem node-ID'er). Når en node vil finde indhold:

  1. Den beregner XOR-afstanden mellem CID'et og kendte node-ID'er
  2. Den spørger de nærmeste noder, den kender: "hvem har dette CID?"
  3. Disse noder har enten indholdet eller peger på noder, der er tættere på
  4. Søgningen konvergerer — hvert hop kommer tættere på en node, der har filen
  5. Indholdet hentes direkte fra den leverende node

TIP

Denne opslåning tager typisk kun et par hop — selv i et netværk med millioner af noder kan en fil lokaliseres på 20-30 trin.

Udbyderregistre

Når en node fastgør indhold, udgiver den en udbyderregistrering til DHT'en: "Jeg har CID X, og min adresse er Y." Disse registreringer udløber efter ~24 timer og skal opdateres jævnligt. Derfor er aktiv fastgørelse vigtig — uden den udløber udbyderregistre, og indholdet bliver uopdageligt.

Hvorfor du ikke behøver at tænke på DHT'en

IPFS Ninja håndterer alle DHT-interaktioner for dig. Når du uploader en fil:

  • Vores klynge fastgør filen og udgiver udbyderregistre automatisk
  • Udbyderregistre opdateres løbende — dit indhold forbliver opdageligt
  • Vores gateway opløser CID'er via DHT'en, når den serverer forespørgsler
  • Du bruger bare CID'er og gateway-URL'er — DHT'en er usynlig