Skip to content

Distributed Hash Table (DHT)

Paano naghahanap ang mga IPFS node sa isa't isa at natutuklasan kung sino ang may nilalaman na hinahanap mo.

Ano ang DHT?

Ang Distributed Hash Table ay isang desentralisadong lookup system. Isipin ito bilang phone book na walang isang tao lang ang may hawak — sa halip, bawat kalahok ay may hawak na ilang page, at alam nila kung sino ang tatanungin para sa mga page na wala sa kanila.

Sa IPFS, ang DHT ay nagma-map ng mga CID sa network address ng mga node na may kaukulang nilalaman.

Paano ito gumagana sa IPFS

Ang IPFS ay gumagamit ng variant ng Kademlia DHT. Bawat node ay nagpapanatili ng routing table ng mga kalapit na node. Kapag gustong humanap ng nilalaman ng isang node:

  1. Kino-compute nito ang XOR distance sa pagitan ng CID at mga kilalang node ID
  2. Tinatanong ang pinakamalapit na node: "sino ang may CID na ito?"
  3. Ang mga node na iyon ay maaaring may nilalaman o nagtuturo sa mas malapit na node
  4. Nag-converge ang search — bawat hop ay papalapit sa node na may file
  5. Direktang kinukuha ang nilalaman mula sa providing node

TIP

Ang lookup na ito ay karaniwang ilang hop lang — kahit sa network na may milyun-milyong node, mahahanap ang file sa 20-30 hakbang.

Mga Provider record

Kapag nag-pin ang isang node ng nilalaman, nagpa-publish ito ng provider record sa DHT. Ang mga record na ito ay nag-e-expire pagkatapos ng ~24 oras at kailangang i-refresh pana-panahon.

Bakit hindi mo kailangang isipin ang DHT

Ang IPFS.NINJA ay nag-ha-handle ng lahat ng DHT interaction para sa iyo. Kapag nag-upload ka ng file:

  • Awtomatikong nag-pi-pin ang aming cluster at nag-pu-publish ng provider record
  • Patuloy na nire-refresh ang mga provider record
  • Nire-resolve ng aming gateway ang mga CID sa pamamagitan ng DHT
  • Gamitin lang ang mga CID at gateway URL — ang DHT ay invisible